agugliotta/pcap-lab
GitHub: agugliotta/pcap-lab
一款基于种子机制的确定性 HTTP 流量生成器,用于网络安全实验室构建可复现的攻击-检测-防御闭环及 WAF/IDS 规则验证。
Stars: 0 | Forks: 0
**PCAP Lab Generator** 是一款专用工具,旨在弥合手动构造数据包与真实浏览器行为之间的差距。它能够生成**确定性 HTTP 流量**,将真实的用户行为与复杂的 Web 攻击相融合,并输出业界标准的 **PCAP 文件**,可直接用于深度包检测(DPI)和安全分析。
与传统的随机流量生成器不同,该工具采用基于种子(seed)的方法来确保 **100% 的可重现性**。这使其成为 **网络安全教育者** 构建实验环境,以及 **安全工程师** 验证 **WAF(Web 应用防火墙)** 规则、IDS/IPS 签名或 ModSecurity CRS 配置的理想伙伴。
## 🛡️ 核心功能
- 🎯 **确定性流量:** 使用 `STUDENT_ID` 种子来保证每次运行生成完全相同的攻击序列和 payload——非常适合用于一致的评分和基准测试。
- 🧱 **真实模拟:** 模拟多种 User-Agents、多样化的 HTTP 标头以及正常的导航模式,将恶意特征隐藏在正常流量噪声中。
- 🧪 **多向量攻击库:** 内置了针对 **SQL 注入 (SQLi)**、**XSS**、**RCE**、**LFI**、**IDOR**、**CSRF** 和 **命令注入** 的模块。
- ✅ **自动化真实标签:** 生成详细的 `answer_key.json`,将每次攻击映射到其精确的时间戳和 payload,便于自动化验证。
- 📦 **现代化 CLI:** 基于 `Click` 构建的统一 Python 接口,可实现无缝的生成、重放和测试工作流。
## 🛠️ 安装
```
# Clone 仓库
git clone https://github.com/agugliotta/pcap-lab.git
cd pcap-lab
# 设置 virtual environment
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
```
## ⏱️ 快速开始
为名为 `agustin` 的学生在 loopback 接口上生成唯一的流量记录:
```
# 生成 deterministic traffic
sudo .venv/bin/python main.py generate agustin lo
```
生成的产物将保存在 `output/agustin/` 目录下:
- `traffic.pcap`:完整的原始网络抓包文件。
- `answer_key.json`:用于自动化评分或验证的“真实标签”元数据。
## 🎓 教育工作流
该工具促进了一个完整的 **攻击-检测-防御** 闭环:
1. **攻击(生成):** 运行生成器,创建包含恶意流量和正常流量混合的记录。
2. **分析(检测):** 学生使用 **Wireshark** 或 **TShark**,根据 `answer_key.json` 识别攻击特征。
3. **防御(缓解):** 编写并应用防御规则(例如 **ModSecurity CRS**)以拦截已识别的攻击向量。
4. **验证(重放):** 使用 `replay` 命令,将完全相同的流量发送至受保护的目标,以验证缓解措施是否生效。
## 📖 进阶用法
### 自定义攻击组合
将您的实验环境聚焦于特定漏洞,或控制“噪声”比例:
```
# 仅关注 Remote Code Execution 和 SQLi
sudo .venv/bin/python main.py generate test lo --attacks rce,sqli
# 设置精确的 attack volume(例如,20% 恶意流量)
sudo .venv/bin/python main.py generate test lo --requests 100 --attack-ratio 0.2
```
### 灵活的流量重放
将捕获的流量重放至外部的 WAF 或 Docker 容器:
```
# 动态重写目的 IP 和 Port
sudo .venv/bin/python main.py replay lo output/agustin/traffic.pcap --target-ip 172.17.0.2 --target-port 80
```
## 🧪 测试
我们使用 `pytest` 来确保一切功能正常运行:
```
.venv/bin/python main.py test
```
## 🛡️ WAF 验证 (ModSecurity)
使用确定性的 payload 来验证您的规则。以下是一些用于检测本实验所生成攻击的典型规则:
### SQL 注入
```
SecRule ARGS "@detectSQLi" \
"id:1001,phase:2,t:none,t:urlDecodeUni,block,msg:'SQL Injection Detected'"
```
### 远程代码执行 (RCE) / 命令注入
```
SecRule ARGS "@pm system exec passthru shell_exec" \
"id:1002,phase:2,t:none,t:lowercase,block,msg:'Potential RCE detected'"
SecRule ARGS "@rx [;&|`\$]" \
"id:1003,phase:2,t:none,block,msg:'Command Injection Characters Detected'"
```
### 本地文件包含 (LFI)
```
SecRule ARGS "@rx \.\./\.\./" \
"id:1004,phase:2,t:none,t:urlDecodeUni,block,msg:'Path Traversal Attempt'"
```
为下一代网络安全专家而生
标签:CISA项目, GitHub项目, IDS测试, PCAP, Python, WAF测试, 安全测试, 安全规则引擎, 攻击性安全, 无后门, 流量生成, 网络安全, 逆向工具, 隐私保护