Zeltoc/wireshark-netsupport-rat-analysis

GitHub: Zeltoc/wireshark-netsupport-rat-analysis

一份基于 Wireshark 的 NetSupport Manager RAT 恶意流量分析实战记录,完整展示了从 PCAP 中逐步提取受感染主机身份信息并编写事件报告的调查流程。

Stars: 1 | Forks: 0

# Wireshark PCAP 分析实验 - NetSupport RAT C2 检测 **工具:** Wireshark **样本:** 2026-02-28-traffic-analysis-exercise.pcap (Malware Traffic Analysis) **来源:** https://www.malware-traffic-analysis.net/2026/02/28/index.html **威胁:** NetSupport Manager RAT C2 信标流量 **MITRE ATT&CK:** T1219, T1071.001, T1568 ## 场景 在 SOC 处理 SIEM 告警。自 UTC 时间 2026-02-28 19:55 起,检测到多个针对来自 `45.131.214[.]85` 通过 TCP 端口 443 的 NetSupport Manager RAT 的签名命中。已获取触发告警的内部主机的 PCAP 文件。任务是识别受感染机器并记录 C2 活动以编写事件报告。 **环境:** - LAN 网段:`10.2.28.0/24` - 域名:`easyas123.tech` - AD 环境:`EASYAS123` - 域控制器:`10.2.28.2` (EASYAS123-DC) - 网关:`10.2.28.1` ## 方法论 ### 步骤 1 - 协议层级概述 分析任何未知 PCAP 的第一步是查看 Statistics -> Protocol Hierarchy,以在过滤任何内容之前了解存在哪些类型的流量。 从协议层级中获得的关键观察: - **80.9% TCP** -- 高 TCP 流量,这在 Windows AD 环境中是符合预期的 - **TLS 占 12%** -- 加密流量,符合 HTTPS/AD Kerberos 的预期 - **HTTP 占 2.3%** -- 未加密的 HTTP 值得调查,尤其是在与 TLS 并存时 - **SMB2 占 5.1%** -- AD 域环境中的正常流量 - **Kerberos 占 0.1%** -- 身份验证流量,可用于提取用户名 - **LDAP 占 3.3%** -- AD 目录查询 与 TLS 并存的 HTTP 是第一个危险信号。在正常环境中,端口 443 上的 HTTP 流量应该极少甚至不存在。 ### 步骤 2 - 识别受感染主机 Statistics -> Conversations -> TCP 选项卡,按字节数降序排列。 **10.2.28.88** 在会话列表中占据主导地位,几乎在所有高流量连接中都作为源地址出现。这就是受感染的主机。 应用过滤器以确认: ``` ip.addr == 45.131.214.85 ``` 所有进出 C2 IP 的流量均源自 `10.2.28.88`。 ### 步骤 3 - 确认 C2 流量 应用过滤器: ``` http.request.method == "POST" ``` 这立即揭示了 C2 信标模式 -- 从 `10.2.28.88` 到 `45.131.214[.]85` 在 TCP 端口 443 上重复发出的 HTTP POST 请求: ``` POST http://45.131.214.85/fakeurl.htm HTTP/1.1 User-Agent: NetSupport Manager/1.3 Content-Type: application/x-www-form-urlencoded Host: 45.131.214.85 Connection: Keep-Alive ``` 以下三点确认了这是 NetSupport RAT C2: **1. User-Agent 字符串** -- `NetSupport Manager/1.3` 是 NetSupport RAT 用于 C2 通信的硬编码 User-Agent。这是一个有充分记录的指标。 **2. URL** -- `/fakeurl.htm` 是 NetSupport RAT 使用的硬编码回调 URI。它不是真实的文件 -- 它是一个在服务器端处理信标数据的 C2 端点。 **3. 端口 443 上的明文 HTTP** -- Wireshark 通过 Expert Info 警告标记了这一点:“Unencrypted HTTP protocol detected over encrypted port, could indicate a dangerous misconfiguration.”。该 RAT 使用端口 443 是为了在防火墙层面伪装成 HTTPS 流量,但实际的 C2 通信是未加密的 HTTP。原始数据包数据显示了明文的 `CMD=POLL` 和 `ACK=1` -- 在线路数据中可见的 RAT 保持连接命令。 **信标间隔:** POST 之间大约相隔 60 秒 -- 这与 NetSupport RAT 的默认轮询间隔一致。 ### 步骤 4 - MAC 地址 过滤受感染主机的第一个 ARP 数据包: ``` arp ``` 数据包 3 显示了来自 `10.2.28.88` 的 ARP 请求,其源 MAC 为 `00:19:d1:b2:4d:ad` (Intel NIC)。以太网头在整个抓包过程中证实了这一点。 ### 步骤 5 - 主机名 应用过滤器: ``` smb ``` 使用查找 (Ctrl+F) 在数据包列表中搜索字符串 `DESKTOP-`。数据包 225 显示了来自 `10.2.28.88` 的 NetBIOS Browser Host Announcement: ``` Host Announcement DESKTOP-TEYQ2NR, Workstation, Server, NT Workstation Host Name: DESKTOP-TEYQ2NR OS Major Version: 10 OS Minor Version: 0 ``` 主机名也在 Kerberos AS-REQ 数据包地址字段中得到确认:`DESKTOP-TEYQ2NR<20>`。 ### 步骤 6 - 用户名 应用过滤器: ``` kerberos ``` 从 `10.2.28.88` 发送到位于 `10.2.28.2` 的 DC 的 AS-REQ (Authentication Service Request) 数据包显示了身份验证主体: ``` cname: name-type: kRB5-NT-PRINCIPAL (1) CNameString: brolf realm: EASYAS123 ``` 用户名:**brolf** ### 步骤 7 - 全名 用户名 `brolf` 是一个短账户名。为了获取全名,查看了 SAMR (Security Account Manager Remote Protocol) 流量 -- 这是 Windows 用来从 DC 查询用户账户详细信息的协议。 使用查找 (Ctrl+F) 在数据包详细信息中搜索字符串 `Rolf`。定位到包含 UserInfo21 数据的 SAMR 响应: ``` Full Name: Becka Rolf ``` 这是与 `brolf` 账户关联的显示名称。 ## 事件报告 | 字段 | 值 | |---|---| | IP 地址 | 10.2.28.88 | | MAC 地址 | 00:19:d1:b2:4d:ad | | 主机名 | DESKTOP-TEYQ2NR | | 用户名 | brolf | | 全名 | Becka Rolf | | C2 IP | 45.131.214[.]85 | | C2 端口 | 443 (TCP) | | C2 协议 | HTTP (未加密,伪装为 HTTPS) | | C2 URI | /fakeurl.htm | | 恶意软件 | NetSupport Manager RAT v1.3 | | 信标间隔 | ~60 秒 | | 首次发现 | 2026-02-28 12:55 (PCAP 时间) | ## C2 流量分析 NetSupport Manager 是一款经常被滥用为 RAT 的合法远程访问工具。此抓包中的 C2 通信模式是恶意变种的典型特征: **为什么使用端口 443?** 防火墙和安全工具通常允许出站端口 443 (HTTPS) 而不进行深度检测。通过将端口 443 用于 HTTP 流量,该 RAT 绕过了基本的基于端口的拦截。 **为什么它会被检测到?** TLS 检测或任何能够查看数据包内容的工具都会立即将该流量识别为未加密的 HTTP -- HTTP 头、URI 和 C2 命令全部为明文。User-Agent `NetSupport Manager/1.3` 和 URI `/fakeurl.htm` 是有充分记录的签名,任何具有最新规则的 SIEM 都会捕获它们,这与本次告警的触发方式相符。 **CMD=POLL** -- 在原始数据包字节中可见,这是 RAT 发送的用于检查操作员命令的保活信标。操作员连接到同一 C2 服务器并发出命令,信标在每次轮询周期中检索这些命令。 ## MITRE ATT&CK 映射 | 技术 | ID | 描述 | |---|---|---| | 远程访问软件 | T1219 | NetSupport Manager RAT 被用于 C2 | | 应用层协议:Web 协议 | T1071.001 | HTTP 被用于 C2 通信 | | 动态解析 | T1568 | RAT 轮询 C2 端点以获取操作员命令 | ## 关键结论 **协议层级是起点。** 在过滤任何内容之前,层级视图会提供现有流量的全貌。在 AD 域网络上,与 TLS 并存的 HTTP 会立即引起怀疑,并在应用任何过滤器之前缩小搜索范围。 **C2 信标具有模式。** 如果你知道要寻找什么,POST 之间 60 秒的间隔就是一个明显的破绽。手动审查时间戳可以捕捉到这一点;自动化的 SIEM 规则则可以大规模捕获它。 **端口 443 上的明文 C2 是一种常见的规避技术。** 仅检查端口号的边界规则将完全忽略这一点。检测需要 TLS 检测或匹配 User-Agent 字符串或已知 URI 的 SIEM 签名。 **从 Kerberos 提取用户名是一项标准技术。** 每当 Windows 主机向域控制器进行身份验证时,Kerberos AS-REQ 都会包含明文形式的主 体名称。对于调查人员而言,Kerberos 流量是域抓包中最可靠的用户身份来源之一。 **SAMR 提供全名,而不仅仅是账户名。** 像 `brolf` 这样的账户名是短别名。完整的显示名称存在于来自 DC 的 SAMR 响应中 -- 这有助于在事件报告中识别账户背后的真实人员。 ## 仓库结构 ``` wireshark-netsupport-rat-analysis/ ├── README.md └── screenshots/ ├── 01-protocol-hierarchy.png ├── 02-conversations-tcp.png ├── 03-c2-post-beacon.png ├── 04-c2-http-filtering.png ├── 05-kerberos-username.png ├── 06-kerberos-as-req.png ├── 07-smb-hostname.png ├── 08-arp-mac-address.png └── 09-samr-full-name.png ``` ## 参考 - [Malware Traffic Analysis -- 2026-02-28 练习](https://www.malware-traffic-analysis.net/2026/02/28/index.html) - [MITRE ATT&CK T1219 -- 远程访问软件](https://attack.mitre.org/techniques/T1219/) - [MITRE ATT&CK T1071.001 -- 应用层协议:Web 协议](https://attack.mitre.org/techniques/T1071/001/) - [NetSupport RAT -- Any.run 威胁情报](https://any.run/malware-trends/netsupport)
标签:C2通信, Checkov, Cloudflare, DAST, HTTP, IP地址, MAC地址, MITRE ATT&CK, NetSupport RAT, PCAP分析, SMB, TCP, TLS, Wireshark, 主机名, 受害主机识别, 句柄查看, 命令与控制, 安全分析师, 安全实验室, 安全运营中心, 库, 应急响应, 恶意软件分析, 数字取证, 流量取证, 用户名, 网络协议分析, 网络安全, 网络映射, 自动化脚本, 蜜罐分析, 远程访问木马, 错误配置检测, 防御工具, 隐私保护