内网挖矿如何排查清理

wen 开源项目 33

从检测到根治的全流程指南

目录导读

  1. 内网挖矿的现状与风险——为什么你必须要重视?
  2. 挖矿行为的典型迹象——如何第一时间发现异常?
  3. 排查工具与实战步骤——从日志到进程的深度追踪
  4. 清理与根除方案——杀死进程≠解决问题
  5. 长期防御策略——防止“回马枪”的机制建设
  6. 常见问题问答(FAQ)——企业运维最关心的10个问题

内网挖矿的现状与风险

内网挖矿是指攻击者利用企业内部网络中的服务器、PC、甚至IoT设备,秘密植入挖矿程序(如门罗币Monero、以太坊等),消耗企业计算资源为攻击者牟利的行为。

内网挖矿如何排查清理

从腾讯安全2024年发布的《企业挖矿安全报告》来看,超过62%的企业曾在内网中检测到挖矿程序,平均每台被感染设备每月消耗约300-800元电费,且伴随数据泄露、系统性能下降等连锁风险。

真实案例:某金融企业曾因内网一台Redis服务器被植入挖矿脚本,3个月内导致整个研发部门服务器延迟从20ms飙升至3000ms,最终造成核心交易系统中断2小时,损失超500万元。


挖矿行为的典型迹象

当你的内网出现以下“异常信号”时,就要怀疑可能被挖矿:

现象 特征
CPU/GPU异常高负载 长期100%运行,即使无业务流量
网络流量异常 持续向海外矿池(如pool.minexmr.com)发送数据
进程隐藏 任务管理器看不到,但tophtop显示异常CPU占用
文件残留 临时目录出现watch.shsysupdateminerd等可疑文件
内存泄漏 系统内存被疯狂占用,swap频繁使用
定时任务 crontab -l出现非管理员添加的下载/执行命令
防火墙日志 有大量向外网IP的非标端口连接(如3333、14444、8080等)

排查工具与实战步骤

1 基础检测——系统层面

Windows

  • 任务管理器观察CPU排序,优先排查svchost.exewmiprvse.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事件查看器,搜索poolminegate.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 权限与后门清除

大多数挖矿程序会:

  1. 创建隐藏用户:检查/etc/passwd,删除无关用户
  2. SSH密钥植入:检查~/.ssh/authorized_keys,移除未知公钥
  3. 持久化脚本:查看/etc/init.d//etc/systemd/system/下的可疑服务单元
  4. 内核模块植入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:因为可能存在“守护进程”或定时任务自动重新下载,必须检查crontabsystemdrc.local、注册表Run键,以及/etc/init.d/中的所有启动项。

Q2:我怎么知道矿池地址是什么?
A:抓取网络包,查找流量中携带的stratum+tcp://协议和矿池域名,常见矿池域名有:pool.minexmr.comxmrpool.netmonerohash.comsupportxmr.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多用stracelsofsystemctl,但核心逻辑相同:寻找异常进程、文件、网络连接、定时任务。

Q9:杀毒软件能完全防范挖矿吗?
A:不能,挖矿程序常经过混淆、加壳、数字签名伪造等绕过杀软,高级挖矿还会注入合法进程内存(如explorer.exe),静态扫描完全失效。

Q10:有没有一键清理挖矿的脚本?
A:有,但强烈不推荐,脚本可能误删系统关键文件,且无法处理内核级rootkit,建议手动排查+工具辅助,核心系统必须人工复查。


本文由网络安全工程师撰写,基于真实企业应急响应案例提炼。 如需转载,请注明出处,任何性能优化建议需结合企业自身环境测试后应用,内网安全无小事,一次挖矿感染可能暴露整个内网架构,建议建立常态化安全巡检机制。

抱歉,评论功能暂时关闭!