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, 入侵检测系统, 嗅探器, 多模态安全, 安全数据湖, 并发处理, 无后门, 目录遍历, 网络安全, 逆向工具, 防御绕过, 隐私保护