lucky-om/CodeAlpha_NetPhantom
GitHub: lucky-om/CodeAlpha_NetPhantom
NetPhantom 是一个具备实时流量捕获、协议解析和基础威胁检测能力的网络数据包嗅探器,提供暗色风格 GUI 仪表盘与 CLI 双模式操作。
Stars: 0 | Forks: 0
# ⬡ NetPhantom v2.0 — 专业网络数据包嗅探器
```
███╗ ██╗███████╗████████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗████████╗ ██████╗ ███╗ ███╗
████╗ ██║██╔════╝╚══██╔══╝ ██╔══██╗██║ ██║██╔══██╗████╗ ██║╚══██╔══╝██╔═══██╗████╗ ████║
██╔██╗ ██║█████╗ ██║ ██████╔╝███████║███████║██╔██╗ ██║ ██║ ██║ ██║██╔████╔██║
██║╚██╗██║██╔══╝ ██║ ██╔═══╝ ██╔══██║██╔══██║██║╚██╗██║ ██║ ██║ ██║██║╚██╔╝██║
██║ ╚████║███████╗ ██║ ██║ ██║ ██║██║ ██║██║ ╚████║ ██║ ╚██████╔╝██║ ╚═╝ ██║
╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
NetPhantom
```
## 📁 项目结构
```
nETWORK pACKATE/
├── main.py ← Entry point: mode selector (GUI / CLI)
├── capture.py ← Packet capture engine (Scapy + threading)
├── analyzer.py ← Packet parser + threat detection engine
├── gui.py ← Hacker-style Tkinter GUI dashboard
├── requirements.txt ← Python dependencies
└── README.md ← This file
```
## ⚙️ 安装说明
### 1. 前置条件
- Python 3.10+
- **Windows**: 已安装 [Npcap](https://npcap.com/)(Scapy 进行数据包捕获时需要)
- **Linux/macOS**: `libpcap`(通常已预装)
### 2. 安装依赖
```
pip install -r requirements.txt
```
### 3. 权限(完整捕获功能必需)
| 平台 | 运行方式 |
|----------|------------|
| Windows | 右键点击终端 → **以管理员身份运行** |
| Linux | `sudo python main.py ...` |
| macOS | `sudo python main.py ...` |
## 🚀 使用方法
### 🖥️ GUI 模式(默认)
```
python main.py
# or explicitly:
python main.py --mode gui
```
启动完整的**暗色黑客风格 NetPhantom 仪表盘**,包含:
- 实时数据包捕获表
- 实时协议统计
- 威胁警报面板
- 搜索与过滤
- 一键导出(PCAP / JSON)
## 🎨 GUI 仪表盘功能
| 面板 | 描述 |
|-------|-------------|
| **控制栏** | 选择接口,设置 BPF 过滤器,启动/停止捕获 |
| **数据包表** | 实时滚动表格:时间、源地址(Src)、目的地址(Dst)、协议、长度、信息 |
| **详情面板** | 点击任意行查看完整的数据包解析 |
| **统计面板** | 总数据包数、PPS、协议计数器、条形图 |
| **警报面板** | 实时威胁检测警报 |
### ⌨️ GUI 键盘快捷键
| 按键 | 动作 |
|-----|--------|
| `F5` | 开始捕获 |
| `F6` | 停止捕获 |
| `Ctrl+E` | 打开导出对话框 |
| `Ctrl+F` | 聚焦搜索框 |
| `Ctrl+L` | 清除所有数据包 |
| `Escape` | 停止捕获 |
| `双击行` | 打开完整数据包详情弹窗 |
### 🎨 颜色编码
| 颜色 | 协议 |
|-------|----------|
| 🟢 绿色 | TCP |
| 🔵 蓝色 | UDP |
| 🟡 黄色 | ICMP |
| 🟣 紫色 | ARP |
| 🩵 青色 | DNS |
| ⬜ 白色 | IPv6 |
| 🔴 红色 | 可疑/警报数据包 |
## 🔐 威胁检测(内置)
| 威胁 | 检测阈值 |
|--------|---------------------|
| **端口扫描** | 单个 IP 连接 > 15 个唯一目标端口 |
| **DoS / 高流量** | 单个 IP 流量 > 100 个数据包/秒 |
| **ICMP 泛洪** | 单个 IP 流量 > 50 个 ICMP 数据包/秒 |
| **DNS 泛洪** | 单个 IP 发起 > 30 次 DNS 查询/秒 |
警报会同时显示在 GUI 警报面板和 CLI 中(红色警告行)。
## 📦 导出格式
| 格式 | 描述 |
|--------|-------------|
| `.pcap` | 标准数据包捕获文件(可在 Wireshark 中打开) |
| `.json` | 已解析的数据包摘要(用于脚本/分析) |
```
# CLI: auto-save pcap during capture
python main.py --mode cli -i eth0 -s output.pcap
# GUI: use Ctrl+E → choose PCAP or JSON
```
## 🧠 架构
```
main.py (NetPhantom Entry Point)
├─ parse_arguments() → argparse
├─ check_privileges() → admin/root check
├─ --mode gui → gui.py → PacketSnifferGUI
│
capture.py → CaptureEngine
│ ├─ sniff() [background thread]
│ ├─ Queue
│ └─ export_pcap / export_json
│
analyzer.py → PacketAnalyzer
├─ parse(pkt) → dict
├─ get_stats() → dict
└─ _detect_threats() → alert str
```
### 线程模型
```
Main Thread Capture Thread (daemon)
────────── ──────────────────────
GUI poll_packets() ← scapy.sniff() → _packet_callback()
(every 80ms) ↓
reads from Queue → PacketAnalyzer.parse()
updates Treeview ↓
updates Stats → queue.put_nowait(pkt_info)
```
## 🛡️ 安全与道德
本工具适用于:
- ✅ 授权的渗透测试
- ✅ 您自己网络的网络故障排除
- ✅ 网络安全教育与学习
- ✅ CTF/实验室环境
- ❌ 不可用于未经授权的监视
## 🧪 测试(实验环境搭建)
```
# Generate test traffic (from another terminal)
ping 8.8.8.8
# On Linux: generate TCP traffic
curl http://example.com
# DNS test
nslookup google.com
```
## 🐛 故障排除
| 问题 | 解决方案 |
|-------|-----|
| `Permission denied` | 以管理员身份运行(Windows)或使用 `sudo`(Linux) |
| 无法捕获到数据包 | 安装 Npcap(Windows)或检查网络接口名称 |
| `Interface not found` | 运行 `python main.py -l` 列出可用的网络接口 |
| Scapy 导入错误 | `pip install scapy` |
| GUI 无法打开 | 确保已安装 `tkinter`(`python -m tkinter`) |
| CPU 占用过高 | 缩小 BPF 过滤器范围,或使用 `--filter tcp` |
## 📋 依赖项
```
Python >= 3.10
scapy >= 2.5.0
colorama >= 0.4.6
tkinter (bundled with Python)
Npcap (Windows only) — https://npcap.com
```
## 👨💻 作者
**Lucky** — 道德黑客
本项目作为网络安全工具的演示而构建,结合了:
- 实时数据包捕获(Scapy)
- 多线程架构
- 专业的 GUI 设计(Tkinter)
- CLI 实用程序设计模式
**工具名称:NetPhantom**
## 📜 许可证
## 本项目基于 Apache License 2.0 授权。
详见 LICENSE 文件。
*"拥有强大的数据包嗅探能力,意味着也要承担重大的责任。"*
标签:AMSI绕过, CLI, Google搜索, GUI应用, NetPhantom, PB级数据处理, Python, Scapy, Tkinter, TUI, WiFi技术, 协议分析, 协议洞察, 图形界面, 威胁检测, 安全运维, 情报分析, 抓包工具, 攻击路径可视化, 数据包解析, 无后门, 服务管理, 权限提升, 深度包检测, 网络嗅探器, 网络安全, 网络安全分析, 网络诊断, 逆向工具, 防御绕过, 隐私保护, 黑客工具