CyberSecAndy/malware-traffic-analysis
GitHub: CyberSecAndy/malware-traffic-analysis
一个系统化的恶意软件网络流量分析实战仓库,通过三大经典恶意软件家族案例教授 PCAP 分析、IOC 提取和检测规则编写。
Stars: 0 | Forks: 0
# 恶意软件流量分析
专业的 PCAP 分析,展示基于网络的威胁检测、恶意软件通信模式以及通过网络取证进行事件响应。本仓库展示了安全分析师如何从网络流量中提取指标并创建检测规则。
## 🎯 项目概述
**恶意软件流量分析** 将教你如何:
- ✅ 使用 Wireshark 分析网络流量
- ✅ 识别恶意软件命令与控制(C2)通信
- ✅ 提取入侵指标(IOC)
- ✅ 理解恶意软件通信协议
- ✅ 创建基于网络的检测规则(Suricata/Snort)
- ✅ 对 PCAP 文件进行取证分析
- ✅ 将网络行为映射到 MITRE ATT&CK
- ✅ 专业地记录分析发现
## 📚 你将学到的内容
### 核心概念(4-6 小时)
- PCAP 文件格式与分析
- 网络协议(TCP/IP、DNS、HTTP/HTTPS、TLS)
- Wireshark 显示过滤器和搜索
- Zeek 网络监控基础
- IDS/IPS 检测规则(Suricata/Snort)
- 恶意软件通信模式
- 流量分析方法论
### 恶意软件案例(18-24 小时)
本项目涵盖 3 个主要恶意软件家族:
#### 1. **Emotet 银行木马**(6-8 小时)
- **类型**:银行木马 / 僵尸网络
- **攻击向量**:钓鱼邮件、恶意文档
- **C2 通信**:HTTP/HTTPS POST 请求
- **能力**:
- 凭据窃取
- 辅助载荷投递
- 横向移动
- 持久化机制
- **指标**:
- C2 服务器 IP 地址
- 域名
- SSL 证书哈希
- 文件哈希
- HTTP User-Agent 模式
- **网络特征**:
- 特定的 HTTP POST 模式
- 异常的证书特征
- 大型二进制文件下载
- 向可疑域名的出站 HTTPS 连接
#### 2. **Mirai IoT 僵尸网络**(6-8 小时)
- **类型**:IoT 僵尸网络 / DDoS
- **攻击向量**:弱默认凭据、漏洞利用
- **C2 通信**:自定义二进制协议
- **能力**:
- 设备扫描与漏洞利用
- DDoS 攻击协调
- 传播到其他设备
- 通过 RAM 实现持久化
- **指标**:
- C2 服务器地址
- 扫描模式(端口探测)
- 特征端口号
- 二进制协议特征
- 地理位置异常
- **网络特征**:
- 来自受感染设备的端口扫描
- SSH 暴力破解尝试
- Telnet 登录尝试
- 特征源端口
- 异常的出站流量量
#### 3. **TrickBot 银行木马**(6-8 小时)
- **类型**:银行木马 / 信息窃取器
- **攻击向量**:恶意软件分发、路过式下载
- **C2 通信**:带证书固定的 HTTPS
- **能力**:
- 银行凭据窃取
- 会话劫持
- 横向移动(Anchor 模块)
- VNC 远程访问
- 插件系统扩展能力
- **指标**:
- C2 服务器地址和域名
- HTTPS 证书特征
- HTTP 信标模式
- 文件哈希
- 注册表持久化位置
- **网络特征**:
- 特定的 HTTPS 信标流量
- 大量数据外泄
- 可疑插件下载
- C2 证书特征
## 🏗️ 仓库结构
```
malware-traffic-analysis/
│
├── README.md (This file)
├── PCAP-ANALYSIS-GUIDE.md (How to analyze PCAPs)
├── IOC-EXTRACTION-GUIDE.md (How to extract IOCs)
├── DETECTION-GUIDE.md (How to create detection rules)
├── LICENSE
├── .gitignore
│
├── case-studies/
│ │
│ ├── 001-emotet-banking-trojan/
│ │ ├── README.md (Case overview)
│ │ ├── PCAP-ANALYSIS.md (Traffic walkthrough)
│ │ ├── IOCs.md (Extracted indicators)
│ │ ├── NETWORK-DIAGRAM.md (Traffic flow diagram)
│ │ ├── SIGNATURES.md (Detection rules)
│ │ ├── TIMELINE.md (Attack timeline)
│ │ ├── sample.pcap (Malware traffic sample)
│ │ └── artifacts/ (Screenshots, exports)
│ │
│ ├── 002-mirai-iot-botnet/
│ │ └── (Same structure)
│ │
│ └── 003-trickbot-banking-trojan/
│ └── (Same structure)
│
├── tools/
│ ├── wireshark-filters.txt (Useful display filters)
│ ├── zeek-scripts/
│ │ ├── malware-detection.zeek
│ │ ├── c2-detection.zeek
│ │ └── ioc-matcher.zeek
│ └── suricata-rules/
│ ├── emotet-rules.rules
│ ├── mirai-rules.rules
│ └── trickbot-rules.rules
│
├── resources/
│ ├── network-protocols.md (TCP/IP, DNS, HTTP, TLS)
│ ├── malware-families.md (Reference of families)
│ ├── c2-patterns.md (Command & Control patterns)
│ ├── ioc-formats.md (IOC types and formats)
│ ├── protocol-analysis.md (Deep protocol analysis)
│ └── threat-intelligence.md (TI integration)
│
└── tutorials/
├── wireshark-basics.md
├── zeek-basics.md
├── suricata-rules.md
└── pcap-forensics.md
```
## 🚀 快速开始(20 分钟)
### 1. 阅读案例概述
从 **案例研究 1:Emotet** 开始:
- `case-studies/001-emotet-banking-trojan/README.md`
- 了解 Emotet 是什么
- 学习攻击向量
- 了解影响
### 2. 查看网络图
- `case-studies/001-emotet-banking-trojan/NETWORK-DIAGRAM.md`
- 可视化攻击流程
- 理解网络阶段
- 了解 C2 通信
### 3. 跟随 PCAP 分析
- `case-studies/001-emotet-banking-trojan/PCAP-ANALYSIS.md`
- 分步演练
- 了解如何使用 Wireshark
- 学习识别恶意软件流量
### 4. 提取 IOC
- `case-studies/001-emotet-banking-trojan/IOCs.md`
- 了解发现了哪些指标
- 理解 IOC 格式
- 学习提取技术
### 5. 查看检测规则
- `case-studies/001-emotet-banking-trojan/SIGNATURES.md`
- 查看 Suricata/Snort 规则
- 理解特征匹配
- 学习 IDS 检测
## 📖 学习路径
### 初学者(第一周)
1. 阅读 PCAP-ANALYSIS-GUIDE.md(方法论)
2. 安装 Wireshark(如果尚未安装)
3. 学习案例 1:Emotet(最著名的恶意软件)
4. 练习:打开示例 PCAP 并按照分析步骤操作
5. 学习:从流量中提取 IOC
### 中级(第二周)
1. 学习案例 2:Mirai(IoT 僵尸网络模式)
2. 学习:不同的 C2 协议
3. 练习:分析网络扫描行为
4. 创建:用于检测的 Zeek 脚本
5. 验证:针对示例 PCAP 的规则
### 高级(第三周及以后)
1. 学习案例 3:TrickBot(高级规避)
2. 学习:证书分析和 SSL/TLS
3. 创建:自定义检测规则
4. 练习:与 SIEM 集成
5. 构建:完整的检测流水线
## 🎯 核心概念
### C2 通信模式
- **基于 HTTP**:明文 POST 请求,域名频繁更换
- **基于 HTTPS**:加密、证书固定、域名前置
- **自定义协议**:二进制协议、特定端口号
- **基于 DNS**:域名生成算法(DGA)、DNS 隧道
- **基于 ICMP**:使用 ping 的隐蔽信道
### 从网络提取 IOC
- **IP 地址**:C2 通信的源/目的地址
- **域名**:C2 基础设施、托管提供商
- **文件哈希**:通过网络传输的恶意软件二进制文件
- **HTTP 头**:User-Agent 字符串、特定头部
- **SSL 证书**:指纹、颁发者信息
- **端口**:异常端口号、服务滥用
- **载荷**:恶意软件特征和模式
### 检测方法
- **基于特征**:已知的恶意软件模式
- **基于异常**:异常的流量特征
- **基于行为**:已知的 C2 行为模式
- **威胁情报**:已知的恶意 IP/域名
- **协议分析**:畸形或可疑协议
## 📊 案例研究统计
| 案例研究 | 类型 | C2 协议 | 端口 | 难度 |
|-----------|------|-----------|-------|-----------|
| **001: Emotet** | 银行木马 | HTTP/HTTPS | 80, 443, 自定义 | 中等 |
| **002: Mirai** | IoT 僵尸网络 | 自定义二进制 | 23, 22, 自定义 | 中等 |
| **003: TrickBot** | 银行木马 | HTTPS(固定) | 443, 自定义 | 困难 |
## 🛠️ 工具与技术
### PCAP 分析
- **Wireshark** - https://www.wireshark.org/ - 交互式数据包分析
- **Zeek** - https://zeek.org/ - 网络安全监控
- **tcpdump** - https://www.tcpdump.org/ - 命令行数据包捕获
- **NetworkMiner** - 免费网络取证工具
- **tcpflow** - TCP 流重建
### 检测工具
- **Suricata** - https://suricata.io/ - 开源 IDS/IPS
- **Snort** - https://www.snort.org/ - Cisco IDS/IPS
- **YARA** - https://yara.readthedocs.io/ - 恶意软件特征
- **Zeek Scripts** - 自定义网络监控
### 分析工具
- **VirusTotal** - https://www.virustotal.com/ - 文件/URL 分析
- **Hybrid Analysis** - https://www.hybrid-analysis.com/ - 恶意软件沙箱
- **ANY.RUN** - 交互式恶意软件分析
- **Shodan** - https://www.shodan.io/ - 网络侦察
- **URLhaus** - 恶意软件托管追踪
- **SSL Labs** - SSL/TLS 分析
### 威胁情报
- **AlienVault OTX** - 开放威胁情报
- **Abuse.ch** - 恶意软件/钓鱼情报源
- **Cisco Talos** - 威胁情报
- **Recorded Future** - 威胁情报
- **MISP** - 威胁情报平台
## 📚 资源与参考
### Wireshark 学习
- **官方指南** - https://www.wireshark.org/docs/
- **显示过滤器** - https://www.wireshark.org/docs/man-pages/wireshark-filter.html
- **示例捕获** - https://wiki.wireshark.org/SampleCaptures
- **协议参考** - 内置协议解析器
### Zeek 学习
- **官方文档** - https://docs.zeek.org/
- **脚本仓库** - https://github.com/zeek/zeek-scripts
- **社区脚本** - GitHub zeek-community
- **培训视频** - 官方 Zeek 教程
### 恶意软件流量分析
- **Malware Traffic Analysis** - https://www.malware-traffic-analysis.net/
- **PCAP 样本** - 真实恶意软件流量(教育用途)
- **案例研究** - 由 Richard Bejtlich 撰写
- **分析技术** - 记录最佳实践
### 检测工程
- **Suricata 规则** - https://docs.suricata.io/en/suricata-7.0.0/rules/index.html
- **Snort 规则** - https://www.snort.org/
- **ET Open 规则** - Emerging Threats 社区规则
- **Sigma 规则** - https://github.com/SigmaHQ/sigma
## ❓ 常见问题
### 问:从哪里获取示例 PCAP?
**答**:
- **Malware Traffic Analysis** - https://www.malware-traffic-analysis.net/
- **PCAP 样本** - 教育用途,真实恶意软件流量
- **家庭 SOC 实验室** - 使用攻击场景生成自己的流量
- **Wireshark 样本** - https://wiki.wireshark.org/SampleCaptures
### 问:如何打开 PCAP 文件?
**答**:
1. 安装 Wireshark
2. 打开 Wireshark
3. 文件 → 打开
4. 选择 PCAP 文件
5. 数据包出现在主窗口中
6. 过滤并分析
### 问:Zeek 和 Wireshark 有什么区别?
**答**:
- **Wireshark** = 交互式、逐包分析
- **Zeek** = 自动化网络监控,生成日志
- 使用 **Wireshark** 手动分析可疑流量
- 使用 **Zeek** 持续监控网络
### 问:如何创建 Suricata 规则?
**答**:
1. 阅读 DETECTION-GUIDE.md
2. 研究 Signatures.md 中的现有规则
3. 理解规则语法
4. 为你的指标创建规则
5. 使用 suricata 命令针对 PCAP 进行测试
6. 根据结果进行优化
### 问:什么是好的 IOC 提取工作流程?
**答**:
1. **在 Wireshark 中打开 PCAP**
2. **过滤**可疑流量(按 IP、域名、端口过滤)
3. **导出**流(文件 → 导出对象)
4. **提取** IOC:
- IP:源/目的地址
- 域名:DNS 查询、HTTP Host 头
- 文件:下载的二进制文件
- 哈希:计算 MD5/SHA256
5. **格式化为**标准 IOC 格式
6. **通过**威胁情报进行验证
## 🎓 高级主题
### 协议分析
- **SSL/TLS**:证书分析、固定检测、握手模式
- **DNS**:域名生成算法(DGA)、可疑查询
- **HTTP**:User-Agent 模式、头部异常、正文分析
- **QUIC**:新兴加密协议分析
- **加密流量**:无需解密的行为分析
### 恶意软件通信
- **僵尸网络 C2**:命令投递、状态报告、载荷更新
- **信标**:周期性签到、时间分析
- **数据外泄**:大量数据传输、加密使用
- **辅助载荷**:分阶段攻击、模块化恶意软件
- **C2 规避**:域名前置、代理链、流量伪装
### 取证分析
- **数据包雕刻**:从 PCAP 中提取文件
- **流重建**:TCP 流分析
- **时间线分析**:事件排序
- **关联**:链接相关事件
- **证据保全**:维护监管链
## 📈 作品集影响
本项目展示:
- 🔴 **网络取证** - PCAP 分析专业知识
- 🔴 **恶意软件分析** - 理解 C2 通信
- 🔴 **检测工程** - 基于网络的检测规则
- 🔴 **事件响应** - 从网络中提取 IOC
- 🔴 **威胁情报** - 恶意软件家族知识
## 📞 支持与故障排除
### PCAP 无法打开
- 验证文件格式(应为 .pcap 或 .pcapng)
- 检查是否损坏(文件大小过小)
- 尝试先用 tcpdump 打开
- 验证 Wireshark 版本
### 找不到恶意软件流量
- 使用显示过滤器缩小范围
- 首先查找 DNS 查询
- 跟踪 TCP 流
- 检查可疑端口
- 查看 HTTP Host 头
### 检测规则不匹配
- 验证 PCAP 已加载
- 使用 suricata --validate 测试规则语法
- 检查载荷编码(十六进制 vs 字符串)
- 验证过滤条件
- 在已知恶意软件样本上测试
## 📄 许可证
本项目基于 **MIT 许可证** - 详见 LICENSE 文件。
## 🚀 下一步
1. **阅读 PCAP-ANALYSIS-GUIDE.md** - 学习分析方法论
2. **下载示例 PCAP** - 使用官方 malware-traffic-analysis.net
3. **安装 Wireshark** - 如果尚未安装
4. **从案例研究 1 开始** - Emotet(记录最完善的)
5. **练习提取** - 从示例 PCAP 中提取 IOC
6. **创建检测规则** - 编写 Suricata 规则
## 📊 项目统计
- **案例研究总数**:3 个主要恶意软件家族
- **PCAP 样本**:用于分析的真实流量
- **检测规则**:40+ Suricata/Snort 规则
- **学习时间**:18-24 小时完全掌握
- **难度级别**:中级到高级
- **前置条件**:基础网络知识、熟悉 Wireshark
**状态**:🟢 生产就绪
**最后更新**:2026-05-20
**维护者**:CyberSecAndy
**掌握网络取证!🚀**
从 [PCAP-ANALYSIS-GUIDE.md](PCAP-ANALYSIS-GUIDE.md) 开始 →
标签:AMSI绕过, DNS 反向解析, DNS 解析, HTTP/HTTPS抓包, HTTP工具, IP 地址批量处理, Metaprompt, PCAP分析, PE 加载器, 域名收集, 威胁检测, 子域名变形, 安全运营, 态势感知, 恶意代码分析, 恶意软件流量分析, 恶意软件通信模式, 扫描框架, 指标提取, 插件系统, 攻击链分析, 数字取证, 无线安全, 检测规则, 网络协议分析, 网络安全, 网络安全审计, 网络流量分析, 网络行为分析, 网络资产发现, 自动化脚本, 配置审计, 配置文件, 隐私保护