agugliotta/pcap-lab

GitHub: agugliotta/pcap-lab

一款基于种子机制的确定性 HTTP 流量生成器,用于网络安全实验室构建可复现的攻击-检测-防御闭环及 WAF/IDS 规则验证。

Stars: 0 | Forks: 0

PCAP Lab Logo

PCAP Lab Generator

A deterministic HTTP traffic generator for cybersecurity laboratories and WAF testing.

Python Version License PRs Welcome

功能安装快速开始工作流

**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测试, 安全测试, 安全规则引擎, 攻击性安全, 无后门, 流量生成, 网络安全, 逆向工具, 隐私保护