本文目录导读:

内网挖矿(通常由恶意软件或失陷主机植入的挖矿木马导致)不仅会严重消耗CPU/GPU资源,导致系统卡顿和电费飙升,还可能存在后门和安全风险,以下是系统性的排查与清理指南。
第一阶段:快速定位(找出“谁”在挖矿)
挖矿行为最显著的特征是资源占用高,以下是几种排查方法:
-
从网络层面定位(最准确)
- 抓取流量:挖矿程序会持续连接矿池(如
pool.supportxmr.com、eth.poolmine.org等)或未知的高延迟IP,使用Wireshark或火绒剑监控异常流量。 - 防火墙/代理日志:检查是否大量连接已知的矿池域名或非标准端口(如14444、3333、443等,但可能伪装)。
- 流量整形:使用Ntop或Zabbix观察突然流量激增的客户端。
- 抓取流量:挖矿程序会持续连接矿池(如
-
从性能监控层面定位(最容易)
- Windows:打开任务管理器 → 进程,按CPU占用排序,重点关注名字奇怪(如
svchost.exe但路径不对)、无签名或公司名为空、CPU长时间接近100%的进程。 - Linux:使用
top或htop,按P键按CPU降序,观察是否有一个进程吃掉所有资源,且命令名像乱码或伪装成系统进程(如[kworker]、NetworkManager)。
- Windows:打开任务管理器 → 进程,按CPU占用排序,重点关注名字奇怪(如
-
从进程行为定位(最隐蔽)
- 父进程排查:使用工具(如
Process Explorer(Windows)或ps aux –forest(Linux))查看该高占用进程的父进程,常见的挖矿入口是计划任务、WebShell、未授权SSH/RDP。 - 连接检查:Windows下用
netstat -ano | findstr “ESTABLISHED”,Linux下用ss -antp或lsof -i,找到该进程的PID,查看它连接的外部IP(通常是境外或云服务器IP),如果连接443端口但请求的是未知协议,基本确定。
- 父进程排查:使用工具(如
第二阶段:深度清理(挖矿木马往往不是孤立的)
警告: 如果你直接结束进程或删除文件,挖矿木马通常会被保护机制重新拉起,或者挖矿程序是无文件落地的,需按顺序操作。
停用与阻断(破坏其运行环境)
- 立即断网:拔掉网线或禁用网卡,挖矿程序失去连接后不会产生收益,但可能会频繁重连或写日志,给你争取处置时间。
- 结束进程树:不要只结束主进程,要结束整个进程树(在Linux中用
kill -9 <PID>并带上pkill -f杀相关名,Windows中在进程管理器右键“结束进程树”)。 - 删除相关服务:检查服务管理器(
services.msc),看是否有名称奇怪、描述为空且自动启动的服务,停止并禁用。
清除持久化机制(根治)
挖矿木马通常通过以下方式实现重启后仍存在:
- 计划任务(最常见):
- Windows:
schtasks或任务计划程序库,查找有恶意URL或脚本的任务。 - Linux:检查
/var/spool/cron/crontabs/、/etc/cron.d/、/var/spool/cron/,查看用户root或低权限用户的crontab。
- Windows:
- 启动项:
- Windows:
regedit查看Run、RunOnce、RunServicesOnce等注册表键(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)。 - Linux:检查
~/.bashrc、~/.bash_profile、/etc/rc.local、systemd服务(/lib/systemd/system/下可疑的.service文件)。
- Windows:
- WMI事件订阅:非常隐蔽,Windows下查询
select * from __FilterToConsumerBinding等。
操作: 找到这些启动项后,先删除恶意条目,再删除对应的可执行文件,如果文件被锁定,可以用 Process Explorer 的 Handle 功能查看是谁在占用,或者安全模式下删除。
文件清理(彻底清除)
- 定位文件位置:
- Windows:通常藏在
C:\Windows\Temp、C:\Users\<用户名>\AppData\Local\Temp、C:\ProgramData下(文件夹名随机或为空)或C:\Windows\System32\Tasks\Microsoft\Windows\PLA\等系统目录。 - Linux:通常藏在
/tmp、/dev/shm(内存盘)、/var/tmp、/boot(伪装成内核文件)、或用户家目录 下的隐藏文件夹(如.ssh/.cache/)。
- Windows:通常藏在
- 删除时注意事项:
- 如果文件名是随机的,记录下路径,删除后,立即在注册表或计划任务中补删所有引用该文件的条目。
- 有些挖矿木马会使用内核模块(rootkit),
lsmod检查可疑内核模块(如xmr、miner、cr4ck等),用rmmod卸载并删除/lib/modules/下的对应.ko文件。
第三阶段:加固与漏洞修复(防止卷土重来)
清理完只是完成了第一步,如果入口点还在,很快会再被入侵,必须修复以下常见入口:
- 弱口令:修改所有服务器、数据库、Web管理后台、SSH/RDP的密码(尤其是管理员密码),要求大写+小写+数字+特殊符号,15位以上。
- 关闭不必要的端口:防火墙只放行业务端口(如80/443/SSH),关闭高危端口:
3389(RDP)、22(SSH,如果必须开则改为非标准端口或密钥登录)、3306(MySQL)、6379(Redis,若无需对外则绑定127.0.0.1)。 - Web漏洞修补:
- 如果是通过WebShell(如一句话木马
webshell.php)进入的,请彻底扫描网站的uploads、images、temp目录下的php/jsp/aspx文件,并修补文件上传漏洞、命令执行漏洞。 - 如果是通过JNDI注入(Log4j)、反序列化、ThinkPHP等框架RCE进入的,检查应用的资产清单,确认相关中间件(Tomcat、Nginx、WebLogic)的版本和补丁情况。
- 如果是通过WebShell(如一句话木马
- 数据库审计:检查MySQL的
general_log和 binlog,看是否有通过into outfile写入Web目录的行为,如果Redis未授权访问,立即绑定IP并设密码。 - 更新软件:操作系统打补丁(尤其是远程代码执行漏洞),中间件、PHP/JDK升级到最新稳定版。
第四阶段:日常防御(工具+意识)
- 部署安全软件:内网所有服务器建议安装ClamAV(免费杀毒)、Chkrootkit(Linux查Rootkit)或火绒(Windows,无广告且对挖矿行为敏感),定期全盘扫描。
- 主机入侵检测(HIDS):部署Wazuh(开源)或Osquery,配置规则:
- 当任意进程CPU占用超过80%持续5分钟时告警。
- 当非系统进程连接外部陌生IP(特别是矿池IP列表)时告警。
- 基线检查:
- 禁止内网服务器使用弱口令。
- 白名单机制:建立可信的软件安装名单,禁止在内网随意运行来历不明的第三方工具(如破解版软件、游戏外挂、下载器)。
- 网络隔离:业务网和办公网、管理网严格物理或逻辑隔离,内网服务器原则上严禁访问外网,如需更新补丁应通过内网软件源或离线推送。
- 日志集中:将Windows事件日志、Linux系统日志、Web日志发送到Splunk/ELK等日志平台,根据挖矿行为特点(如CPU高负载、大量DNS请求到未知域名、文件写入临时目录)建立检测规则。
总结性思维导图(行动清单)
- 第一步:发现 → 任务管理器高CPU → 网络连接异常 → 计划任务/服务/启动项异常
- 第二步:中断 → 断网 → 结束进程树 → 删除持久化项 → 删除文件
- 第三步:根除 → 修改弱口令 → 关闭高危端口 → 修补Web漏洞 → 更新系统补丁
- 第四步:防护 → 部署HIDS/杀软 → 限制外网访问 → 日志告警 → 定期基线扫描
特别提醒: 如果你没有把握清理干净,或者挖矿木马采用了无文件、无磁盘、内核级Rootkit等高阶手法,直接重装系统+格式化所有非数据盘可能是最省心、最安全的做法,但前提是必须先备份关键数据(彻底扫描杀毒后再恢复),否则刚重装就被再次感染。