duke421/trickbot-pcap-threat-investigation
GitHub: duke421/trickbot-pcap-threat-investigation
完整的 TrickBot 恶意软件 PCAP 网络流量取证案例,涵盖从检测到报告的 SOC 调查全流程。
Stars: 0 | Forks: 0
# SOC 事件调查 — 通过 PCAP 网络流量分析 TrickBot 恶意软件





## 项目概述
本项目记录了对可疑网络流量捕获(PCAP 文件)进行的完整端到端 SOC 事件调查。该调查模拟了安全运营中心 (SOC) 分析师针对内部 Windows 工作站异常出站网络行为警报进行响应的工作流程。
利用 Wireshark 进行数据包级分析,调查重构了完整的攻击链 —— 从通过 HTTP 进行初始恶意软件投递、文件签名验证,到确认与外部攻击者控制服务器的命令与控制 (C2) 通信。
恶意文件 (`ooiwy.pdf`) 被识别为伪装的 Windows DLL 载荷,属于 **TrickBot** 木马家族。所有威胁指标 (IOC) 均已被提取、记录,并包含在本仓库中。
本仓库的结构反映了真实的 SOC 案例文档标准,包括调查时间线、提取的 IOC、PCAP 证据、分析查询以及完整的书面事件报告。
## 检测背景
本调查模拟了安全运营中心 (SOC) 分析师如何调查企业监控系统中检测到的可疑网络活动。
本项目中分析的活动可能由以下警报触发:
- 来自外部 IP 的可疑 HTTP 下载
- 来自内部工作站的异常出站网络流量
- 可能的命令与控制 (C2) 通信模式
- 具有可疑特征的文件下载(非浏览器 User-Agent 字符串)
在真实的 SOC 环境中,这些指标可能通过以下方式检测到:
- **网络入侵检测系统 (NIDS)** 标记到与已知恶意 IP 的出站连接
- **端点检测与响应 (EDR) 警报** 指出异常进程活动或 DLL 执行
- **安全信息和事件管理 (SIEM) 规则** 触发于来自工作站的基于 `curl` 的下载或异常的出站 POST 请求
- **网络流量异常检测** 识别出内部主机通过标准 HTTP 与先前未见的外部 IP 进行通信
## 调查目标
本次调查旨在:
- 识别网络内的受影响主机(主机名、IP、MAC 地址和用户账户)
- 确定恶意文件是如何投递的以及通过何种机制
- 提取威胁指标 (IOC) 用于威胁情报和检测丰富
- 分析潜在的命令与控制 (C2) 通信以了解攻击者意图
- 记录在 PCAP 中观察到的攻击者行为并将其映射到 MITRE ATT&CK 框架
## 使用工具
| 工具 | 用途 |
|---|---|
| **Wireshark** | 主要 PCAP 分析 — 显示过滤、数据包检查、流重建 |
| **GHex** | 二进制十六进制编辑器 — 提取载荷的文件签名验证 |
| **VirusTotal** | 威胁情报 — 文件哈希信誉检查和恶意软件家族识别 |
| **TCP 流重建** | Wireshark 功能,用于重组和读取 HTTP 会话内容 |
| **HTTP 对象提取** | Wireshark 功能,用于导出捕获中通过 HTTP 传输的文件 |
## 调查工作流
### 步骤 1 — 识别可疑 HTTP 流量
调查首先在 Wireshark 中应用 `http` 显示过滤器,以隔离 PCAP 中的所有 HTTP 层通信。
立即识别到一个源自内部主机 `10.8.19.101` 发往外部 IP `185.244.41.29` 的 `GET` 请求,请求名为 `ooiwy.pdf` 的文件。仔细检查 HTTP 请求头发现 `User-Agent` 字符串为 `curl/7.55.1` —— 这是一个重要的危险信号,因为工作站的标准用户活动会呈现浏览器的 User-Agent。使用 `curl` 强烈表明下载是由脚本、宏或投递组件触发的,而不是合法的用户操作。

*图 1 — 来自内部主机 `10.8.19.101` 的 HTTP GET 请求,向外部投递服务器 `185.244.41.29` 请求 `ooiwy.pdf`,带有 `curl/7.55.1` User-Agent 字符串*
### 步骤 2 — 从 PCAP 提取恶意文件
确认可疑文件传输后,使用 Wireshark 的 **导出 HTTP 对象** 功能 (`File > Export Objects > HTTP`) 提取 PCAP 会话中通过 HTTP 传输的所有文件。
文件 `ooiwy.pdf` 列在导出的对象中,并已保存到本地以供进一步取证检查。直接从 PCAP 提取文件允许进行哈希生成和签名分析,而无需依赖可能已受损的端点。

