实战矿马:消灭“薅羊毛”门罗币矿马(config.sh;zhihuatnail.so;sshd2)

2021-01-20 17:01:35 浏览数 (2)

前言

我又来消灭挖矿木马了,这次消灭的挖矿文件为config.json;zhihuatnail.so;sshd2这三个矿马。

本次的CASE特别有意思,往期我们碰到的大部分挖矿木马是以高占用CPU,GPU为主的矿马,而这次是一次全程同“薅羊毛”式矿马的斗智斗勇。 本次重要的是分析过程,分享给大家。


案例背景

1.发现在CentOS服务器进程中,出现大量config.sh进程,但每个CPU占用不高,每个config.sh进程占用7%~10%左右的,8个进程,整体已实现占用80%以上的CPU,影响服务器正常运行(可见矿马作者开始有分布式,无文件的逻辑编写矿马了)

使用小占用比的思路分布式进程进行“薅羊毛”挖矿,一定程度上可以成功规避杀毒软件的查杀规则,不被发现使用小占用比的思路分布式进程进行“薅羊毛”挖矿,一定程度上可以成功规避杀毒软件的查杀规则,不被发现

被入侵原因

1.被植入挖矿进程的原因经最后的溯源分析,问题在于服务器对ssh服务(22端口)未配置访问源,直接暴露于公网。

ssh服务无限制开放于公网,容易被挖矿进程批量爆破“抓机”ssh服务无限制开放于公网,容易被挖矿进程批量爆破“抓机”

2.服务器密码存在通用口令,容易被爆破入侵。


恶意进程定位

1.矿马位置:

(1)/usr/local/lib/路径下:

代码语言:javascript复制
/usr/local/lib/zhihuatnail.so

病毒名:Linux.Rootkit.Processhider.Hnur

文件检测结果为Linux.Rootkit.Processhider.Hnur文件检测结果为Linux.Rootkit.Processhider.Hnur

(2)tmp/javax路径下:

门罗币矿马watchdogs病毒分析:https://www.freebuf.com/articles/system/196515.html

也可以称它为XMRig挖矿木马,XMRig参数详情:https://www.kuangjiwan.com/news/news-2872.html

代码语言:javascript复制
/tmp/javax/sshd2 
/proc/(PID)/tmp/javax/sshd2 
/tmp/javax/config.sh 
/tmp/javax/config.json                             // watchdogs门罗币挖矿进程
/etc/cron.daily/tmpwatch
max-threads-hint参数是XMRig挖矿的CPU线程占比,100的意思是占用主机的1核为100%max-threads-hint参数是XMRig挖矿的CPU线程占比,100的意思是占用主机的1核为100%
访问pool.supportxmr.com:3333矿池地址访问pool.supportxmr.com:3333矿池地址
在线矿池在线矿池

(3)/var/spool/cron/路径下:

代码语言:javascript复制
/var/spool/cron/root  
/var/spool/cron/root~
/var/spool/cron/roow~
/var/spool/cron/roox~
定时从地址https://pastebin.com/raw/qKcPmSNp地址curl下来恶意进程定时从地址https://pastebin.com/raw/qKcPmSNp地址curl下来恶意进程

我们从11月这几天的自动任务日志中可以找到痕迹:

代码语言:javascript复制
grep "Nov" /var/log/cron
自11月4日凌晨2:30分开始自动爬取恶意进程至服务器自11月4日凌晨2:30分开始自动爬取恶意进程至服务器

(4)/etc/路径下:——触发进程

代码语言:javascript复制
/etc/ld.so.preload 
/etc/ld.so.preload~
/etc/ld.so.preloaz~
/etc/crontab 
/etc/crontab~
/etc/ksoftirqds
/etc/watchdog
这几个进程都是启动zhihuatnail.so的自启动脚本这几个进程都是启动zhihuatnail.so的自启动脚本

排查:

第一步:使用top命令查看当前进程占用情况(目的:快速定位高占CPU的进程)

代码语言:javascript复制
top -c

定位出占用较高的恶意进程,这几个服务的PID分别为24768,32566,25639,25820,15711,24190,28157,25787

恶意进程config.sh,源文件为config.json恶意进程config.sh,源文件为config.json

同时再读一下进程文件:

