从检测到根治的全流程指南
目录导读
- 内网挖矿的现状与风险——为什么你必须要重视?
- 挖矿行为的典型迹象——如何第一时间发现异常?
- 排查工具与实战步骤——从日志到进程的深度追踪
- 清理与根除方案——杀死进程≠解决问题
- 长期防御策略——防止“回马枪”的机制建设
- 常见问题问答(FAQ)——企业运维最关心的10个问题
内网挖矿的现状与风险
内网挖矿是指攻击者利用企业内部网络中的服务器、PC、甚至IoT设备,秘密植入挖矿程序(如门罗币Monero、以太坊等),消耗企业计算资源为攻击者牟利的行为。

从腾讯安全2024年发布的《企业挖矿安全报告》来看,超过62%的企业曾在内网中检测到挖矿程序,平均每台被感染设备每月消耗约300-800元电费,且伴随数据泄露、系统性能下降等连锁风险。
真实案例:某金融企业曾因内网一台Redis服务器被植入挖矿脚本,3个月内导致整个研发部门服务器延迟从20ms飙升至3000ms,最终造成核心交易系统中断2小时,损失超500万元。
挖矿行为的典型迹象
当你的内网出现以下“异常信号”时,就要怀疑可能被挖矿:
| 现象 | 特征 |
|---|---|
| CPU/GPU异常高负载 | 长期100%运行,即使无业务流量 |
| 网络流量异常 | 持续向海外矿池(如pool.minexmr.com)发送数据 |
| 进程隐藏 | 任务管理器看不到,但top或htop显示异常CPU占用 |
| 文件残留 | 临时目录出现watch.sh、sysupdate、minerd等可疑文件 |
| 内存泄漏 | 系统内存被疯狂占用,swap频繁使用 |
| 定时任务 | crontab -l出现非管理员添加的下载/执行命令 |
| 防火墙日志 | 有大量向外网IP的非标端口连接(如3333、14444、8080等) |
排查工具与实战步骤
1 基础检测——系统层面
Windows:
- 任务管理器观察CPU排序,优先排查
svchost.exe、wmiprvse.exe等伪装进程 - 使用
netstat -ano | findstr "4444 14444 3333"查看可疑连接 - 检查计划任务:
schtasks /query /fo LIST | findstr /I "miner update sys"
Linux:
# 查看CPU占用前10的进程 top -b -n1 | head -20 # 检查网络连接 ss -antp | grep -E "pool|mine|6666|4444" # 列出所有用户定时任务 for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null; done
2 深入排查——网络与文件
- DNS日志分析:使用
/var/log/secure或Windows事件查看器,搜索pool、mine、gate.moneropool.com等域名 - 文件哈希对比:将可疑文件上传至VirusTotal或本地沙箱检测
- 进程关联分析:
lsof -p <PID>查看进程打开了哪些文件、连接了什么IP
3 工具辅助(推荐)
| 工具 | 用途 | 来源 |
|---|---|---|
| Chkrootkit | 检测Linux rootkit | 开源 |
| Process Explorer | 替代任务管理器,显示隐藏进程 | Microsoft Sysinternals |
| Wireshark + Zeek | 抓包分析矿池通信流量 | 开源 |
| 河马webshell查杀 | 检测被篡改的Web文件 | 开源 |
注意:排查期间应保持冷静,避免直接kill进程导致系统崩溃,优先记录完整路径和进程树。
清理与根除方案
1 紧急处理——止血
# 停止并禁用服务 systemctl stop <可疑服务名> systemctl disable <可疑服务名> # 删除文件(先确认非系统文件) rm -rf /tmp/.X11-unix/miner /var/tmp/update.sh # 清理定时任务 crontab -r # 清除所有用户定时任务(谨慎使用)
2 权限与后门清除
大多数挖矿程序会:
- 创建隐藏用户:检查
/etc/passwd,删除无关用户 - SSH密钥植入:检查
~/.ssh/authorized_keys,移除未知公钥 - 持久化脚本:查看
/etc/init.d/、/etc/systemd/system/下的可疑服务单元 - 内核模块植入:
lsmod | grep -E "hide|rootkit",必要时重建内核
3 彻底根除——系统重装场景
如果发现以下情况,建议全盘格式化重装系统:
- 系统引导被修改(如MBR)
- 内核模块被注入
- 发现多个互相保护的rootkit
- 无法确认原始文件是否完整
长期防御策略
1 网络层防御
- 在边界防火墙封锁矿池IP段:
deny from any to 51.68.xxx.xxx deny from any to 108.62.xxx.xxx - 启用DNS过滤,将
pool.minexmr.com等域名解析到黑洞 - 部署内网未知出口流量报警系统(如Zeek签名规则)
2 系统层加固
- 最小化安装:不安装不必要的软件和库
- 权限最小化:应用程序不以root运行
- 禁用危险端口:如22、3306、6379等减少对外暴露
- 开启审计日志:
auditd记录所有execve事件
3 监控与响应
- 部署主机入侵检测(HIDS)如Wazuh、OSquery
- 设置CPU/网络异常告警阈值(如CPU超过80%持续5分钟)
- 定期漏洞扫描和补丁管理(尤其是Apache Log4j、Redis未授权访问)
常见问题问答(FAQ)
Q1:杀进程后为什么挖矿又会重新出现?
A:因为可能存在“守护进程”或定时任务自动重新下载,必须检查crontab、systemd、rc.local、注册表Run键,以及/etc/init.d/中的所有启动项。
Q2:我怎么知道矿池地址是什么?
A:抓取网络包,查找流量中携带的stratum+tcp://协议和矿池域名,常见矿池域名有:pool.minexmr.com、xmrpool.net、monerohash.com、supportxmr.com等。
Q3:如何防止挖矿程序被伪装成正常进程?
A:使用进程hash白名单机制,结合系统完整性监查(如Tripwire),重点检查cmd.exe(Windows)、bash(Linux)有无被替换。
Q4:只有服务器才可能被挖矿吗?
A:不是,IoT设备、网络摄像头、NAS、甚至交换机都可能被植入挖矿程序,尤其是ARM架构的设备,需检查/tmp和CPU占用。
Q5:挖矿对业务造成多大性能影响?
A:通常导致CPU占用率从空闲的5%飙升到95%以上,内存泄漏导致OOM,磁盘I/O可能因为日志暴增而饱和,最终导致业务响应延迟增加5-50倍。
Q6:发现内网挖矿后,是否要报告监管部门?
A:如果涉及金融、政务、医疗等关键信息基础设施,建议向当地网安部门报告,并保留日志证据,通常这属于“计算机系统非法控制”范畴。
Q7:挖矿清理之后如何验证是否干净?
A:重启后立即运行htop观察CPU占用率,使用rkhunter扫描rootkit,并用ss -ant检查外连异常IP,持续监控72小时无异常视为清理成功。
Q8:Windows和Linux挖矿排查有什么不同?
A:Windows多用Process Monitor、Autoruns、Sysmon;Linux多用strace、lsof、systemctl,但核心逻辑相同:寻找异常进程、文件、网络连接、定时任务。
Q9:杀毒软件能完全防范挖矿吗?
A:不能,挖矿程序常经过混淆、加壳、数字签名伪造等绕过杀软,高级挖矿还会注入合法进程内存(如explorer.exe),静态扫描完全失效。
Q10:有没有一键清理挖矿的脚本?
A:有,但强烈不推荐,脚本可能误删系统关键文件,且无法处理内核级rootkit,建议手动排查+工具辅助,核心系统必须人工复查。
本文由网络安全工程师撰写,基于真实企业应急响应案例提炼。 如需转载,请注明出处,任何性能优化建议需结合企业自身环境测试后应用,内网安全无小事,一次挖矿感染可能暴露整个内网架构,建议建立常态化安全巡检机制。