*图 2 — Wireshark HTTP 对象导出列表,显示从投递服务器传输的 `ooiwy.pdf`*
### 步骤 3 — 发现可执行文件签名
提取的文件 `ooiwy.pdf` 在 **GHex** 中打开以检查其二进制头。尽管带有 PDF 扩展名,文件的前两个字节显示:
```
4D 5A
```
这是 **MZ 魔数** — Windows 可移植可执行 (PE) 文件签名,存在于所有 Windows 可执行文件中,包括 `.exe`、`.dll` 和 `.sys` 文件。MZ 首字母指的是 MS-DOS 可执行格式的开发者 Mark Zbikowski。在呈现为 PDF 的文件中存在此头部是**扩展名伪装**的确凿证据。
进一步分析确认真实文件格式为 `ooiwdy.dll` — 一个 Windows 动态链接库。DLL 文件常被恶意软件用作载荷,因为它们不直接执行,而是由宿主进程加载,这使得检测更加困难。

*图 3 — GHex 二进制检查确认 `ooiwy.pdf` 文件中的 `4D 5A` (MZ) PE 头,揭示其为伪装的 Windows DLL*
### 步骤 4 — 主机识别
为了完整记录受影响的系统,应用了一系列 Wireshark 显示过滤器从 PCAP 中提取所有主机识别信息:
| 应用的过滤器 | 恢复的信息 |
|---|---|
| `dhcp` | 主机名:`DESKTOP-M1TFHB6`(来自 DHCP REQUEST 数据包) |
| `smb` | 通过 SMB 会话协商和 NetBIOS 名称服务确认的主机名 |
| `http` | 确认的内部 IP:`10.8.19.101` |
| `arp` | MAC 地址:`00-08-02-1C-47-AE`(`10.8.19.101` 的 ARP 回复) |
| `ntlmssp` | 用户账户:`monica.steele`(NTLM 身份验证交换) |
ARP 过滤器对于 MAC 地址恢复特别有效 —— 一旦知道了 IP 地址,PCAP 中的 ARP 广播回复直接将 `10.8.19.101` 映射到其物理硬件地址。NTLMSSP 过滤器隔离了 Windows 身份验证数据包,这些数据包在网络身份验证交换期间以明文传输用户名 `monica.steele`。

*图 4 — 在 Wireshark 中应用 ARP 过滤器,将 IP `10.8.19.101` 映射到 MAC 地址 `00-08-02-1C-47-AE`,从而阳性识别受感染的物理网络接口*
### 步骤 5 — 命令与控制通信分析
返回流量日志,识别到来自内部主机 (`10.8.19.101`) 发往第二个不同的外部 IP (`103.148.41.195`) 的 `POST` 请求。这是与原始投递服务器分离的 IP,这与 TrickBot 的基础设施模型一致,即载荷托管和 C2 操作是分开的。
跟踪 POST 请求并确认响应内容证实正在传输结构化的主机数据 —— 这与 TrickBot 的初始签到行为一致,即恶意软件信标到 C2 服务器并传输系统侦察数据,包括主机详细信息、用户信息和网络配置。

*图 5 — 从 `10.8.19.101` 到 C2 服务器 `103.148.41.195` 的 HTTP POST 请求,确认恶意软件与攻击者基础设施的活跃通信*
### 步骤 6 — TCP 流分析
使用 Wireshark 的 **跟踪 TCP 流** 功能重建了 C2 POST 请求的完整 TCP 流。流内容确认恶意软件已在 POST 正文中将受害者系统数据传输到攻击者的 C2 服务器。
此流重建提供了被渗透数据的最清晰视图,并确认在捕获 PCAP 时,恶意软件已成功与攻击者控制的基础设施建立双向通信通道。

