如何快速解决恶意进程导致 CPU 飙升问题
系统:CentOS 7
介绍
服务器明明没运行多少东西,却发现 CPU 已经被占满了。查看后台服务发现有未知的程序在运行,不管是重启或者手动杀死程序,隔一段时间又盘活。于是怀疑被注入了挖矿程序或脏程序,开始上网查找各种资料来解决这问题。
一些常见脏程序:xmrig
、dhpcd
、vTtHH1
等等。
使用教程
下面以
xmrig
为例
查看进程资源情况
top
# 或
top -c
可以看到名为 xmrig
进程,进程号为 2266348
,CPU 飙升到 99.7%
,所属用户为 test
。
检查端口的状态(按需)
netstat -aulntp
检查开机启动项(按需)
- 检查
/etc/init.d/
目录下是否有可疑程序
ll /etc/init.d/
- 检查
/etc/rc.d/rc.local
因为
/etc/rc.local
文件是/etc/rc.d/rc.local
文件的软链接,所以只要检查/etc/rc.d/rc.local
文件
cat /etc/rc.d/rc.local
检查定时任务(按需)
# 查看任务
crontab -l
cat /etc/crontab
# 进入计划任务服务配置
crontab -e
使用 dd
删除计划任务,输入命令 wq!
保存并退出
查看服务进程号
若知道服务进程号,可以跳过
ps -ef | grep xmrig
ps -aux | grep xmrig # 查看进程号和位置
查看服务位置
若知道服务位置,可以跳过
ls -l /proc/2266348/exe
杀死服务进程
使用 kill 结束掉该服务
kill -9 2266348
删除服务文件
rm -rf /var/tmp/.mint-xmr/xmrig
删除服务所属用户
为避免下次在通过 test 植入挖矿、病毒、木马等程序,将 test 用户删除
userdel -r test
FAQ
若上述无法解决或反复出现,可尝试以下方式
如何按照上述方式处理后,又反复出现,这时候可以考虑是有另外的捆绑程序,我们可以先杀死进程后再查看网络情况,看看是否其它使用情况
# 查看网络
iftop -PB
# 通过PID查看进程
lsof -i :[pid]
# 定位程序目录
cd /proc/[pid]
# 比对路径
ll
按照以上操作后,再重新 kill
该服务进程