roronoazoro-hacked/network-packet-analyzer
GitHub: roronoazoro-hacked/network-packet-analyzer
一款基于 Python 和 Scapy 的实时网络数据包分析器,集成威胁情报查询、MITRE ATT&CK 映射和机器学习异常检测,通过 Web 仪表盘可视化展示网络流量与安全告警。
Stars: 0 | Forks: 0
# ⚡ 网络数据包分析器





## 🔍 功能介绍
一个生产级网络数据包分析器,可捕获实时流量、实时检测威胁,并在基于浏览器的仪表盘中展示所有信息。
使用 Python、Scapy 和 Flask 从零开始构建——没有依赖教程,也没有复制粘贴。
## 📸 截图
### 完整仪表盘

### 警报 + MITRE ATT&CK

### 威胁情报

### 实时图表

## ✨ 特性
| 特性 | 描述 |
|---|---|
| 📡 **实时数据包捕获** | 使用 Scapy 进行实时 TCP/UDP/ICMP 捕获 |
| 🌍 **GeoIP + 反向 DNS** | 获取每个 IP 的国家、城市和主机名 |
| 🛡 **威胁情报** | 集成 AbuseIPDB——标记带有评分的恶意 IP |
| ⚔️ **MITRE ATT&CK 映射** | 每个警报都标记有技术 ID 和战术 |
| 🤖 **ML 异常检测** | Isolation Forest 基线模型标记异常流量 |
| 📊 **实时图表** | 协议分类 + 每秒数据包时间线 |
| ⚠️ **邮件警报** | 在检测到严重威胁时通过 Gmail SMTP 发送通知 |
| 💾 **PCAP 导出** | 下载捕获内容,可直接在 Wireshark 中打开 |
| 🐳 **Docker 就绪** | 使用 docker-compose 一键部署 |
| ⚙️ **YAML 配置** | 所有设置均在 config.yaml 中——无需修改代码 |
## 🖥 仪表盘
Web 仪表盘运行在 `http://localhost:5000`,包含:
- **实时数据包流** —— 根据威胁级别(CRITICAL / HIGH / MEDIUM / NORMAL)进行颜色编码
- **警报面板** —— 带有 MITRE ATT&CK 技术 ID 的实时安全警报
- **威胁情报面板** —— 记录所发现的每个外部 IP 的 AbuseIPDB 评分
- **ML 异常面板** —— Isolation Forest 训练状态和异常数量
- **Top talkers(高活跃度 IP)** —— 网络中最活跃的 IP
- **协议图表** —— TCP/UDP/ICMP 分布的实时甜甜圈图
- **时间线图表** —— 过去 60 秒内每秒的数据包数量
- **点击展开** —— 每个面板点击后可全屏展开
## 🚀 快速开始
### 选项 1 —— Docker(推荐)
```
git clone https://github.com/roronoazoro-hacked/network-packet-analyzer
cd network-packet-analyzer
cp .env.example .env
docker-compose up
```
打开 `http://localhost:5000`
### 选项 2 —— 直接运行 Python(Windows)
```
git clone https://github.com/roronoazoro-hacked/network-packet-analyzer
cd network-packet-analyzer
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python main.py
```
打开 `http://localhost:5000`
## ⚙️ 配置
所有设置都在 `config.yaml` 中——无需修改代码:
```
network:
interface: '\Device\NPF_{your-interface}'
filter: "ip"
detection:
port_scan_threshold: 15
risky_ports: [22, 23, 445, 3389, 4444]
ml:
baseline_duration: 120
contamination: 0.05
alerts:
email:
enabled: true
cooldown_seconds: 300
```
## 🔑 环境变量
将 `.env.example` 复制为 `.env` 并填入你的信息:
ABUSEIPDB_KEY=your_abuseipdb_key
EMAIL_SENDER=your@gmail.com
EMAIL_PASSWORD=your_16_char_app_password
EMAIL_RECEIVER=your@gmail.com
在 https://www.abuseipdb.com/register 获取免费的 AbuseIPDB 密钥
## 🎯 检测能力
| 检测项 | 方法 | MITRE 技术 |
|---|---|---|
| 端口扫描 | 来自单个 IP 的 >15 个唯一端口 | T1046 — 网络服务发现 |
| 恶意 IP | AbuseIPDB 评分 >20% | T1071 — 应用层协议 |
| RDP 连接 | 端口 3389 流量 | T1021.001 — 远程服务:RDP |
| SSH 连接 | 端口 22 流量 | T1021.004 — 远程服务:SSH |
| SMB 流量 | 端口 445/139 | T1021.002 — 远程服务:SMB |
| ML 异常 | Isolation Forest 偏差 | T1071 — 异常协议行为 |
## 🏗 架构
main.py — Flask 服务器 + 数据包处理 + 线程
sniffer.py — Scapy 数据包捕获
geoip.py — 通过 ip-api.com 进行 IP 地理定位
threat_intel.py — AbuseIPDB 威胁情报
mitre.py — MITRE ATT&CK 技术映射
anomaly.py — ML 异常检测(Isolation Forest)
emailer.py — Gmail SMTP 警报通知
logger.py — CSV 数据包日志记录
config.py — YAML 配置加载器
templates/
index.html — Web 仪表盘(vanilla JS + Chart.js)
## 🛠 技术栈
- **Python 3.11** — 核心语言
- **Scapy** — 数据包捕获和协议解码
- **Flask** — Web 服务器和 REST API
- **scikit-learn** — Isolation Forest 异常检测
- **Chart.js** — 实时仪表盘图表
- **AbuseIPDB API** — 威胁情报
- **ip-api.com** — IP 地理定位
- **Docker** — 容器化
## 🔒 安全说明
此工具旨在供您在自己拥有的网络上使用,或在获得明确许可的情况下进行监控。未经授权的数据包捕获在您所在的司法管辖区可能是违法的。
## 👨💻 作者
**Dhrumil Chheda**
- GitHub: [@roronoazoro-hacked](https://github.com/roronoazoro-hacked)
- LinkedIn: [在此处添加您的 LinkedIn URL]
## 📄 许可证
MIT License —— 详情请参阅 [LICENSE](LICENSE)。
标签:AbuseIPDB, AI安全, Apex, Beacon Object File, Chat Copilot, Cloudflare, DNS枚举, DNS解析, Docker, Flask, GeoIP, ICMP, IP 地址批量处理, Isolation Forest, MITRE ATT&CK, PCAP, PE 加载器, Python, Scapy, SOC工具, TCP, UDP, Web仪表盘, Wireshark, YAML配置, 全栈项目, 内核驱动, 句柄查看, 威胁情报, 子域名变形, 安全运营, 安全防御评估, 开发者工具, 开源项目, 异常检测, 扫描框架, 插件系统, 无后门, 智能分析, 机器学习, 流量可视化, 漏洞发现, 端口监控, 网络协议, 网络安全, 网络安全工具, 请求拦截, 逆向工具, 邮件告警, 隐私保护