服务器被入侵、CPU异常飙升?挖矿木马入侵排查与完整清理方案
我最近在河南一家知名IDC公司郑州易方科贸(861.cn)托管的一台服务器 发现一个让人头皮发麻的故障。
线上运维最典型的安全事故:服务器无业务更新、无新上线功能,CPU 突然 100% 跑满、负载飙升、业务卡顿、带宽异常占用。
很多人第一反应是程序卡死、代码死循环,重启服务器后短暂恢复,过几小时再次满血复活。99% 这种反复复发的高负载,都是服务器被植入挖矿木马、后门程序导致的入侵行为。
黑客利用弱密码、漏洞、未授权端口、泄露密钥等方式拿下服务器,植入挖矿程序、DDOS 肉鸡脚本、代理后门,长期占用算力、偷跑流量、静默驻留。
本文给你一套从快速判定、深度排查、彻底清理、防复发加固的完整入侵应急方案,新手也能直接照着操作。
一、先判断:你的服务器是不是被入侵了?
正常业务 CPU 高,是有规律、可解释的;入侵挖矿 CPU 高,是诡异、无脑、全天候满载。
出现以下任意 3 条,直接实锤入侵:
无业务峰值,CPU 全天 90%–100%,load 持续爆表
top 出现陌生进程、乱码进程、伪装系统进程(kworker、kdevtmpfsi、watchdog、minerd 等)
重启服务器后,过一段时间自动复现高负载
带宽流量深夜异常跑满,无业务访问
crontab、开机自启出现未知定时任务
/tmp、/dev/shm 目录出现陌生可执行文件
服务器 SSH 登录日志出现陌生异地 IP
二、第一步:快速定位恶意进程(核心排查)
1. 查看 CPU 占用最高的可疑进程
top -c # 按 P 键,按 CPU 排序 # 或者直接命令列出CPU前十进程 ps aux --sort=-%cpu | head -10
挖矿木马常见进程名:minerd、kdevtmpfsi、kworkerds、sysdk、watchdogs、redis3、nginx_update、java_upd等伪装名称。
2. 追踪可疑进程真实文件路径
很多木马伪装系统进程,必须看真实执行路径:
# 替换 PID 为可疑进程ID ls -l /proc/PID/exe
如果路径在/tmp、/dev/shm、/var/tmp,100% 恶意木马。
3. 查看异常对外连接(肉鸡/后门实锤)
挖矿程序会持续连接境外矿池地址、黑客中控服务器:
ss -ntplu netstat -antp | grep ESTABLISHED
出现大量陌生外网 IP 长连接、疑似矿池端口,确认入侵。
三、第二步:深挖木马驻留根源(为什么重启必复发)
只杀进程没用,木马一定留了复活机制,这是反复感染的核心原因。
1. 检查定时任务(最高频复活方式)
黑客基本都会植入定时任务,每几分钟自动下载木马重启进程:
crontab -l ls /etc/cron.d/
出现陌生定时脚本、随机字符任务、wget/curl 下载脚本,全部为黑客后门。
2. 检查开机自启与系统计划任务
ls /etc/rc.local ls /etc/init.d/ systemctl list-unit-files | grep enabled
陌生自启脚本、异常 service 文件都是驻留后门。
3. 检查临时目录恶意文件
木马最爱藏在无权限限制的临时目录:
ls /tmp ls /dev/shm ls /var/tmp
出现随机名称可执行文件、sh 脚本、矿机程序,全部删除。
4. 检查 SSH 暴力破解痕迹
last | head -20 grep "Failed password" /var/log/secure
大量陌生 IP 爆破记录,说明服务器是弱密码被撞库入侵。
四、第三步:完整清理流程(彻底杀除木马)
遵循先断复活源、再杀进程、最后清文件的顺序,否则杀完立刻复活。
1. 暂停所有可疑定时任务
crontab -r rm -rf /etc/cron.d/恶意任务名
2. 强制杀死恶意进程
kill -9 恶意PID # 批量查杀常见挖矿进程(万能一键) ps aux | grep -E 'minerd|kdevtmpfsi|kworkerds|sysdk' | grep -v grep | awk '{print $2}' | xargs kill -9
3. 清理所有木马文件
rm -rf /tmp/* rm -rf /dev/shm/* rm -rf /var/tmp/*
4. 修复系统权限与预加载后门
高级木马会修改ld.so.preload劫持系统命令,隐藏进程:
cat /etc/ld.so.preload
非空即为劫持后门,清空文件即可恢复:echo "" > /etc/ld.so.preload
5. 重启服务器彻底清除内存残留
清理完成后必须重启,清除内存驻留恶意线程,杜绝残留复活。
五、第四步:查找被入侵的真实漏洞(杜绝二次中招)
木马清理完不代表安全,不补漏洞,24小时内必再次被入侵。
99% 服务器挖矿入侵,来自这 5 个漏洞:
SSH 弱密码:简单密码被暴力爆破拿下权限
Redis未授权访问:漏洞批量植入挖矿脚本
Nginx/中间件漏洞:漏洞上传后门
对外开放高危端口:无防护暴露公网
服务器长期不更新、内核漏洞
六、终极加固方案(从此杜绝挖矿入侵)
1. 彻底加固 SSH 安全
修改高强度复杂密码
关闭 root 远程登录
开启 SSH 密钥登录,关闭密码登录
配置 SSH 登录白名单
2. 关闭不必要公网端口
云服务器安全组严格收紧,只放行业务端口,杜绝全端口开放。
3. 加固中间件安全
Redis、MySQL 禁止外网访问、设置密码、关闭未授权访问
Nginx、PHP 定期更新版本,修补漏洞
4. 开启监控告警
配置 CPU 持续高负载告警、异常连接告警、定时任务变更告警,提前捕捉入侵行为。
5. 禁止临时目录执行权限
加固 /tmp、/dev/shm 挂载权限,禁止执行脚本,从源头封杀挖矿木马运行。
总结
莫名 CPU 飙升、重启复发、负载异常,就是被挖矿入侵。
排查核心口诀:看进程、查外联、搜定时、清临时、修漏洞、强密码。