*图 6 — C2 POST 请求的 TCP 流重建,揭示从受感染主机传输到 `103.148.41.195` 的受害者系统数据*
## 关键发现
| 发现 | 详情 |
|---|---|
| **受感染主机** | `DESKTOP-M1TFHB6` — IP `10.8.19.101` — MAC `00-08-02-1C-47-AE` |
| **受损账户** | `monica.steele` |
| **投递的恶意文件** | `ooiwy.pdf`(真实文件:`ooiwdy.dll`) |
| **投递服务器** | `185.244.41.29` — 通过 HTTP GET 提供载荷 |
| **投递机制** | `curl/7.55.1` — 脚本化下载,非用户发起的浏览 |
| **文件类型伪装** | 伪装为 `.pdf` 扩展名的 PE 可执行文件(MZ 头:`4D 5A`) |
| **恶意软件家族** | TrickBot 木马 — 通过 VirusTotal 多引擎扫描确认 |
| **C2 服务器** | `103.148.41.195` — 接收带有受害者系统数据的 POST 信标 |
| **C2 协议** | 端口 80 上的 HTTP |
| **渗透数据** | 主机侦察数据(系统信息、用户详情) — 通过 TCP 流确认 |
## 威胁指标 (IOC)
本次调查提取的所有 IOC 均存储在 `iocs/` 目录中:
- **`iocs/IOC.txt`** — 所有指标(IP、哈希、文件名、用户代理)的纯文本列表
- **`iocs/IOC.csv`** — 结构化的 CSV 格式,适合导入 SIEM 平台、威胁情报工具或票务系统
### IOC 汇总
| 类型 | 值 |
|---|---|
| 内部主机 IP | `10.8.19.101` |
| 主机名 | `DESKTOP-M1TFHB6` |
| MAC 地址 | `00-08-02-1C-47-AE` |
| 用户账户 | `monica.steele` |
| 恶意 IP — 投递 | `185.244.41.29` |
| 恶意 IP — C2 | `103.148.41.195` |
| 恶意文件名 | `ooiwy.pdf` |
| 真实文件名 | `ooiwdy.dll` |
| 文件类型 | Windows DLL (PE) |
| 文件签名 | `4D 5A` (MZ 头) |
| MD5 哈希 | `4e4ae70b6346eae111e31716dc76bc23` |
| SHA-1 哈希 | `1e7b9af799048e4112d2468323c5c147e20558f9` |
| SHA-256 哈希 | `f25a780095730701efac67e9d5b84bc289afea56d96d8aff8a44af69ae606404` |
| 恶意软件家族 | TrickBot |
| 可疑 User-Agent | `curl/7.55.1` |
## PCAP 证据文件
本次调查中使用的原始网络捕获包含在仓库中,可以直接在 Wireshark 中打开,以独立复现此处记录的每一个发现。
| 字段 | 详情 |
|---|---|
| **文件** | `evidence/trickbot-infection-traffic.pcap` |
| **大小** | 15 MB |
| **格式** | Wireshark PCAP — 微秒时间戳,以太网捕获 |
| **所需工具** [Wireshark](https://www.wireshark.org/) (免费) |
| **用途** | 复现完整调查 — 应用 `queries/wireshark-filters.md` 中的过滤器逐步完成分析 |
## 仓库结构
```
SOC-Incident-TrickBot/
│
├── case-study/ # Background context and scenario description for the investigation
│
├── screenshots/ # Annotated Wireshark screenshots taken during the investigation
│ ├── 01-malware-download-request.png
│ ├── 02-http-object-extraction.png
│ ├── 03-executable-signature.png
│ ├── 04-host-identification-mac.png
│ ├── 05-command-control-communication.png
│ └── 06-tcp-stream-analysis.png
│
├── evidence/ # Raw PCAP capture file and extracted artefacts from the investigation
│ └── trickbot-infection-traffic.pcap # ⚠️ Original network capture — open in Wireshark to reproduce findings
│
├── iocs/ # Structured indicator of compromise files
│ ├── IOC.txt # Plaintext IOC list
│ └── IOC.csv # CSV-formatted IOC list for SIEM/tool import
│
├── timeline/ # Reconstructed investigation timeline from PCAP timestamps
│
├── queries/ # Wireshark display filters and detection queries used in the investigation
│
├── report/ # Full written SOC incident investigation report (Markdown)
│ └── SOC-Incident-Investigation-Report-TrickBot.md
│
└── README.md # This file
```
## 展示技能
本次调查展示了以下网络安全领域的实践动手能力:
| 技能领域 | 在本次调查中的应用 |
|---|---|
| **网络流量分析** | 应用 Wireshark 显示过滤器(HTTP、DHCP、ARP、SMB、NTLMSSP)系统地查询 PCAP 数据 |
| **恶意软件调查** | 通过文件签名分析、扩展名伪装检测和 VirusTotal 威胁情报识别 TrickBot |
| **SOC 事件响应方法论** | 遵循结构化工作流 — 检测、分类、主机识别、证据收集、IOC 提取、遏制 |
| **威胁检测** | 识别异常的 User-Agent 字符串、可疑的出站连接和 C2 POST 信标 |
| **IOC 提取与文档记录** | 提取并格式化 IP、文件哈希、文件名和主机数据以供操作使用 |
| **TCP 流重建** | 重组应用层会话以确认数据渗透内容 |
| **MITRE ATT&CK 框架映射** | 将观察到的攻击者行为映射到相关战术和技术(T1036、T1071.001、T1041、T1105 等) |
| **数字取证** | 使用二进制十六进制分析 (GHex) 独立于操作系统文件扩展名处理验证文件类型 |
## 免责声明
本次调查完全出于**教育和网络安全研究目的**。本项目中分析的 PCAP 文件是作为学术课程作业的一部分提供的,包含受控环境中的预先捕获的网络流量。
作为本项目的一部分,没有系统被入侵,没有部署恶意软件,也没有执行任何未经授权的访问。所有分析均在隔离的安全环境中进行。此处记录的恶意 IP 地址和文件哈希仅作为威胁指标发布,以支持威胁检测和意识提升。
*调查由 **Gbemisola Faith Akinlabi** 执行 | SOC 分析师*
*工具:Wireshark · VirusTotal · GHex*
*框架:MITRE ATT&CK*
标签:C2通信, Cloudflare, Conpot, DAST, DNS 反向解析, DNS通配符暴力破解, HTTP工具, IOC提取, IP 地址批量处理, MITRE ATT&CK, PB级数据处理, PCAP分析, TrickBot, Windows安全, Wireshark, 句柄查看, 威胁情报, 安全运维, 并发处理, 库, 应急响应, 开发者工具, 恶意软件分析, 数字取证, 案例研究, 渗透测试后遗症, 网络协议分析, 网络安全, 网络安全审计, 自动化脚本, 隐私保护, 高严重性漏洞