如何用Wireshark抓包分析CoinMiner木马的TCP连接行为(附实战截图)

张开发
2026/4/18 2:04:44 15 分钟阅读

分享文章

如何用Wireshark抓包分析CoinMiner木马的TCP连接行为(附实战截图)
实战指南用Wireshark精准识别CoinMiner木马的TCP通信特征当你发现服务器CPU使用率异常飙升风扇狂转却找不到明确原因时很可能正在遭遇加密货币挖矿木马的侵袭。CoinMiner这类恶意软件会悄悄劫持计算资源进行门罗币XMR挖矿而Wireshark这款开源网络协议分析器正是揭露其罪行的数字显微镜。本文将手把手带您完成从流量捕获到特征识别的全流程实战。1. 环境准备与基础配置在开始狩猎之前需要确保分析环境准备妥当。我建议使用物理机而非虚拟机进行抓包因为部分挖矿木马会检测虚拟环境。准备一台性能中等的备用电脑安装最新版Wireshark目前3.6.7版本对加密流量识别有优化同时关闭不必要的后台程序以减少干扰流量。关键配置步骤# Ubuntu系统安装最新版Wireshark sudo add-apt-repository ppa:wireshark-dev/stable sudo apt-get update sudo apt-get install wireshark sudo dpkg-reconfigure wireshark-common # 允许非root用户抓包提示在Windows环境下建议安装WinPcap/Npcap驱动时勾选支持802.11无线监控选项这对检测通过Wi-Fi传播的木马很有帮助配置Wireshark首选项时有几个容易被忽视但至关重要的设置在Protocols中启用TCP/UDP端口关联解析将Name Resolution中的网络层解析设为优先调整Capture设置中将缓冲区大小设为256MB默认32MB可能丢失大流量包2. 捕获异常流量的实战技巧真正的挖矿流量往往隐藏在正常业务流量中。去年处理某企业服务器入侵事件时发现攻击者故意将矿池通信伪装成CDN流量。因此捕获时机的选择尤为关键——最好在CPU负载突然升高时立即开始抓包。高效捕获策略# Linux下使用dumpcap做长时间捕获-b参数实现环形缓冲 dumpcap -i eth0 -b filesize:102400 -b files:5 -w mining_suspect.pcapng通过多次实战我总结出CoinMiner流量的三个典型特征固定间隔通常2-5分钟的规律性TCP连接单个连接持续时间较长超过常见HTTP请求上下行流量比例异常常见1:3的下载上传比矿池通信识别表格特征维度正常业务流量CoinMiner流量目标端口随机分布3333/4444/5555等非常用端口数据包大小变化较大固定1440字节左右MTU最大值TLS指纹多样特定版本的OpenSSL指纹DNS查询多样频繁查询pool.*.com类域名注意现代挖矿木马会使用域名生成算法DGA建议同时监控DNS流量中的异常长域名请求3. 深度解析TCP流特征抓到可疑流量后Wireshark的Follow TCP Stream功能是核心分析工具。去年分析的案例中攻击者使用XMRig矿工程序其TCP载荷有固定头特征XMRig/6.12.1。典型分析流程过滤出高频率TCP连接tcp.flags.syn1 tcp.flags.ack0统计目标IP地理分布Statistics → Endpoints → Map检查加密握手特征ssl.handshake.type1在流重组窗口中CoinMiner通信往往呈现以下模式# 典型XMRig协议交互模式HEX格式 bPOST /rig/ HTTP/1.1\r\nHost: pool.supportxmr.com\r\n... b{method:login,params:{login:x,pass:x...高级识别技巧使用tshark -r capture.pcap -Y tcp.payload matches miner快速筛选检查TCP窗口大小挖矿连接通常保持较大窗口分析TCP重传率矿池连接质量差时重传率会升高4. 防御加固与自动化检测方案单纯依靠人工分析难以应对大规模威胁。基于实战经验我开发了一套结合Suricata和ELK的检测方案核心规则如下# Suricata规则示例 alert tcp any any - any [3333,4444,5555] (msg:Suspected CoinMiner Connection; flow:to_server,established; content:XMRig; depth:10; metadata:policy security-ips drop; sid:1000001; rev:1;)多维度防御策略网络层控制在边界防火墙阻断Stratum协议常用端口设置出向连接速率限制如每分钟新建连接不超过50个终端防护# Windows系统CPU使用率监控脚本 while ($true) { $cpu (Get-Counter \Processor(_Total)\% Processor Time).CounterSamples.CookedValue if ($cpu -gt 90) { Invoke-WebRequest -Uri http://SOC/api/alert?host$env:COMPUTERNAME } Start-Sleep -Seconds 30 }行为检测监控进程的异常TCP连接行为如svchost.exe连接矿池建立计算资源访问基线检测偏离值在一次为客户部署的检测系统中我们通过分析TLS证书有效期矿池证书通常较短和JA3指纹成功识别出经过加密的挖矿流量。这种深度检测方法可以有效对抗流量混淆技术。5. 应急响应与取证要点当确认系统感染后切忌立即断开网络。正确的做法是先保存完整的内存转储和进程快照# Linux系统取证命令集 sudo dd if/dev/mem ofmemdump.bin bs1M sudo lsof -i -n -P network_connections.txt sudo netstat -tulnp listening_ports.txt关键取证步骤使用Volatility分析内存中的加密钱包地址检查crontab/systemd中的持久化配置提取矿工配置文件通常位于/tmp或隐藏目录在最近处理的案例中攻击者使用rootkit隐藏进程我们最终通过对比/proc/net/tcp和ss -tulnp的输出差异发现了隐藏连接。这种对抗性分析需要结合多种工具交叉验证。

更多文章