文/章/导/览
一、木马介绍
二、如何发现
三、处置流程
3.1 定位挖坑木马进程
3.2 定位挖矿木马的执行文件
3.3 结束挖矿进程
四、沙箱分析
定位挖矿源文件
4.1 查看进程详情
4.2 查看网络行为
4.3 查看释放文件
五、清除残余文件
5.1 删除挖矿木马相关文件
5.2 清除恶意程序系统文件中添加的恶意代码
5.3 恢复系统命令
5.4 恢复防火墙规则
六、总结
6.1 开机启动文件
6.2 SSH存放公钥文件
6.3 计划任务文件
6.4 /usr/目录
6.5 防火墙开放端口
6.6 系统命令
七、拓展知识点
7.1 系统命令被劫持
八、防护建议
01
木马介绍
该挖矿木马采用go语言编译,主要针对Linux系统,在入侵终端后会占用主机资源进行挖矿,影响其他正常业务进程的运转,传播过程中会修改防火墙规则,开放相关端口,探测同网段其他终端并进行SSH暴力破解,若不能及时阻断,容易造成大面积污染。
02
如何发现
1、安全设备检测到挖矿相关告警。
2、主机使用过程中发生卡顿现象,CPU占用率过高。
03
处置流程
3.1 定位挖矿木马进程
查看进程以及进程所占用的资源大小:
top #使用top命令能够显示系统中各个进程的资源占用情况,若系统中存在挖矿木马可以通过top命令及时发现。
#左右滑动查看更多
1、可以看到PID为42101,名为xmr的进程CPU使用率为81.1%;
2、根据进程名xmr可以判断该挖矿木马大概率为WorkMiner挖矿木马(不能作为唯一判断依据,仅作为一个思路,因为进程名可以被改变)。
3.2 定位挖矿木马的执行文件
根据PID查找挖矿木马的启动目录。
ls -lai /proc/42101 | grep exe #查看PID为42101进程的执行文件的所在目录,并列出详细信息。
################
ls -lai #将当前目录下所有文件的详细信息包括inode号全部列出来。
/proc/PID #在/proc/目录下每一个进程都有一个相应的文件,包含重要信息。
ls -lai /proc/PID #可查看该PID下的所有详细信息。
ls -lai /proc/PID | grep exe #查看链接到进程的执行命令文件,并列出详细信息。
################
/proc/PID/cmdline #用于开始进程的命令
/proc/PID/cwd #当前进程工作目录的一个链接
/proc/PID/environ #可用进程环境变量的列表
/proc/PID/exe #正在进程中运行的程序的执行文件
/proc/PID/fd #进程打开的每一个文件的链接
/proc/PID/mem #进程在内存中的内容
/proc/PID/stat #进程的状态信息
/proc/PID/statm #进程的内存使用信息
#左右滑动查看更多
根据以上命令找到xmr进程的执行文件是/tmp/xmr。
3.3 结束挖矿进程
kill -9 42101 #强制杀死该挖矿进程
再次使用top命令查看,CPU已恢复正常
top
04
沙箱分析
定位挖矿源文文件
通过查看计划任务,找到挖矿木马所在文件目录。将挖矿木马文件压缩打包上传至云沙箱进行分析。
cat /etc/crontab
4.1、查看进程详情。
通过沙箱分析,查看进程详情,我们可以看到该挖矿木马共释放了以下进程。
4.1.1 修改系统命令
sh -c mv /usr/bin/wget /usr/bin/wget1& #将wget命令重命名为wget1
sh -c mv /usr/bin/curl /usr/bin/curl1& #将curl命令重命名为curl1
#左右滑动查看更多
4.1.2 执行挖矿程序
chmod +x /tmp/xmr #给xmr添加执行权限
xmr #运行xmr
#左右滑动查看更多
4.1.3 创建隐藏文件夹
sh -c mkdir -p /usr/.work
4.1.4 实现SSH免密登录
sh -c echo #创建/root/.ssh/authorized_keys /root/.ssh/authorized_keys
sh 600 /root/.ssh/authorized_keys #赋予600权限
sh -c echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDc3BlbiQaznPT8TScrs9YIzmrpI9Lpa4LtCjB5z0LuQ4o6XwvzomxAixn2F1jaUl175Cxcg3PmUsPOLE+WeWicKqL2YZ46SotjZgnS6JjXpuZVi7V0DSiXu0itlwWDC9m8huBvUBSIsDCsgb9OeG6rlrCyZgTW+qZciK+KZ8rwlFp3CFyxoF2122ueOnl5pAUCy1iHqGun03dMdUxA1d3KnxSZ3NQrYiH69dc8/YhV4SriOW9psc0pv9KeBLF0OXHtEAdbnSlwfk2uTjjBMK0nDidl7wS52Ygi/H4+P+4EXkSzf4Jj4/L6P3c5rLC3/l3RFdo1T7EQ8fH6NsTYJNZ7 root@u911" /root/.ssh/authorized_keys #将公钥写入/root/.ssh/authorized_keys实现免密登录
#左右滑动查看更多
4.1.5 修改防火墙规则,开放UDP和TCP端口
iptables -I INPUT -p tcp --dport 8012 -j ACCEPT
iptables -I OUTPUT -p tcp --sport 8012 -j ACCEPT
iptables -I PREROUTING -t nat -p tcp --dport 8012 -j ACCEPT
iptables -I INPUT -p udp --dport 2051 -j ACCEPT
iptables -I OUTPUT -p udp --sport 2051 -j ACCEPT
iptables -I PREROUTING -t nat -p udp --dport 2051 -j ACCEPT
iptables -I POSTROUTING -t nat -p udp --sport 2051 -j ACCEPT
#左右滑动查看更多
4.2 查看网络行为
以下为该挖矿木马连接的矿池以及境外恶意IP:
xmr.crypto-pool.fr #矿池
171.7.XXX.XX #境外恶意IP
194.58.XXX.XX #境外恶意IP
41.88.XXX.XX #境外恶意IP
84.54.XXX.XX #境外恶意IP
#左右滑动查看更多
4.3 查看释放文件
通过查看释放文件,可分析出该挖矿木马都释放了哪些文件,通过这些文件来确定我们的排查思路。
根据沙箱显示的内容共释放了以下8个文件。
/etc/rc.d/rc.local
/root/.ssh/authorized_keys
/tmp/config.json
/tmp/xmr
/tmp/secure.sh
/tmp/auth.sh
/var/spool/cron/root
/etc/crontab
对照以上释放的8个恶意文件进行上机重点排查,排查结果如下:
4.3.1 开机自启动
/etc/rc.d/rc.local #/etc/rc.d/init.d/目录下的脚本就类似于windows中的注册表,在系统启动的时候某些指定脚本将被执行。
#左右滑动查看更多
4.3.2 ssh实现免密登录
/root/.ssh/authorized_keys #通过/root/.ssh/authorized_keys文件可实现ssh免密登录
#左右滑动查看更多
/var/spool/cron/root
/etc/crontab
4.3.4 挖矿木马配置文件
/tmp/config.json #xmrig挖矿配置文件
#左右滑动查看更多
4.3.5 封禁爆破IP
/tmp/secure.sh #封禁爆破IP
/tmp/auth.sh #封禁爆破IP
4.3.6 xmrig挖矿程序
xmr
05
清理残余文件
注:在删除任何程序前一定要获取客户的同意,然后做好备份,再做删除操作。
5.1 删除挖矿木马相关文件
/tmp/config.json #挖矿配置文件
/tmp/xmr #挖矿程序
/tmp/secure.sh #挖矿木马创建的恶意脚本文件
/tmp/auth.sh #挖矿木马创建的恶意脚本文件
/usr/.work #由恶意程序创建的文件夹,文件夹中均为挖矿木马相关的程序
#左右滑动查看更多
5.2 清除恶意程序系统文件中添加的恶意代码
/root/.ssh/authorized_keys
/etc/rc.d/rc.local
/var/spool/cron/root
/etc/crontab
#左右滑动查看更多
5.3 恢复系统命令
mv /usr/bin/wget1 /usr/bin/wget
mv /usr/bin/curl1 /usr/bin/curl
5.4 恢复防火墙规则
iptables -I INPUT -p tcp --dport 8012 -j DROP
iptables -I OUTPUT -p tcp --sport 8012 -j DROP
iptables -I INPUT -p udp --dport 2051 -j DROP
iptables -I OUTPUT -p udp --sport 2051 -j DROP
#左右滑动查看更多
06
总结
根据沙箱分析可知,在遇到WorkMiner挖矿木马,做应急时我们需重点排查以下几点,另外此挖矿木马会对同网段内的其他主机进行ssh爆破来进行传播。
6.1 开机启动文件
WorkMiner挖矿木马在/etc/rc.d/rc.local 文件中写入了开机自启动脚本,以实现持久化。
/etc/rc.d/rc.local #该文件类似于Windows中的注册表,在系统启动的时候该文件下的脚本将被执行。
#左右滑动查看更多
6.2 SSH存放公钥文件
WorkMiner挖矿木马/root/.ssh/authorized_keys中写入了公钥,以实现免密登录。
/root/.ssh/authorized_keys #authorized_keys 是linux 操作系统下,专门用来存放公钥的地方,只要公钥放到了服务器的正确位置,并且拥有正确的权限,即可私钥,免密登录linux服务器。
#左右滑动查看更多
6.3 计划任务文件
WorkMiner挖矿木马在/var/spool/cron/root和/etc/crontab中分别写入了计划任务,以实现持久化。
/var/spool/cron/root
/etc/crontab
#左右滑动查看更多
6.4 /usr/目录
WorkMiner挖矿木马创建了/usr/.work 文件夹,以实现持久化。
/usr/ #/usr/目录是linux系统核心所在,包含了所有的共享文件,涵盖了二进制文件,各种文档,各种头文件,还有各种库文件,还有诸多程序等等
/usr/.work #WorkMiner挖矿木马就在/usr/目录下创建了该隐藏文件夹,需重点排查。
#左右滑动查看更多
6.5 防火墙开放端口
WorkMiner挖矿木马会修改防火墙规则分别开放TCP端口和UDP端口。
iptabels -nv -L #使用该命令可查看是否有额外的TCP和UDP端口开放
#左右滑动查看更多
6.6 系统命令
WorkMiner挖矿木马会把wegt命令修改为wget1,curl命令修改为curl1。
此处仅作为抛砖引玉,在排查该系统命令时不能仅局限于wget1和curl1,挖矿木马可能会将系统命令修改为任意字符,甚至是劫持系统命令,需要在排查时注意辨别。在扩展知识点中也介绍了如何使用工具排查系统命令被劫持,可供大家参考。
/usr/bin #/usr/bin下存放一些用户的基本命令如wget,curl等
/usr/bin/wget #查看wget命令是否被修改为wget1,若被修改则可能是WorkMiner挖矿木马,仅作为参考不能作为唯一依据。
/usr/bin/curl #查看curl命令是否被修改为curl1,若被修改则可能是WorkMiner挖矿木马,仅作为参考不能作为唯一依据。
#左右滑动查看更多
07
扩展知识点
7.1、系统命令被劫持
7.1.1 AIDE入侵监测
AIDE 是一款入侵检测工具,主要用途是检查文档的完整性。通过构建一个基准的数据库,保存文档的各种属性,一旦系统被入侵,可以通过对比基准数据库而获取文件变更记录。
1、安装配置:
#直接安装aide
yum install aide -y
#生产初始化数据库
sudo aide --init
#根据配置文件命名规则生成新的数据库文件,需要重命名,以便AIDE读取。
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
#左右滑动查看更多
2、进行监测对比:
sudo aide --check
通过对比可快速发现哪些系统命令被篡改。
7.1.2 top命令被劫持
top命令被劫持无法正确显示出进程相关信息。
1、busybox
wget https://busybox.net/downloads/binaries/1.21.1/busybox-x86_64 --no-check-certificate
chmod +x busybox-x86_64
mv busybox-x86_64 /usr/local/bin/
busybox top
#左右滑动查看更多
若wget命令也无法使用可以先将busybox文件下载后上传。
2、恢复top面板
恢复top面板的步骤是将原top文件恢复。现在,原top文件名为top.lanigiro,只要将现在的top文件删除,再将top.lanigiro文件重命名为top即可。
做好备份:
cp top top.bak
cp top.lanigiro.bak
重命名:
mv top top.rm
若无法重命名可能是文件被加锁使用lsattr命令查看:
lsattr top
使用chattr命令解锁:
chattr -i top
chattr top.lanigiro
若chattr命令被删除可以重新安装。
1、先查看chattr命令,即查看e2fsprogs包。
rpm -qa|grep e2fsprogs #查看e2fsprogs包是否存在(可能会显示存在,但还是依旧无法使用chattr命令)
#左右滑动查看更多
2、下载chattr命令
yum install e2fsprogs #可能会显示e2fsprogs已经被安装了,但是依旧无法使用chattr命令
#左右滑动查看更多
3、安装
yum install e2fsprogs-1.42.9-19.el7.x86_64 (若还是无法使用,可使用上一步查询到的具体的e2fsprogs包名安装即可)
#左右滑动查看更多
恢复成功后删除刚才的备份文件:
mv top top.rm
mv top.lanigiro top
08
防护建议
1、定期检查系统SSH服务的密码,设置高强度密码避免被暴力破解,并定期修改密码。
2、修改SSH服务22端口为非默认端口以降低被攻击的可能性。
原文始发于微信公众号(安恒信息安全服务):九维团队-青队(处置)| WorkMiner挖矿木马应急处置手册
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论