maurynickelson/Wireshark-Traffic-Analysis

GitHub: maurynickelson/Wireshark-Traffic-Analysis

一份详细的 Wireshark 网络流量分析实战指南,涵盖实时抓包基线建立和 Agent Tesla 恶意软件 SMTP 凭据窃取的取证分析。

Stars: 0 | Forks: 0

# Wireshark 网络流量分析 — Agent Tesla 凭据窃取 ## 目标 在云端托管 Windows VM 上部署并运行 Wireshark,以分析实时网络流量和恶意 PCAP 文件。通过对真实世界 Agent Tesla 信息窃取器感染的实际操作分析,展示在数据包捕获、协议过滤、流量基线建立、IOC 提取和 MITRE ATT&CK 映射方面的熟练程度。 ## 环境 | 组件 | 详情 | |---|| | 平台 | Microsoft Azure | | 虚拟机操作系统 | Windows 11 | | 工具 | Wireshark 4.6.4 | | 恶意 PCAP | 2025-01-31 VIP Recovery Data Exfil over SMTP | | PCAP 来源 | malware-traffic-analysis.net | ## 使用的工具 - Wireshark 4.6.4 - Npcap (数据包捕获驱动程序) - Windows PowerShell (`ipconfig /flushdns`) - nslookup (IP/域名解析) - base64decode.org (凭据解码) ## 实验概述 本实验分为两部分。第 1 部分涵盖 Azure Windows VM 上的实时流量捕获和分析,建立正常网络行为的基线。第 2 部分涵盖对包含已确认 Agent Tesla 凭据窃取器感染的恶意 PCAP 的取证分析,从而生成全套 IOC,供实验 2(事件响应)使用。 ## 第 1 部分 — 实时流量捕获和基线建立 ### 接口选择和捕获 Wireshark 安装在 Azure VM 上,通过查找具有实时活动图表的接口来识别活动的以太网接口。启动了 60 秒的捕获以观察环境流量。 **截图:Wireshark 接口选择** ![Wireshark Installed](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/f38da54977183409.png) **截图:实时数据包捕获 — RDP 和 TLS 流量** ![Wireshark Packets](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/485e81365b183418.png) 初始捕获显示了两个主要 IP:VM 的内部地址 `10.1.0.174` 通过端口 3389 上的 TLSv1.2 与 `67.164.219.149` 通信 — 这是用于连接到 VM 的活动 RDP 会话。 ### DNS 过滤器分析 应用 `dns` 过滤器以隔离 DNS 查询流量。初始结果仅显示 `10.1.0.174` 和 `168.63.129.16`(Azure 的内部 DNS 解析器)之间的 Azure 基础设施查询,查询部分中看不到域名。 **截图:DNS 过滤器 — 初始看不到域名** ![DNS No Names](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/8d8a13bcf7183429.png) **故障排除:** 域名不存在是因为 VM 之前已解析过这些域并缓存了结果。Windows 缓存的 DNS 条目不会生成新查询,因此 Wireshark 没有捕获到任何内容。 **解决方案:** 在 PowerShell 中使用 `ipconfig /flushdns` 清除 DNS 解析器缓存,然后访问新站点以生成新查询。 **截图:DNS 缓存清除确认** ![DNS Cache Clear](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3c4f7e65ae183454.png) **截图:缓存清除后可见域名的 DNS 查询** ![DNS After Web Search](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3af00fdaaa183503.png) **关键观察:** `168.63.129.16` 是保留的 Microsoft Azure IP,用作所有 Azure VM 的内部 DNS 解析器。发往此 IP 的流量是预期的背景噪声,不是入侵指标。 ### HTTP 过滤器和流分析 应用了 `http` 过滤器,并识别出来自 Azure VM guest agent 的 GET 请求。使用 Follow > TCP Stream,重建了完整的未加密 HTTP 对话,显示 Azure guest agent 回连到 `168.63.129.16` 以 XML 格式检索 VM 配置数据。 **截图:HTTP GET 请求** ![HTTP GET](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d0438b5b27183513.png) **截图:HTTP 流 — Azure guest agent XML 负载** ![HTTP Payload](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/44fd411bd8183523.png) **关键观察:** 未加密的 HTTP 流量会暴露完整的请求和响应内容,包括标头、参数和响应主体。这种技术 — Follow > TCP Stream — 与第 2 部分中用于从恶意 PCAP 提取凭据的方法相同。 ### TCP 过滤器和 IP 隔离 应用过滤器 `tcp.flags.syn == 1` 以识别 TCP 连接握手。生成到 `github.com` 的浏览器流量以产生外部连接。使用 `nslookup` 解析目标 IP 并使用 `ip.addr ==` 过滤,隔离了到 Akamai CDN (`2.18.67.76`) 的流量,显示端口 443 上的 TLS — 预期的 HTTPS 流量。 **截图:TCP 流量分析 — SYN, SYN-ACK, ACK 序列和 TLS** ![TCP Traffic](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3943859bc6183534.png) **关键观察:** GitHub 通过 Akamai 的 CDN 路由流量,而不是直接解析为 nslookup 返回的 IP。这是一个真实世界的例子,说明为什么基于 IP 的过滤需要 CDN 意识 — 仅 nslookup 结果是不够的。 ### 正常流量基线摘要 | 指标 | 正常值 | 备注 | |---|---|---| | DNS 解析器 | `168.63.129.16` | Azure 内部解析器 — 预期 | | RDP 流量 | `67.164.219.149` 端口 3389 TLSv1.2 | 活动 RDP 会话 | | HTTP | `168.63.129.16` 端口 80 | Azure guest agent 检入 | | HTTPS | 外部 IP 端口 443 TLSv1.3 | 通过 CDN 的浏览器流量 | | 临时端口 | 49152–65535 作为源 | 操作系统分配的正常返回端口 | ## 第 2 部分 — 恶意 PCAP 分析 (Agent Tesla) ### PCAP 概述 | 字段 | 值 | |---|| | 文件 | 2025-01-31-VIP-Recovery-data-exfil-over-SMTP.pcap | | 总数据包 | 426 | | 观察到的协议 | DNS, TCP, HTTP, TLS, SMTP | | 恶意软件家族 | Agent Tesla / VIP Recovery 凭据窃取器 | ### 步骤 1 — 识别受感染主机 使用 `Statistics > Conversations > IPv4` 识别捕获中对话最多的 IP。 `10.1.31.101` 出现在每个对话中,与多个外部 IP 通信 — 确认其为受感染主机。最活跃的外部连接是 `208.91.198.143`,有 210 个数据包和 114KB 传输。 ### 步骤 2 — 追踪窃取通道 通过 `ip.addr == 208.91.198.143` 过滤,显示端口 587 上有大量 SMTP 流量。识别出一个 AUTH 登录数据包,包含 Base64 编码的用户名:`ZGlyZWN0b3JAaWdha3Vpbi5jb20=` 解码后:`director@igakuin.com` 这证实了恶意软件正在向 SMTP 邮件服务器进行身份验证,以通过电子邮件窃取被盗数据。 ### 步骤 3 — 通过 TCP Stream 提取被盗凭据 对 SMTP 数据包使用 Follow > TCP Stream 显示了完整的凭据转储。电子邮件正文采用 Quoted-Printable 格式编码(`=0D=0A` = 换行符)。解码后,电子邮件包含: **电子邮件元数据:** - From: `director@igakuin.com` - To: `director@igakuin.com` (攻击者发送到自己的收件箱) - Subject: `Pc Name: david.miller | / VIP Recovery \` - 受害者主机名: `DESKTOP-WE9H2FM` - 受害者公网 IP: `34.205.4.78` (Ashburn, Virginia, US) **从浏览器保存的密码中窃取的凭据:** | 来源 | 平台 | 用户名 | 密码 | |---|---|---|---| | Google Chrome | Amazon | david.miller@millershomebrew.com | P@ssw0rd1! | | Edge Chromium | LinkedIn | david.miller@millershomebrew.com | P@ssw0rd! | | Edge Chromium | Facebook | 3841584372 | P@ssw0rd! | **攻击者 OPSEC 失误:** 恶意软件未使用 TLS 加密 SMTP 会话,导致完整凭据转储以明文形式暴露。这允许完全了解被窃取的数据。 ### 步骤 4 — 识别辅助 C2 通道 对恶意 PCAP 应用 `dns` 过滤器,显示了对 `api.telegram.org` 的 DNS 查询,解析为 `149.154.167.220`。Telegram 是威胁行为者已知的用于 C2 通信和数据窃取的平台,因为其在网络流量中看似合法,且不太可能被企业防火墙阻止。 **截图:Telegram C2 DNS 查询** ![Telegram C2](https://raw.githubusercontent.com/maurynickelson/Wireshark-Traffic-Analysis/main/screenshots/Telegram-C2-Evidence.png) ### 步骤 5 — 表征窃取模式 到 `208.91.198.143` 的 SMTP 连接集中在短时间内,而不是按固定间隔分布。此模式与单次事件凭据窃取一致 — 恶意软件执行,收集所有可用的浏览器保存密码,一次性发送并终止。这与按固定计时器通信的持久信标植入不同。 ## IOC 摘要 | 类型 | 值 | 背景 | |---|---|---| | 受感染主机 IP | `10.1.31.101` | 受害机器的内部 IP | | 受感染主机名 | `DESKTOP-WE9H2FM` | 受害机器名称 | | 受害用户 | `david.miller` | 凭据转储主体 | | 受害者公网 IP | `34.205.4.78` | Ashburn, Virginia | | 窃取目标 IP | `208.91.198.143` | SMTP 邮件服务器 — 主要窃取目的地 | | 窃取端口 | 587 | SMTP 提交 — 未加密 | | 攻击者收件箱 | `director@igakuin.com` | 接收被盗凭据 | | C2 域名 | `api.telegram.org` | 辅助 C2 通道 | | C2 IP | `149.154.167.220` | Telegram API 服务器 | | 恶意软件 | Agent Tesla / VIP Recovery | 浏览器凭据窃取器 | ## MITRE ATT&CK 映射 | 技术 ID | 名称 | 观察到的行为 | |---|---|---| | T1555.003 | Credentials from Web Browsers | 从 Chrome 和 Edge 保存的密码存储中收集密码 | | T1048.003 | Exfiltration Over Unencrypted Non-C2 Protocol | 通过未加密的 SMTP 端口 587 窃取凭据 | | T1071.001 | Application Layer Protocol: Web Protocols | Telegram API 用作辅助 C2 通道 | | T1027 | Obfuscated Files or Information | Base64 编码用于 SMTP AUTH 凭据 | ## 挑战和观察 **DNS 缓存问题:** 初始 DNS 过滤器在查询数据包中未显示域名。根本原因被确定为 Windows DNS 缓存 — 以前解析的域不会生成新查询。通过运行 `ipconfig /flushdns` 并访问新站点解决。这与 SOC 工作相关:缓存的 DNS 意味着受感染的主机可能直接与恶意 IP 通信而不生成 DNS 查询,需要与连接日志进行交叉参考。 **CDN 路由:** 当按 `nslookup github.com` 返回的 IP 进行过滤时,GitHub 流量未出现。浏览器连接到 Akamai CDN 基础设施。这演示了为什么基于 IP 的 IOC 匹配需要 CDN 意识和威胁情报上下文。 **Quoted-Printable 编码:** 凭据转储电子邮件正文使用 Quoted-Printable 编码(`=0D=0A` 表示换行符,`=` 表示行连续)。识别并在脑海中解码这种编码是在 TCP 流中读取被盗凭据所必需的。 **攻击者 OPSEC 失误:** 恶意软件操作员未为 SMTP 窃取通道配置 TLS,导致完整凭据转储对任何网络观察者可见。这是商品恶意软件中的常见错误,也是网络监控能够捕获端点工具遗漏的信息窃取器的关键原因。 ## 展示的技能 `Network Traffic Analysis` `Wireshark` `Packet Capture` `Protocol Filtering` `IOC Extraction` `Credential Exfiltration Detection` `SMTP Analysis` `DNS Analysis` `TCP Stream Reconstruction` `MITRE ATT&CK Mapping` `Threat Hunting` `Traffic Baselining` `Base64 Decoding` `Incident Triage` ## 实验链 — 连接到实验 2 本实验中提取的 IOC 直接输入到实验 2(事件响应模拟)中。受感染主机 (`10.1.31.101`)、窃取目的地 (`208.91.198.143`)、攻击者收箱 (`director@igakuin.com`) 和 Telegram C2 通道 (`api.telegram.org`) 将作为下一个实验中 IR 场景、遏制步骤和补救建议的基础。
标签:Agent Tesla, Azure, Base64解码, Cloudflare, DAST, DNS分析, IOC提取, IP 地址批量处理, MITRE ATT&CK, PCAP分析, RDP流量, SMTP, TLP协议, Windows VM, Wireshark, 信息窃取程序, 包捕获, 协议过滤, 句柄查看, 基线分析, 恶意软件分析, 数据渗出, 红队防御, 网络安全, 隐私保护