raghavendra1969/Real-Time-Network-Protocol-Analyzer-Packet-Sniffer
GitHub: raghavendra1969/Real-Time-Network-Protocol-Analyzer-Packet-Sniffer
基于 Python/Scapy 的实时网络数据包嗅探与入侵检测工具,支持全栈协议解析、异常流量告警分级及自动化 HTML 安全报告生成。
Stars: 0 | Forks: 0
# 实时网络协议分析与数据包嗅探器
一个基于 Python/Scapy 的数据包捕获和分析工具,可检查 L2-L7 层的流量,通过严重性级别标记具有安全相关性的异常,并自动生成结构化的 HTML 报告,可作为 VAPT/SOC 风格的交接产物。
## 功能特性
- **实时捕获或 pcap 重放** — 嗅探真实接口(需要 root/管理员权限),或重放现有的 `.pcap`/`.pcapng` 文件以进行安全、可重复的演示。
- **全栈解析 (L2–L7)**:Ethernet、ARP、IPv4/IPv6、TCP/UDP/ICMP、DNS 查询名称,以及尽力而为的明文 HTTP 请求/Host 提取。
- **实时异常检测**与严重性分类
(INFO / LOW / MEDIUM / HIGH / CRITICAL):
| 规则 | 严重性 | 检测目标 |
|---|---|---|
| ARP 欺骗 (ARP Spoofing) | CRITICAL | 同一 IP 被两个不同的 MAC 地址声明 |
| SYN Flood | CRITICAL | 针对单一目标的大量 SYN 爆发 |
| 端口扫描 (Port Scan) | HIGH | 单一来源在短时间内访问大量目标端口 |
| 可疑 HTTP 模式 | HIGH | URI 中包含路径遍历 / SQLi / XSS 指标 |
| 可疑端口 (C2-style) | MEDIUM | 指向 4444、1337、31337 等端口的流量 |
| DNS 隧道指标 | MEDIUM | 异常长的 DNS 标签/查询 |
| 超大 ICMP | LOW | 远大于典型大小的 Ping 数据包 |
- **结构化 HTML 报告**:包含严重性摘要卡片、协议分布、可排序的发现结果表,以及完整的数据包日志 —— 完全自包含,无外部依赖,可在任何浏览器中打开。
- **可选的 JSON-lines 数据包日志**,用于下游的 SIEM 摄取。
## 项目布局
```
netanalyzer/
├── analyzer.py # CLI entry point — wires capture → parse → detect → report
├── parser.py # Scapy packet → normalized PacketRecord (L2-L7)
├── detector.py # Stateful, threshold-based anomaly detection rules
├── report.py # HTML report generation
├── models.py # PacketRecord / Alert dataclasses
├── make_demo_pcap.py # Generates a synthetic pcap covering every rule, for safe demos
└── reports/ # Generated HTML reports land here by default
```
## 环境配置
```
pip install scapy --break-system-packages # or: pip install -r requirements.txt
```
`requirements.txt`:
```
scapy>=2.5
```
## 用法
**最安全的试用方式 —— 无需 root 权限,不接触真实网络:**
```
python3 make_demo_pcap.py # builds demo_traffic.pcap
python3 analyzer.py -r demo_traffic.pcap -o reports/demo_report.html
```
**实时捕获**(需要 root/管理员权限;Windows 需安装 Npcap):
```
sudo python3 analyzer.py -i eth0 -d 60 -f "tcp or udp or arp"
```
**重放 Wireshark 捕获的 pcap 文件:**
```
python3 analyzer.py -r capture.pcapng -o reports/site_audit.html
```
**所有选项:**
```
-i / --interface Network interface to sniff live (e.g. eth0, en0, Wi-Fi)
-r / --read Read packets from an existing .pcap/.pcapng file
-d / --duration Live capture duration in seconds (default: 30)
-c / --count Stop after N packets, 0 = unlimited
-f / --filter BPF filter, e.g. "tcp or udp or arp"
-o / --output Path for the generated HTML report
--log Optional path to write a JSON-lines packet log
```
## 检测逻辑的工作原理
每条规则都是简单、可解释的阈值/状态机检查(例如:“我们是否在 10 秒内看到此 IP 访问了 15 个以上的不同目标端口?”),而不是黑盒 ML 模型 —— 这是刻意为之:它使检测结果保持可审计,并且易于针对特定网络的基准进行调整,这对于一份具有说服力的安全报告至关重要。可调整的阈值位于 `detector.py` 的顶部。
## 扩展功能
- **新协议**:在 `parser.py` 中添加解析(例如 TLS SNI、FTP 命令)。
- **新规则**:向 `AnomalyDetector` 添加方法,并从 `process()` 中调用它。
- **不同的报告样式**:`report.py` 是一个单一的模板字符串 —— 如果你想要更复杂的主题,可以将其替换为 Jinja2。
- **SIEM 集成**:将 `--log` 指向你的日志收集器监控的路径,或者扩展 `Session.handle()` 以将警报 POST 到 webhook。
## 道德 / 合法使用
仅在你拥有或获得明确书面授权进行测试的网络和系统上捕获流量。未经授权的数据包捕获可能会违反窃听和计算机滥用法。此工具旨在用于授权的安全评估、VAPT 任务以及学习/实验室环境。
标签:GitHub搜索工具, Homebrew安装, IP 地址批量处理, Python, Scapy, VAPT, 入侵检测系统, 嗅探器, 多模态安全, 安全数据湖, 并发处理, 无后门, 目录遍历, 网络安全, 逆向工具, 防御绕过, 隐私保护