ateebahmedkhan/network-traffic-analysis

GitHub: ateebahmedkhan/network-traffic-analysis

使用 Wireshark 对真实恶意软件 PCAP 进行网络流量分析,完整记录了 PowerShell C2 信标的识别、混淆 payload 的安全解码及应急响应流程的 SOC 分析师实战项目。

Stars: 0 | Forks: 0

# 网络流量分析 — PowerShell C2 恶意软件调查 这是一个实战性的 SOC 分析师项目。在此项目中,我使用 Wireshark 分析了真实的恶意软件感染 PCAP,提取并安全解码了混淆的 PowerShell payload,并识别出了一个功能完备的命令控制 (C2) 信标。本项目作为我的 SOC 分析师作品集的一部分而构建。 ## 为什么做这个项目 网络流量分析是 SOC 的核心技能 —— 能够读取数据包捕获、识别可疑流量、提取文件以及理解攻击者的技术。我希望使用真实的恶意软件样本(而非人工合成的),并走完完整的分析师工作流:发现异常、提取 payload、在不执行的情况下安全解码,并像真实的应急响应报告那样记录调查结果。 ## 配置 - **工具:** Wireshark - **样本:** 真实恶意软件 PCAP — “从虚假软件网站下载”练习 - **来源:** [malware-traffic-analysis.net](https://malware-traffic-analysis.net/training-exercises.html) - **数据集大小:** 39,427 个数据包 ## 我所做的工作 1. 将包含 39,427 个数据包的 PCAP 加载到 Wireshark 中 2. 通过 DHCP/DNS 流量识别受害主机 (10.1.17.215 / DESKTOP-L8C5GSJ) 3. 过滤 HTTP 流量并发现了从外部 IP 下载的两个 `.ps1` 文件 4. 隔离了进出可疑 IP (5.252.153.241) 的所有流量 — 占总流量的 23% 5. 使用 Wireshark 的 HTTP 对象导出功能提取了这两个 PowerShell 文件 6. 安全地解码了两层混淆(未执行脚本) 7. 利用主机的硬盘序列号识别出针对每个受害者的 C2 信标 8. 调查了第二个 IP 并确认其为合法的 Microsoft CDN 流量(误报) ## 关键发现 | 发现 | 细节 | 严重程度 | |---------|--------|----------| | C2 服务器 | 5.252.153.241 — 9,076 个数据包(占捕获量的 23%) | 严重 | | 恶意 Payload | 29842.ps1, pas.ps1 — 混淆的 PowerShell dropper | 严重 | | C2 机制 | 使用硬盘序列号的受害者专属信标 URL,每 5 秒轮询一次 | 严重 | | 代码执行 | 解码后的脚本对 C2 响应使用 `Invoke-Expression` — 完全 RCE | 严重 | | 误报 | 199.232.214.172 — 合法的 Microsoft/Akamai Defender 更新流量 | 无 | ## 恶意软件工作流 1. 受害者从虚假软件网站下载文件 2. Dropper 脚本 (`29842.ps1`) 执行 — 使用字符替换混淆来隐藏 `FromBase64String` 3. Base64 解码并运行第二阶段 payload 4. 第二阶段读取受害者 C: 盘的序列号作为唯一 ID 5. 每 5 秒向 `http://5.252.153.241/` 发送信标请求 6. 来自 C2 的任何响应都会通过 `Invoke-Expression` 立即执行 这使得攻击者能够获得针对每个受害者的持久远程代码执行能力。 ## 截图 | 步骤 | 截图 | |------|-----------| | HTTP 流量概览 — 发现 PowerShell 文件下载 | ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3364a8972a051715.png) | | C2 服务器流量 (5.252.153.241) — 占捕获量的 23% | ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e315e39755051721.png) | | 通过 HTTP 对象导出提取的 .ps1 payload | ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a91f8bbca0051727.png) | | 误报 — 合法的 Microsoft CDN 流量 | ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6adc243836051733.png) | ## 我学到了什么 - 如何在 Wireshark 中根据 IP 和协议过滤并隔离可疑流量 - 如何使用导出对象功能提取通过 HTTP 传输的文件 - 攻击者如何使用字符替换混淆来隐藏诸如 `FromBase64String` 的函数名 - 如何在不执行的情况下安全解码混淆的 PowerShell payload - 使用硬件标识符(硬盘序列号)的受害者专属 C2 通道是如何工作的 - 对远程响应使用 `Invoke-Expression` 是如何让攻击者获得完全的远程代码执行能力的 - 如何通过关联 IP、内容类型和流量上下文(而不仅仅是 URL 关键字)来区分真实威胁和误报 ## 完整应急响应报告 包含 IOC、解码后的 payload 和 SOC 响应步骤的完整分析 → [`findings/incident-report.md`](findings/incident-report.md) ## 仓库结构 ``` network-traffic-analysis/ ├── findings/ │ └── incident-report.md # Full investigation report └── screenshots/ ├── 01-http-overview.png # HTTP traffic overview ├── 02-c2-server-traffic.png # C2 server traffic isolated ├── 03-ps1-files-exported.png # Extracted PowerShell payloads └── 04-cdn-false-positive.png # False positive investigation ``` ## 使用的工具 - [Wireshark](https://www.wireshark.org/) — 数据包捕获分析 - Python 3 — 安全的 base64 解码(只读) - 样本来源:[malware-traffic-analysis.net](https://malware-traffic-analysis.net/training-exercises.html)
标签:AMSI绕过, DAST, OpenCanary, Wireshark, 句柄查看, 威胁检测, 安全运营(SOC), 恶意软件分析, 网络安全, 隐私保护