大数跨境
0
0

挖矿木马 PCAP 检测速查手册

挖矿木马 PCAP 检测速查手册 Lemon (跨境电商)
2025-10-17
75
适用场景:网络安全运维、恶意流量分析、终端病毒排查
适配工具:Wireshark、TShark、Suricata、Snort

一、协议特征深度解析


(一)Stratum 协议(挖矿核心通信协议)


1. 协议结构规范


    基于 TCP 的 JSON-RPC 2.0 格式,典型交互数据包内容如下

{  "id": 1,                  // 请求ID,整数递增  "method": "mining.subscribe",  // 核心方法(订阅/通知/提交)  "params": [    "stratum/2.0.0",        // 协议版本    "XMRig/6.22.0"          // 矿机软件及版本(常见:XMRig、Geth)  ]}

2. 关键方法识别(必查字段)


方法名称
发送方向
核心作用
特征字段示例
mining.subscribe
矿机→矿池
初始化订阅矿池任务
"params":["stratum/2.0.0"]
mining.notify
矿池→矿机
下发挖矿任务(含哈希)
"params":["00000001","abc123"]
mining.submit
矿机→矿池
提交计算结果(含 nonce)
"params":["nonce":"1a2b3c"]

3. Wireshark 筛选规则

tcp contains "mining.subscribe" || tcp contains "mining.notify" || tcp contains "mining.submit"

(二)门罗币 XMRig 协议(JSON-RPC 变种)


1. 独特字段标识


  • 登录包特征
    :含门罗币钱包地址(固定 95 位,以 “4” 或 “8” 开头),示例:
{  "method": "login",  "params": {    "login": "44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A",    "pass": "x"  // 密码固定为“x”,无实际意义  }}
  • 提交包特征
    method 字段固定为 “submit_share”,示例:"method": "submit_share", "params": {"job_id": "job123", "nonce": "456def"}


2. 专属筛选规则


tcp contains "method\":\"login\" && tcp contains \":44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A"

(三)加密流量伪装(TLS/SSL 隐藏)


1. 证书异常特征


  • 自签名证书:证书 “颁发者” 与 “使用者” 一致,无正规 CA 机构(如 Let's Encrypt)签名。
  • 矿池关联信息:证书 “主题”(CN 字段)含矿池域名,如 “CN=pool.minexmr.com”。

2. 流量模式异常


  • 周期规律:每 10-60 秒发送 1 次小数据包(100-300 字节),无大文件传输。
  • 方向特征:上行流量(矿机→矿池)占比 > 80%,下行流量仅为任务指令。

3. 检测操作步骤(Word 中建议用 “编号列表”)


  1. 打开 Wireshark,选中可疑 TLS 流,右键→“协议偏好设置”→“TLS”→“RSA 密钥列表”。
  2. 导入目标服务器 CA 证书(若能获取),强制解密流量。
  3. 解密后筛选:tcp contains "mining" || tcp contains "jsonrpc",验证是否含挖矿字段。

二、流量行为精准定位


(一)周期性流量模式(核心识别点)


1. 时间间隔特征

  • 正常范围:矿机与矿池通信周期为 10-60 秒(无业务波动时固定)。
  • 异常排除:排除 HTTP/HTTPS 的随机请求(周期不固定,字节数波动大)。

2. Wireshark 分析步骤

  1. 导入 PCAP 包后,点击 “Statistics”→“Conversations”→“TCP” 标签。
  2. 按 “Packets” 列排序,筛选数据包数量 > 50 的会话(排除短连接)。
  3. 选中目标会话,右键→“Follow TCP Stream”,查看 “Time” 列是否有固定间隔(如每 30 秒 1 条)。

3. 精准筛选规则

tcp.stream eq 123 && frame.time_delta > 9 && frame.time_delta < 61(注:“123” 需替换为实际流编号,可从 “Conversations” 中获取)

(二)PSH 标志与流量方向关联


1. PSH 标志特征(TCP 推送标志)


  • 矿机→矿池:PSH 标志占比 > 90%(需快速提交计算结果,不缓存)。
  • 矿池→矿机:PSH 标志占比约 50%(任务指令可缓存,无需实时推送)。

2. 筛选规则


(tcp.flags.push == 1 && ip.src == 192.168.1.100) || (tcp.flags.push == 1 && ip.dst == 185.215.113.66)(注:替换 “192.168.1.100” 为内部可疑 IP,“185.215.113.66” 为目标 IP)


(三)异常流量阈值(量化判断)


终端类型
上行带宽异常阈值
持续时间阈值
数据包大小异常特征
普通办公 PC
>1Mbps
>5 分钟
90% 数据包为 200-500 字节
服务器(非业务)
>10Mbps
>10 分钟
出现大量 1400 字节以上数据包
IoT 设备
>100Kbps
>30 分钟
无 HTTP/HTTPS 业务却有持续流量

检测命令


# 统计指定IP的上行带宽(单位:字节/秒)tshark -r sample.pcap -Y "ip.src == 192.168.1.100" -T fields -e frame.time_epoch -e frame.len | awk '{    if (NR == 1) start = $1;    total += $2;    end = $1;} END {    bandwidth = total / (end - start);    print "上行带宽:" bandwidth " 字节/秒";}'

三、矿池地址与端口库


矿池名称
典型域名
常用端口
对应币种
备注
Ethermine
ethermine.org
5555/443
以太坊(ETH)
全球最大 ETH 矿池
MiningPoolHub
miningpoolhub.com
443/80
多币种
支持自动切换币种
NanoPool
nanopool.org
9999/8888
ETH/ETC
低手续费,适合小矿机
XMRPool
xmrpool.eu
80/443
门罗币(XMR)
专注 XMR,匿名性强
F2Pool
f2pool.com
3333/8888
BTC/ETH
国内老牌矿池

四、工具与命令实战


(一)Wireshark 高级操作


1. 追踪流深度分析

  1. 选中可疑数据包,右键→“Follow”→“TCP Stream”(或 “UDP Stream”)。
  2. 在弹出的 “TCP 流” 窗口中,选择 “显示方式” 为 “原始数据”,查看完整 JSON 内容。
  3. 关键判断:若出现 “mining”“nonce”“wallet” 等字段,标记为高风险。

2. 流量可视化分析

  • 路径:“Statistics”→“Flow Graph”。
  • 配置:“Flow Type” 选择 “TCP Flows”,“Time Range” 选择 “All”。
  • 识别:若某条流呈现 “均匀分布的小点”(固定周期),且无明显峰值,为挖矿特征。

(二)TShark 自动化脚本(批量分析)


1. 提取矿池通信日志

# 从PCAP中提取含mining字段的记录,输出到stratum.logtshark -r sample.pcap -Y 'tcp contains "mining.notify" || tcp contains "mining.submit"' \-T fields -e frame.time -e ip.src -e ip.dst -e tcp.srcport -e tcp.dstport -e data \> stratum.log

2. 统计 IP 通信频次(定位高频连接)

# 统计源IP→目标IP的通信次数,按频次排序tshark -r sample.pcap -T fields -e ip.src -e ip.dst | awk '{print $1"→"$2}' | sort | uniq -c | sort -nr > ip_count.log

3. 导出可疑流为单独 PCAP(便于后续分析)

# 导出流编号为123的TCP流到suspicious.pcaptshark -r sample.pcap -Y "tcp.stream eq 123" -w suspicious.pcap

(三)Suricata 规则(实时检测与告警)


1. Stratum 协议检测规则

alert tcp $HOME_NET any -> $EXTERNAL_NET any (    msg:"MINING - Stratum协议通信(高风险)";    content:"mining.subscribe";    content:"jsonrpc";    depth:200;  # 仅检查前200字节,提高效率    classtype:trojan-activity;    sid:1000001;  # 规则唯一ID    rev:1;  # 规则版本)

2. 门罗币钱包地址检测规则

alert tcp $HOME_NET any -> $EXTERNAL_NET any (    msg:"MINING - 门罗币钱包地址传输(高风险)";    content:"44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A";    offset:50;  # 跳过前50字节,避免误判    depth:100;  # 检查50-150字节范围    classtype:trojan-activity;    sid:1000002;    rev:1;)

3. 规则部署步骤

  1. 将规则保存为 “mining.rules” 文件,放入 Suricata 规则目录(如/etc/suricata/rules/)。
  2. 修改 Suricata 配置文件(suricata.yaml),在 “rule-files” 中添加 “mining.rules”。
  3. 启动 Suricata 并加载规则:suricata -c suricata.yaml -i eth0 -s mining.rules

五、异常行为关联分析(主机 + 网络联动)


(一)进程与网络连接关联(Linux 系统)


1. 查看进程关联的网络连接

# 显示所有ESTABLISHED状态的连接,关联进程名ss -tunap | grep ESTAB | awk '{print "进程:"$7" | 连接:"$5}'

2. 排查隐藏进程(常见挖矿木马手段)

# 查看所有进程(包括隐藏进程),对比ps命令结果ls -l /proc | grep -E '^d' | awk '{print $9}' | grep -vE '^[0-9]+$'  # 异常进程名会非数字

3. 检查预加载恶意库(篡改 ld.so.preload)

# 查看是否被注入恶意SO文件路径cat /etc/ld.so.preload# 若有异常路径,删除并重启:echo "" > /etc/ld.so.preload && reboot

(二)Windows 主机排查(工具推荐)


1. 进程监控工具:Process Explorer

  • 操作步骤:
    1. 打开后点击 “View”→“Select Columns”→勾选 “TCP Connections”。
    2. 按 “CPU” 列排序,筛选 CPU 占用 > 50% 且无明确业务的进程。
    3. 查看进程的 “TCP Connections”,若连接到矿池 IP,直接结束进程。

2. 网络连接监控:TCPView

  • 功能:实时显示所有 TCP/UDP 连接,标注进程名和 IP 地址。
  • 排查重点:筛选 “Remote Address” 为陌生 IP,且 “State” 为 “ESTABLISHED” 的连接。

(三)威胁情报验证(确认 IP / 域名合法性)


1. VirusTotal API 查询

import requestsdef check_ip_virustotal(ip, api_key):    url = f"https://www.virustotal.com/api/v3/ip_addresses/{ip}"    headers = {"x-apikey": api_key}    response = requests.get(url, headers=headers)    data = response.json()
    # 提取恶意标记数量    malicious = data["data"]["attributes"]["last_analysis_stats"]["malicious"]    suspicious = data["data"]["attributes"]["last_analysis_stats"]["suspicious"]
    print(f"IP:{ip}")    print(f"恶意标记:{malicious} 个 | 可疑标记:{suspicious} 个")    if malicious + suspicious > 0:        print("结论:该IP为可疑矿池/恶意IP")    else:        print("结论:该IP暂未被标记为恶意")# 使用示例(需替换为自己的API密钥)check_ip_virustotal("185.215.113.66""YOUR_VIRUSTOTAL_API_KEY")

六、案例实战


案例 1:XMRig 门罗币木马检测


1. PCAP 流量特征

  • 源 IP:192.168.1.105(内部办公 PC),目标 IP:141.94.115.174(XMRPool 矿池)。
  • 数据包内容:含 “method":"login"” 和门罗币钱包地址(44AFFq...)。
  • 流量模式:每 20 秒发送 1 次 “submit_share” 请求,上行流量稳定在 500Kbps。

2. 检测步骤

  1. 用 Wireshark 筛选:tcp contains "submit_share",定位可疑流。
  2. 追踪流查看完整内容,确认钱包地址格式(95 位,以 “4” 开头)。
  3. 在 VirusTotal 查询目标 IP:141.94.115.174,显示 “23 个引擎标记为矿池 IP”。
  4. 登录 192.168.1.105 主机,用 Process Explorer 找到 “xmrig.exe” 进程(CPU 占用 98%),结束并删除文件。

3. 处置结果

  • 清除木马文件:C:\Users\Public\xmrig.exe
  • 阻断矿池 IP:在防火墙添加 ACL,禁止内部网络访问 141.94.115.0/24。

案例 2:TLS 加密伪装挖矿检测


1. 流量异常表现

  • 源 IP:10.0.0.20(服务器),目标 IP:13.248.169.48(MiningPoolHub)。
  • TLS 流量:每 30 秒发送 1 次 150 字节数据包,无 HTTP/HTTPS 业务请求。
  • 证书信息:自签名证书,CN 字段为 “pool.minexmr.com”。

2. 检测步骤

  1. 用 Wireshark 导出 TLS 证书:选中 TLS 握手包→“Protocol”→“TLS”→“Certificate”→“Export”。
  2. 查看证书详情:“颁发者” 与 “使用者” 均为 “pool.minexmr.com”,判定为自签名。
  3. 强制解密 TLS 流量:导入矿池 CA 证书(从服务器获取),解密后筛选到 “mining.notify” 字段。
  4. 服务器排查:用ss -tunap | grep 13.248.169.48,找到关联进程 “unknown”(恶意进程隐藏名),PID 为 1234。

3. 处置结果

  • 终止进程:kill -9 1234
  • 删除恶意文件:rm -rf /tmp/.unknown(隐藏路径,需用ls -a查看)。

七、误报排除指南(Word 中用 “项目符号” 清晰区分)


(一)合法矿池通信排除

  • 场景
    企业内部有合法挖矿业务(如区块链实验室)。
  • 排除方法
    1. 收集合法矿机 IP 段(如 192.168.100.0/24),添加到 Wireshark/Suricata 白名单。
    2. 在筛选规则中排除:tcp contains "mining" && ip.src != 192.168.100.0/24

(二)正常业务干扰排除


1. HTTP/2 流量误判

  • 特征:HTTP/2 帧结构与 Stratum 协议相似,易被误检。
  • 排除方法:筛选时添加 HTTP/2 排除规则:tcp contains "mining" && !http2

2. IoT 设备周期性流量


  • 特征:智能家居(如摄像头、温控器)会发送周期性心跳包(100-200 字节)。
  • 排除方法:
    1. 记录 IoT 设备 MAC 地址,绑定固定 IP(如 192.168.2.0/24)。
    2. 筛选时排除:tcp contains "mining" && ip.src != 192.168.2.0/24

(三)加密流量误判

  • 场景
    视频会议(如 Zoom)、即时通讯(如企业微信)会产生高频小数据包。
  • 排除方法
    1. 检查 TLS 证书:正规业务证书由知名 CA 颁发(如 DigiCert、Symantec)。
    2. 查看域名:通过 DNS 查询目标 IP 对应的域名,确认是否为业务域名(如 zoom.us)。

八、防御建议(按 “网络层 - 主机层 - 监控层” 分类)


(一)网络层防御

  1. 防火墙 ACL 配置:阻断已知矿池 IP 段(参考 “矿池地址与端口库”),禁止非业务端口出站(如 5555、9999)。
  2. DPI 设备部署:启用深度包检测,识别 Stratum/XMRig 协议流量,实时阻断。
  3. DNS 过滤:在 DNS 服务器中添加矿池域名黑名单(如 *.mine.com、*.miningpoolhub.com),返回空解析。

(二)主机层防御

  1. 终端防护:
    • Linux:安装 ClamAV 杀毒软件,定期扫描/tmp/var/tmp等隐藏目录。
    • Windows:启用 Windows Defender 实时保护,禁止 “公共文件夹” 执行.exe 文件。
  2. 进程监控:
    • 部署 EDR 工具(如 CrowdStrike、奇安信 EDR),监控 CPU 占用 > 80% 的异常进程。
    • 对关键目录(如/etcC:\Windows\System32)设置写入权限控制,防止木马篡改配置。

(三)监控与响应

  1. 流量基线建立:
    • 统计正常业务时段的带宽、连接数、数据包大小,设置基线阈值(如上行带宽超过基线 200% 告警)。
    • 使用 Zabbix/Grafana 监控网络流量,添加异常波动告警(如 5 分钟内上行流量突增)。
  2. 威胁情报更新:
    • 每周更新矿池 IP / 域名库(参考微步在线、VirusTotal),同步到防火墙和检测工具。
    • 建立挖矿木马处置流程,明确 “检测 - 验证 - 处置 - 复盘” 步骤,缩短响应时间。

【声明】内容源于网络
0
0
Lemon (跨境电商)
跨境分享吧 | 每日更新跨境心得
内容 52640
粉丝 0
Lemon (跨境电商) 跨境分享吧 | 每日更新跨境心得
总阅读293.5k
粉丝0
内容52.6k