今天发现有台服务器CPU占用50% 该比例一直保持比例不变,不会低也不会高,该服务器新启用按理不应该,排查后发现有个dhcpi进程一直占用较高,负载占比20%以上 CPO占用50% 内存30%左右,即使重启服务器,马上就会占用12核的CPU,并且系统内存占用也很大。中毒表现有如下几点: 在没有使用软件的情况下,CPU使用率很高,可通过top命令查看该进程,特点PID会不断生成新的ID根本无法清除,差点放弃准备重装系统,考虑到上面还有数据经过排查最后找到启动文件清除成功。具体清理后状态如下:
整个排查过程比较麻烦经过不断努力把关键点列出来与大家一起分享,省得折腾也不一定能搞定。既然dhcpi不断生成新PID,说明有守护进程在持续尝试启动它。这是一个典型的挖矿病毒进程,让我们找到并彻底消除这个守护进程。
1、top -c 找到CPU占用最高的那个 pid (下图是清除成功后并未显示,如果未清除应该排第一位 COMMAND名称dhcpi
快速终止所有dhcpi进程 经过实践该命令并不管用,清除杀死后又会生成新的PID数字,或者每次打开top查看都会是新的PID数字
pkill -9 dhcpi
killall dhcpi
2、不管什么命令都不管用情况下就必须找到文件位置,查找过程折腾不列出直接找到目录处理
/usr/lib/updated/ 该目录下有很多文件 主文件dhcpi 配置文件config.json config.json2 config.json1,后面三个文件里面均发现三个不同IP
3、宝塔安全IP规则把三个IP禁用(139.59.2.141 45.55.123.132 192.3.141.163)
再执行
pkill -9 dhcpi
killall dhcpi
执行top查看该进程居然没有了
4、执行删除命令sudo rm -f /usr/lib/updated/config.json执行时 提示 rm: 无法删除'/usr/lib/updated/config.json': 不允许的操作
单独删除失败,删除整个目录 整个目录是可以删除的
执行命令 rm -rf /usr/lib/updated/
提示无法删除时执行
lsattr -d /usr/lib/updated/
chattr -i -a /usr/lib/updated/ 2>/dev/null
rm -rf /usr/lib/updated/
也可以找到文件目录直接删除,如果提示无法删除在该目录终端执行上面三个命令
如果需要逐步手动删除可执行命令如下,对应文件名更换一下
# 逐步执行删除
# 1. 检查属性
lsattr /usr/lib/updated/config.json
# 2. 移除属性(根据上一步输出)
chattr -i /usr/lib/updated/config.json
# 3. 尝试删除
rm -f /usr/lib/updated/config.json
# 4. 如果失败,检查进程占用
lsof /usr/lib/updated/config.json
# 5. 清空内容(如果无法删除)
cat /dev/null > /usr/lib/updated/config.json
# 6. 最终删除
rm -f /usr/lib/updated/config.json
也可以采用清空内容命令,只要清除config.json内容后重启下主机也可以
清空文件内容
echo "" > /usr/lib/updated/config.json
truncate -s 0 /usr/lib/updated/config.json
总结操作几步即可:
检查/usr/lib/updated目录权限
lsattr -d /usr/lib/updated/ 2>/dev/null
如果目录被锁定,解除锁定
chattr -i -a /usr/lib/updated/ 2>/dev/null
修改目录权限
chmod 755 /usr/lib/updated/
然后再次尝试删除文件
rm -f /usr/lib/updated/config.json
强制删除整个目录
rm -rf /usr/lib/updated/
主要因为网站漏洞原因引发原因,如果是多个站点找不到是哪个网站引起,可以宝塔后台安装Fail2ban 2.1看下日志,哪个禁止提示多基本就知道是哪个站点有问题,再来检测网站文件清除完善
评论(0)