如何排查常见挖矿木马( 二 )


1).是否替换了系统命令
使用 rpm -Va 查看系统命令是否被替换,如果系统命令已经被替换,可直接从纯净系统拷贝ps,top,等命令到受感染主机上使用 。

如何排查常见挖矿木马

文章插图
 
 
可以看到,系统的ps、netstat、lsof 三个命令均被替换 。
ps命令被替换后,会修改ps输出的内容,从而隐藏可疑进程 。此时直接使用ps命令时,会导致查询不准确 。比如gates木马会替换ps命令,直接使用ps -ef命令查看进程时,会隐藏一个位于/usr/bin/下的进程 。如下,使用busybox可看到可疑进程,但是使用系统的ps命令就不会看到/usr/bin/bsd-port/recei进程 。
如何排查常见挖矿木马

文章插图
 
 
2).是否修改了动态链接库
如果找不到占用CPU较高的进程,可考虑排查是否修改了动态链接库,使用cat /etc/ld.so.preload 或echo $LD_PRELOAD 命令查看是否有预加载的动态链接库文件 。
也可以使用ldd命令查看命令依赖库中是否有可疑动态库文件,如图,在将libprocesshider.so文件加入ld.so.preload文件中后,ldd 命令可看到top命令预先加载了可疑动态库 。
 
如何排查常见挖矿木马

文章插图
 
确认已经加载恶意动态链接库后,直接移除恶意动态链接库文件或清除ld.so.preload中对该库文件的引用内容即可 。
3).以上情况都可以直接通过静态编译的busybox进行排查 。
2. 查看挖矿进程所属用户
一般挖矿进程为自动化攻击脚本,所以很少有提权的过程,那么很大可能挖矿进程所属用户即为攻击进入系统的用户 。后续的排查过程可根据此寻找攻击者的入侵途径 。
top
如何排查常见挖矿木马

文章插图
 
 
ps -ef |grep pid
如何排查常见挖矿木马

文章插图
 
两种方式都可以看到,挖矿进程所属用户为 weblogic 。
3. 查看用户进程
确定已失陷用户后,可查询该用户所属其他进程,判断其他进程是否有已知漏洞(Weblogic反序列化、Struts2系列漏洞、Jenkins RCE)或弱口令(Redis未授权、Hadoop yarn未授权、SSH弱口令)等问题 。
ps -ef|grep username
 
如何排查常见挖矿木马

文章插图
 
可以看到,weblogic用户下除了两个挖矿进程,还有一个weblogic应用的进程,所以这时候就应该判断该该weblogic应用是否有已知的漏洞(比如WebLogic反序列化漏洞) 。如果有的话,那么该挖矿进程很可能是利用了该漏洞进入主机 。
4. 确定原因
排查出挖矿木马后对木马类型进行分析,根据木马的传播特征和传播方式,初步判断本次入侵的原因 。然后结合应用日志以及漏洞利用残留文件确定本次攻击是否利用了该漏洞 。
比如,利用redis未授权访问漏洞后,一般会修改redis的dbfilename和dir的配置,并且使用reids写文件时,会在文件中残留redis和版本号标识,可以根据以上两个信息排查是否利用了redis 。
如何排查常见挖矿木马

文章插图
 

如何排查常见挖矿木马

文章插图
 
0x04 清除挖矿木马
1. 及时隔离主机
【如何排查常见挖矿木马】部分带有蠕虫功能的挖矿木马在取得本机的控制权后,会以本机为跳板机,对同一局域网内的其他主机进行已知漏洞的扫描和进一步利用,所以发现挖矿现象后,在不影响业务的前提下应该及时隔离受感染主机,然后进行下一步分析 。
2. 阻断与矿池通讯
iptables -A INPUT -s xmr.crypto-pool.fr -j DROP
iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
3. 清除定时任务
大部分挖矿进程会在受感染主机中写入定时任务完成程序的驻留,当安全人员只清除挖矿木马时,定时任务会再次从服务器下载挖矿进程或直接执行挖矿脚本,导致挖矿进程清除失败 。
使用crontab -l 或 vim /var/spool/cron/root 查看是否有可疑定时任务,有的话直接删除,或停止crond进程 。
 
如何排查常见挖矿木马

文章插图
 
还有
/etc/crontab、/var/spool/cron、/etc/cron.daily/、/etc/cron.hourly/、/etc/cron.monthly/、/etc/anacrontab 等文件夹或文件中的内容也要关注 。


推荐阅读