代码语言:javascript复制
readlink /proc/24768/exe
readlink /proc/32566/exe
readlink /proc/25639/exe
readlink /proc/25820/exe
readlink /proc/15711/exe
readlink /proc/24190/exe
readlink /proc/28157/exe
readlink /proc/25787/exe

可以判定为恶意挖矿进程可以判定为恶意挖矿进程

第二步:先停止对应恶意PID进程,为服务器CPU降压

代码语言:javascript复制
kill -STOP 24768,32566,25639,25820,15711,24190,28157,25787

第三步:查看定时任务(目的:挖矿进程常有写入定时任务的习惯,所以从定时任务中去定位挖矿文件往往效率较高)

代码语言:javascript复制
crontab -l 

本次定时发现在定时任务里并没有写入,则极有可能矿马的定时任务创建是通过其他路径写入的。


清理

第四步:删除该恶意进程定时任务,再删除恶意进程文件

首先清理/tmp/javax/sshd2:

代码语言:javascript复制
rm -rf /tmp/javax/sshd2                          

发现无法通过命令行直接清理,此时结合主机安全后台,隔离成功。

sshd2可以成功隔离,但/usr/local/lib/zhihuatnail.so无法通过工具隔离sshd2可以成功隔离,但/usr/local/lib/zhihuatnail.so无法通过工具隔离

可以看看zhihuatnail.so的创建时间,作为参考:

代码语言:javascript复制
stat /usr/local/lib/zhihuatnail.so
11月4日下午18:57分创建11月4日下午18:57分创建

在清理的过程中可能会碰到文件只读不可写,这是在感染矿马的机器上常见的一种现象,我们可以借助chattr工具清除文件的特殊权限属性,再对文件进行修改操作。zhihuatnail.so无法清理的原因是存在文件特殊权限,因此清除其特殊权限,再进行删除操作就搞定了。

代码语言:javascript复制
yum -y install e2fsprogs                      // CentOS安装chattr
chattr -ias /usr/local/lib/zhihuatnail.so    // 删除文件特殊属性
chmod  x zhihuatnail.so                      // 赋权后,即可正常执行

其他恶意文件的清理就不附图了,一次性全部清理

代码语言:javascript复制
rm -rf /tmp/javax/sshd2 
rm -rf /proc/(PID)/tmp/javax/sshd2 
rm -rf /tmp/javax/config.sh 
rm -rf /tmp/javax/config.json                
rm -rf /etc/cron.daily/tmpwatch
rm -rf /var/spool/cron/root  
rm -rf /var/spool/cron/root~
rm -rf /var/spool/cron/roow~
rm -rf /var/spool/cron/roox~
rm -rf /etc/ld.so.preload 
rm -rf /etc/ld.so.preload~
rm -rf /etc/ld.so.preloaz~
rm -rf /etc/crontab 
rm -rf /etc/crontab~
rm -rf /etc/ksoftirqds
rm -rf /etc/watchdog

第五步,kill 掉对应的进程PID,这里就可以删除进程了,因为挖矿源文件已经被删除

代码语言:javascript复制
Kill -9 24768,32566,25639,25820,15711,24190,28157,25787

继续观察是否有新的异常进程和端口启动

第六步:验证

(1)验证

代码语言:javascript复制
top -c
已恢复正常,恶意进程config.sh已经消失已恢复正常,恶意进程config.sh已经消失

(2)查看自启动日志,看看是否还有新增任务,观察三个小时,无新增说明已经清理干净

代码语言:javascript复制
grep "Nov" /var/log/cron
定时进程在日志中已经消失,说明定时类的恶意木马已经清理干净定时进程在日志中已经消失,说明定时类的恶意木马已经清理干净

观察三小时没有新文件生成,已经清理完毕。


总结一下

一、config.sh文件的特点是不会将定时任务写入crontab -l中,而是通过/var/spool/cron/root 等作为定时脚本,向矿池定时curl更新挖矿文件,更新待进程起来后,再自动删除更新下来的文件。平均每2分钟执行一次进程更新动作。

二、XMRig核心挖矿程序是/tmp/javax/config.json,定义了挖矿的各个参数。

三、/etc/ld.so.preload等作为定时触发任务,定时触发/usr/local/lib/zhihuatnail.so进程,让每次若进程未清理干净,则会自动继续触发挖矿行为和文件更新行为。

0 人点赞