
核心要点(TL;DR)
深夜收到监控告警:服务器CPU持续100%,风扇狂转,业务响应缓慢。登录一看,一个陌生进程吃满了所有核心——这很可能是挖矿木马在作祟。挖矿木马不仅消耗资源,还意味着服务器已被入侵,可能存在数据泄露、后门等更严重风险。本文面向运维和站长,提供一套从发现到清除的实战操作步骤,帮你快速止损并根除威胁。
一、挖矿木马是什么?为什么危害巨大?
挖矿木马是一种恶意程序,入侵服务器后利用其计算资源挖掘加密货币(如门罗币)。攻击者通常通过SSH弱口令、未修复的漏洞(如Redis未授权、永恒之蓝)或第三方组件漏洞入侵,植入挖矿程序并设置持久化,确保重启后自动运行。
危害不仅限于CPU占用高、电费飙升,更严重的是:服务器可能被用作跳板攻击内网,敏感数据被窃取,甚至被安装勒索软件。因此,一旦发现挖矿木马,必须按入侵事件进行应急响应。
二、快速排查:定位恶意进程与文件
首先,隔离主机:断开网络或限制出入站流量,防止木马与矿池通信或横向移动。然后按以下步骤排查:
1. 检查CPU占用
top -c按P键以CPU排序,观察是否有陌生进程(如kdevtmpfsi、xmrig、sysupdate等)。记录PID。
2. 查看进程详细信息
ls -l /proc/PID/exe
cat /proc/PID/cmdline获取可执行文件路径和启动命令。若路径在/tmp、/dev/shm等临时目录,高度可疑。
3. 检查网络连接
netstat -antp | grep ESTABLISHED查找与矿池IP(常见端口3333、5555、7777等)的连接。也可用ss -antp替代。
4. 检查定时任务
crontab -l
ls -la /etc/cron.*
cat /var/spool/cron/*挖矿木马常通过cron定时拉取恶意脚本。
5. 检查系统服务
systemctl list-units --type=service | grep -i miner
ls -la /etc/systemd/system/查看是否有伪装成系统服务的挖矿程序。
6. 检查启动项和SSH密钥
cat /etc/rc.local
ls -la ~/.ssh/攻击者可能添加SSH公钥实现持久化登录。
三、清除木马:分步操作指南
确认恶意进程后,按以下顺序清除,避免遗漏:
1. 杀掉恶意进程
kill -9 PID若进程有守护,先停止其父进程或相关服务。
2. 删除恶意文件
rm -rf /tmp/kdevtmpfsi
rm -rf /var/tmp/xmrig根据/proc/PID/exe找到的路径删除所有相关文件。
3. 清理持久化
- 删除恶意cron任务:
crontab -e编辑删除,或直接删除/var/spool/cron/下对应文件。 - 删除恶意systemd服务:
systemctl disable 服务名,然后删除/etc/systemd/system/服务名.service。 - 删除SSH后门:检查
~/.ssh/authorized_keys,移除陌生公钥。 - 检查
/etc/ld.so.preload是否被添加恶意库。
4. 修复入侵点
修改所有用户密码(尤其是root),更新系统和软件补丁,关闭不必要的端口(如Redis、MySQL对外)。
5. 重启并验证
重启服务器,再次检查CPU占用、网络连接和定时任务,确保无残留。
四、加固防护:避免再次中招
清除后,必须加强防护:
- 使用强密码并启用SSH密钥登录,禁用密码登录。
- 配置防火墙,仅开放必要端口。
- 安装主机安全工具,如AegisX,可实时监控异常进程、文件篡改和网络连接,自动拦截挖矿行为。
- 定期更新系统和应用补丁,订阅安全通告。
- 部署日志审计,定期检查
/var/log/secure和/var/log/auth.log。
五、检查清单与总结
排查时可按以下清单逐项确认:
| 检查项 | 命令/位置 | 正常状态 |
|---|---|---|
| CPU占用 | top | 无异常高占用进程 |
| 定时任务 | crontab -l | 仅已知任务 |
| 网络连接 | netstat -antp | 无未知外连 |
| 系统服务 | systemctl list-units | 无陌生服务 |
| SSH密钥 | ~/.ssh/authorized_keys | 仅授权密钥 |
挖矿木马排查清除需要快、准、狠。一旦发现,立即隔离、排查、清除、加固。日常运维中,建议部署AegisX等防护工具,将风险扼杀在萌芽阶段。如果你正在处理类似事件,不妨按本文步骤操作,并在评论区分享你的经验。
常见问题(FAQ)
服务器CPU突然飙升到100%,是不是中了挖矿木马?
不一定,但挖矿木马是常见原因。建议先用top命令查看占用最高的进程,若发现陌生进程如kdevtmpfsi、xmrig等,基本可确认。同时检查网络连接,挖矿木马会连接矿池地址。
如何快速找到挖矿木马的进程和文件?
使用top或htop按CPU排序,记录PID;用ls -l /proc/PID/exe查看可执行文件路径;用crontab -l和ls /etc/cron.*检查定时任务;用netstat -antp查看异常外连。找到后先kill进程,再删除文件。
清除挖矿木马后,为什么很快又出现了?
因为持久化机制未清除。挖矿木马常通过定时任务、系统服务、SSH密钥、LD_PRELOAD等方式复活。必须彻底检查所有持久化位置,并修复入侵漏洞(如弱口令、未打补丁),否则会反复感染。
清除挖矿木马需要重装系统吗?
视情况而定。如果入侵较深、文件被篡改、存在rootkit,建议备份数据后重装系统。对于简单感染,可手动清除,但需确保无残留。重装是最彻底的方案,但成本较高。
如何预防服务器再次被植入挖矿木马?
关键措施:使用强密码并定期更换、及时更新系统和软件补丁、关闭不必要的端口和服务、部署主机安全工具如AegisX进行实时监控和拦截。同时定期检查日志和异常进程。