MJ-meo-dmt/network-graph-monitor
GitHub: MJ-meo-dmt/network-graph-monitor
一款基于 Python 和 Scapy 的本地网络流量可视化与行为分析工具,通过浏览器 Canvas 实时呈现网络拓扑、设备通信和可疑行为检测,并生成工程师友好的节点通信报告。
Stars: 0 | Forks: 0
# Network Graph Monitor
一个使用 Python、Scapy 和基于浏览器的 Canvas UI 构建的,具备拓扑感知、行为感知的网络可视化、端点证据和报告工具。
该工具从选定的本地接口、Wi-Fi 适配器或镜像/SPAN 端口捕获数据包,分析网络活动,并渲染一个交互式的实时图表,显示设备、流量、协议、服务、端点证据和网络结构。
它对真实世界的网络行为进行建模,包括网关路由、交换机/L2 路径、多播和广播流量、DNS 解析、TLS/HTTP/QUIC 证据以及连接级别的活动,提供高级拓扑视图和详细的逐连接洞察。
`专为实验室和本地环境中的网络工程师和安全分析师设计。`
与传统的数据包分析器不同,该工具侧重于:
- 拓扑感知
- 行为模式
- 视觉智能
- 端点证据
- 对工程师友好的报告
## 预览






## 功能
### 数据包捕获
- 基于 Scapy 的异步数据包捕获
- UI 控制的捕获生命周期:
- 开始
- 暂停
- 停止
- 可选的捕获接口:
- 以太网适配器
- Wi-Fi 适配器
- Scapy 默认选择的接口
- Wi-Fi 捕获支持:
- 普通 Wi-Fi 适配器捕获
- 可选的监听模式请求
- 可选的 Wi-Fi 频道选择
- 适配器/驱动/Npcap 故障处理且不会导致 UI 崩溃
- 捕获遥测:
- 活动接口
- 监听模式状态
- 频道
- 原始数据包
- 已分析事件
- 已存储事件
- 错误计数
- 协议分布
### 分析器覆盖范围
- Ethernet / 802.3 帧支持
- IPv4 和 IPv6 数据包提取
- ARP 跟踪
- TCP / UDP 端口提取
- DNS 查询和应答提取
- 数据包衍生的端点证据:
- 可见时的 TLS ClientHello SNI 提取
- 可见时的 TLS ALPN 提取
- JA3 风格的 TLS ClientHello 指纹哈希
- TLS 证书握手可见性标记
- 明文 HTTP 的 HTTP Host 标头提取
- QUIC Initial / HTTP3 握手可见性标记
- DHCP 主机名/厂商/请求地址元数据
- mDNS / LLMNR / NBNS 名称服务可见性
- 从应答和类 CNAME 响应中提取的 DNS 观察名称
- ICMP 分类
- NetBIOS/NBNS 可见性
- 通过 802.1Q 的 VLAN 标签可见性
- LLC / SNAP 检查
- EAPOL / 802.1X 可见性
- 支持监听模式时的原始 Wi-Fi 帧可见性:
- Beacon
- Probe request / response (探测请求/响应)
- Association / reassociation (关联/重关联)
- Authentication / deauthentication (认证/取消认证)
- Data / QoS data frame labels (数据/QoS 数据帧标签)
### 拓扑与路径建模
- 基于浏览器的实时 Canvas 图表
- 自动节点分组:
- 本地设备
- 外部主机
- 网关
- 交换机 / 二层设备
- 广播 / 多播节点
- IPv6 节点
- 原始 802.11 / Wi-Fi 监听模式节点
- 网关感知的视觉路由:
- Local → Switch → Gateway → External (本地 → 交换机 → 网关 → 外部)
- External → Gateway → Switch → Local (外部 → 网关 → 交换机 → 本地)
- Wi-Fi/AP 感知的视觉路由:
- Wi-Fi → Gateway/AP (Wi-Fi → 网关/AP)
- Gateway/AP → Wi-Fi (网关/AP → Wi-Fi)
- Wi-Fi → Gateway/AP → External (Wi-Fi → 网关/AP → 外部)
- External → Gateway/AP → Wi-Fi (外部 → 网关/AP → Wi-Fi)
- 接入路径分类:
- 交换机路径设备
- 网关 → AP 路径设备
- 每个本地设备的手动覆盖
- 自动 Wi-Fi 捕获主机路径检测
- 显示原始源/目标关系的可选逻辑边缘
- 跨越多跳视觉段的全路径连接高亮显示
- NAT/网关边界建模
- IPv6 感知的分组和可见性控制
- 广播、多播、环回、本地、外部和无线节点分类
### 二层与控制平面
- 二层协议可见性:
- STP / RSTP / MSTP
- CDP
- LLDP
- VTP
- LACP
- EAPOL / 802.1X
- LLC / SNAP
- 802.1Q VLAN 标签
- CDP / LLDP 元数据提取:
- Device ID / 主机名
- 平台
- 功能
- 管理 IP
- 软件版本
- VTP 域
- 双工模式
- 观察到的交换机端口 ID
- 交换机身份增强:
- OUI 厂商查找
- 网络设备角色推断
- 网络操作系统提示
- 置信度评分
- 跨会话的基于 MAC 的持久二层身份跟踪
- 控制平面流量被单独分类,默认情况下不被视为可疑
### 协议、服务、DNS 与端点证据
- 数据包/事件分类:
- ARP
- IPv4 / IPv6
- ICMP
- TCP / UDP
- DNS
- HTTP / TLS / QUIC
- NetBIOS/NBNS
- 支持监听模式时的原始 802.11 帧
- 基于端口和上下文的服务推断:
- Web:HTTP、TLS、HTTP-alt、开发 HTTP、Kibana
- 名称解析/发现:DNS、mDNS、LLMNR、SSDP、WS-Discovery
- Windows/AD:MSRPC、NetBIOS、SMB、Kerberos、LDAP、Global Catalog、WinRM
- 远程/管理:SSH、Telnet、RDP、VNC、SNMP、IPMI
- 文件传输/共享:FTP、TFTP、NFS、SMB
- 邮件:SMTP、SMTPS、IMAP、IMAPS、POP3、POP3S
- 数据库/平台:MSSQL、Oracle、MySQL、PostgreSQL、Redis、Elasticsearch、MongoDB、Memcached
- VPN/代理/隧道:IKE、IPsec NAT-T、PPTP、L2TP、OpenVPN、WireGuard、SOCKS、HTTP proxy
- 语音/IoT:SIP、SIPS、MQTT、CoAP、CoAPS
- 打印机/摄像头:LPD、IPP、JetDirect、RTSP
- OT/ICS 基于端口的服务提示:
- Modbus
- S7comm
- BACnet
- OPC-UA
- EtherNet/IP 显式和隐式消息
- DNP3
- IEC-104
- Omron FINS
- Profinet
- GE SRTP
- Fox
- CODESYS
- Red Lion Crimson
- PCWorx
- ProConOS
- DNS 关联:
- 查询跟踪
- DNS 应答归属
- IP → 主机名/域名映射
- 针对 `in-addr.arpa` 和 `ip6.arpa` 的反向 DNS 噪声过滤
- 端点证据关联:
- DNS 查询和应答证据
- TLS SNI 名称
- TLS ALPN 值,例如 `h2`、`http/1.1`,以及可见时与 HTTP3 相关的提示
- JA3 风格的 TLS ClientHello 哈希
- 明文 HTTP 的 HTTP Host 标头
- QUIC Initial / HTTP3 握手标记
- 从 DNS、mDNS、LLMNR、NBNS 和 DHCP 获取的观察名称(如果可用)
- 端点证据被引入到:
- 会话流
- 图节点
- 图边缘
- 边缘连接细分
- 节点信息面板
- 生成的报告
- TCP 元数据:
- TCP 标志摘要
- 负载长度
- TTL / hop 限制
- IP 数据包长度
### 数据包衍生的端点证据
分析器提取额外的数据包可见元数据,以帮助识别端点或连接可能代表什么。
支持的证据包括:
- TLS SNI:
- 从可见的 TCP TLS ClientHello 数据包中捕获
- 用于识别 TLS 连接上请求的主机名
- TLS ALPN:
- 捕获广播的协议,如 `h2` 或 `http/1.1`
- 有助于区分现代 HTTPS 行为
- JA3 风格的 TLS 指纹识别:
- 捕获 ClientHello 指纹哈希
- 作为客户端/应用程序行为线索,而非确定性身份
- HTTP Host:
- 从明文 HTTP 请求中捕获
- 在实验室、IoT、OT、更新检查和旧版 Web 流量中很有用
- QUIC / HTTP3 证据:
- 检测 UDP/443 上的 QUIC Initial 数据包
- 将连接标记为类似 QUIC/HTTP3 握手的流量
- 目前不解码 QUIC SNI
- TLS 证书可见性:
- 在观察到时标记证书握手的可见性
- 完整的证书主题/颁发者/SAN 解析是未来的增强功能
- 本地名称服务证据:
- DHCP 主机名
- mDNS 名称
- LLMNR 名称
- NBNS / NetBIOS 名称
这些证据显示在节点和边缘信息面板中,并包含在生成的节点通信报告中。
### 路由感知
- 路由/控制平面检测:
- OSPFv2 / OSPFv3
- EIGRP
- RIP
- VRRP
- HSRP / HSRPv2
- GLBP
- IGMP
- PIM
- 常见路由/控制平面目的地的多播角色提示
- 尽最大努力提取 OSPF 路由器 ID 和区域 ID
- 路由/控制平面事件被视为网络上下文,而非自动视为威胁
### 过滤与探索
- 协议和传输过滤器
- 端口过滤器
- IP 搜索
- 端口搜索
- IPv6 可见性切换
- 边缘标签切换
- 逻辑边缘切换
- 网关 ↔ 外部边缘可见性控制
- 主要通信者过滤器:
- 前 5 名
- 前 10 名
- 前 20 名
- 保持完整交换机/网关/外部链可见的路径感知过滤
- 每个节点的接入路径控制:
- 设置交换机路径
- 设置网关/AP 路径
- 重置为自动路径
### 可视化与 UI
- 流量加权的节点大小调整和热力着色
- 使用率/流量感知的边缘着色模式
- 边缘显示模式:
- 正常
- 静音低流量边缘
- 主要通信者
- 骨干网强调
- 使用热力图
- 节点信息面板包含端点证据:
- TLS SNI
- HTTP Host
- TLS ALPN
- JA3 哈希
- QUIC Initial / HTTP3 握手证据
- 观察到的 DNS/名称服务名称
- 边缘信息面板包含每个视觉段的数据包派生连接证据
- 节点报告按钮:
- 为选定节点生成 HTML 通信报告
- 使用选定的节点 IP/id 并在新标签页中打开报告
- 多播和 IPv6 锚点节点以减少布局混乱
- 本地网络摘要锚点:
- 网关
- 本地设备计数
- NAT 指示器
- VLAN 可见性
- 可折叠和可调整大小的面板
- 导入/导出 UI 布局
- 缩放/平移交互的渲染优化
### 报告
Network Graph Monitor 包含一个专为网络工程师设计的 HTML 节点通信报告系统。
报告可以从选定的图节点生成,也可以直接通过本地报告端点生成:
```
/report/node?node=&format=html
Example: http://localhost:8000/report/node?node=192.168.8.129&format=html
```
节点报告包括:
- 目标身份:
- IP
- MAC
- 厂商
- 角色
- 身份置信度
- 捕获摘要:
- 生成时间
- 推断的捕获开始/停止时间
- 持续时间
- 流计数
- 协议分布
- 通信摘要:
- 涉及目标的连接总数
- 目标计数
- 外部与本地目标
- 唯一端口
- 观察到的域
- 数据包和字节总数
- 外部表:
- 远程 IP
- 方向
- 端口
- 服务
- 数据包
- 字节
- 域名
- 应用程序提示(如果可用)
- 本地/内部目标表:
- 本地 DNS 解析器流量
- 网关/本地服务流量
- ARP/NetBIOS/LLMNR 可见性
- 端口和服务使用摘要
- DNS/域证据
- 数据包派生的证据摘要:
- TLS SNI 计数
- TLS ALPN 计数
- JA3 哈希计数
- HTTP Host 计数
- QUIC Initial / HTTP3 握手计数
- 观察到的 DNS/名称服务名称
- 端点智能:
- 外部 IP 的缓存反向 DNS/PTR 查找
- 发现和情报:
- 清理和整合的行为发现
- 嘈杂/弱发现被减少以提高可读性
- 详细的连接证据:
- 实际源
- 实际目标
- 远程服务端口
- 本地临时端口
- 协议/服务
- 数据包/字节
- 数据包派生证据
### 会话与持久化
- 基于会话的捕获/状态模型
- 从 UI 创建、加载和切换会话
- 新会话可选的自动开始捕获
- 携带到新会话的捕获选项:
- 接口
- 监听模式
- 频道
- 持久化的已知节点缓存:
- MAC ↔ IP 关联
- IPv4 / IPv6 身份链接
- DNS 名称持久化
- 厂商 / 操作系统 / 角色增强
- 本地端点智能缓存:
- 反向 DNS/PTR 查找结果
- 失败查找缓存以避免重复的慢速查找
- 被报告重用并可用于图表增强
- 报告生成使用会话状态、流、图节点、图边缘、DNS 证据和端点证据
- 可选的从已知节点引导新会话
- 持久化的 UI 布局和面板状态
### 连接与应用智能
### 连接与应用智能
- 每条边缘的连接细分:
- 实际源
- 实际目标
- 协议
- 数据包计数
- 字节计数
- 端口
- 域名
- 应用程序提示
- TLS SNI 证据
- TLS ALPN 证据
- JA3 风格的 TLS 指纹哈希
- HTTP Host 证据
- QUIC Initial / HTTP3 握手证据
- 观察到的 DNS/名称服务名称
- 可选的基于域的应用程序指纹识别
- 可选的基于服务/协议/端口的应用程序推断
- 加权分类模型:
- 域名匹配
- 服务/协议匹配
- 端口匹配
- 数据包派生证据
- 每个连接的显性应用程序选择
- 有证据支持的应用程序提示
### 检测与智能
- 基于启发式的行为检测,而非签名匹配
- 可解释的节点和边缘发现:
- 可疑度评分
- 标志
- 类别
- 人类可读的原因
- 证据对象
- 置信度
- 检测覆盖范围:
- DNS 异常
- 长/高熵 DNS 标签
- 超长高熵 DNS 名称 / 可能的 DNS 隧道
- 可疑 TLD 监视列表匹配
- 基于重复出站时间模式的信标 / 可能的 C2
- 外部扇出
- 内部扇出
- 横向移动指标
- 端口/主机扫描行为
- 管理协议扇出
- 管理端口/服务扫描
- 远程访问扇出
- 大量出站传输
- 加密大量传输
- 上传密集的外部流量
- 加密上传密集流量
- Tor/匿名端口指标,不包括作为独立强信号的通用 TLS/443
- 加密货币/挖矿端口指标
- VPN/代理端口指标
- 许多加密的外部对等节点
- 路由/控制平面流量作为上下文进行跟踪,默认情况下分配为非可疑评分
### 本地优先增强
- 捕获、绘图、检测或报告无需云依赖
- IEEE OUI 厂商查找
- 本地 DNS/IP/应用程序关联
- 可选的本地应用程序智能缓存
- 用于报告增强的本地反向 DNS/PTR 缓存
- 手动指纹和域覆盖支持
- 缓存的智能仅在上下文相关时被重用
- 失败的反向 DNS 查找会被临时缓存,以避免重复的慢速查找
生成的本地数据可能包括:
```
data/oui/oui.csv
data/app_intel/app_intel_cache.json
data/app_intel/app_fingerprint_overrides.json
data/node_cache/node_cache.json
data/ip_intel/ip_intel_cache.json
```
## 架构说明
系统维护一个分层的处理模型:
数据包 → 分析器 → 状态 → 图构建器 → UI / 报告
核心后端层:
- `capture.py` — 接口选择、捕获生命周期、监听模式处理
- `analyzer.py` — 数据包解析、协议/事件提取、端点证据提取
- `graph_builder.py` — 状态更新、拓扑建模、增强、视觉边缘生成
- `heuristics.py` — 行为检测和可解释的发现
- `identity.py` / `node_cache.py` — 设备身份和持久化
- `reporting.py` — 节点通信报告生成
- `ip_intel_store.py` — 用于端点增强的本地反向 DNS/PTR 缓存
- `server.py` — 本地 HTTP API、前端服务、报告端点
所有增强都是本地优先且可解释的。
### 示例洞察
- "设备 192.168.8.129 每隔 60 秒向一个外部主机发送信标"
- "主机 A 正在通过 SMB/RDP 与许多内部设备通信(可能存在横向移动)"
- "高熵 DNS 流量表明可能存在隧道"
- "多个到许多外部对等节点的加密连接(可能是匿名网络或 P2P)"
- "主机 192.168.8.129 使用 192.168.8.10 作为其 DNS 解析器,并查询了 chatgpt.com、github.com 和 Google API"
- "TLS SNI 显示了一个通过 TCP/443 到 www.wikipedia.org 的连接"
- "观察到了针对发往 Google 端点的 UDP/443 流量的 QUIC Initial / HTTP3 握手证据"
- "观察到了针对更新/检查端点的明文 HTTP Host 标头"
- "反向 DNS 增强表明此 IP 属于 Google/GitHub/Wikimedia 基础设施"
- "该报告识别了在捕获期间选定主机使用的所有外部 IP 和远程服务端口"
## 用例
- 在实验室环境中可视化网络拓扑
- 调查意外的网络行为
- 了解应用程序通信模式
- 识别嘈杂或可疑的设备
- 观察 DNS 和服务使用模式
- 在不进行深度数据包检查的情况下暴露可疑或异常行为
- 识别信标 / 可能的类 C2 通信模式
- 可视化路由和控制平面活动
- 生成用于工程移交或调查的节点通信报告
- 识别在捕获期间特定主机/应用程序使用的外部 IP、端口、协议和域
- 分离本地基础设施依赖项(如 DNS 解析器和网关)与外部服务目标
- 收集数据包派生的端点证据,如 TLS SNI、HTTP Host、ALPN、JA3 和 QUIC 握手标记
## 要求
- Python 3.11+
- 在 Windows 上安装 `Npcap`
- 数据包捕获需要管理员权限
- 对于 Windows 上的 Wi-Fi 监听模式:
- 支持监听模式的无线适配器和驱动程序
- 安装了支持原始 802.11 / 监听模式的 Npcap
- 可选地使用 Npcap `WlanHelper.exe` 进行频道选择
- `requirements.txt` 中的 Python 依赖项
## 项目结构
```
Network_graph/
├─ backend/
│ ├─ server.py
│ ├─ config.py
│ ├─ net_ports.py
│ ├─ net_utils.py
│ ├─ app_fingerprints.py
│ ├─ app_intel_store.py
│ ├─ reporting.py
│ ├─ ip_intel_store.py
│ ├─ node_cache.py
│ ├─ capture.py
│ ├─ analyzer.py
│ ├─ graph_builder.py
│ ├─ identity.py
│ ├─ session_manager.py
│ ├─ heuristics.py
│ ├─ state_schema.py
│ └─ sessions/
├─ data/
│ ├─ oui/
│ │ └─ oui.csv # manual download/optional
│ ├─ app_intel/
│ │ ├─ app_intel_cache.json # generated/optional
│ │ └─ app_fingerprint_overrides.json # generated/optional
│ ├─ ip_intel/
│ │ └─ ip_intel_cache.json # generated/optional
│ └─ node_cache/
│ └─ node_cache.json # generated/optional
├─ frontend/
│ ├─ index.html
│ ├─ layouts/
│ │ └─ default_layout.json
│ ├─ css/
│ │ └─ app.css
│ └─ js/
│ ├─ state.js
│ ├─ api.js
│ ├─ utils.js
│ ├─ filters.js
│ ├─ panels.js
│ ├─ canvas.js
│ ├─ physics.js
│ ├─ render.js
│ ├─ ui.js
│ └─ app.js
├─ requirements.txt
├─ .gitignore
└─ README.md
```
## 安装依赖
建议使用 Python 虚拟环境。
```
# 创建 virtual environment
python -m venv venv
# 激活它
# Windows:
venv\Scripts\activate
# Linux / macOS:
source venv/bin/activate
# 安装 dependencies
pip install -r requirements.txt
```
从以下地址 `安装 Npcap`:https://npcap.com/
对于 Windows 上的监听模式,请在安装过程中启用原始 802.11 / 监听模式支持。
## OUI 厂商查找
该工具可以使用 IEEE OUI CSV 文件进行 MAC 厂商查找。
预期位置:
```
data/oui/oui.csv
```
此文件被 Git 忽略,因为它很大且可以单独下载。
`下载自:` https://standards-oui.ieee.org/oui/oui.csv
## 运行
### 从项目根目录:
```
python backend/server.py
```
然后在您的浏览器中打开:
http://localhost:8000
从 UI 开始捕获:
- 选择一个捕获接口:
- 默认接口
- 以太网适配器
- Wi-Fi 适配器
- 可选的 Wi-Fi 监听模式:
- 如果适配器支持,请启用监听模式
- 在需要时设置频道
- 不支持的监听模式将作为 UI/后端错误报告,而不是崩溃
- 捕获可以:
- 已开始
- 已暂停
- 已停止
- 新会话可以选择使用选定的捕获选项自动开始捕获
## 生成报告
可以通过选择一个节点并单击以下内容从 UI 生成节点通信报告:
```
Generate HTML Report
Reports can also be opened directly from the local API:
http://localhost:8000/report/node?node=192.168.8.129&format=html
```
报告当前生成为 HTML,并专注于选定的节点/IP。
该报告回答了以下问题:
该主机与哪些外部 IP 进行了通信?
使用了哪些远程服务端口?
观察到了哪些协议和服务?
看到了哪些 DNS 名称、TLS SNI 值、HTTP Host 标头、ALPN 值、JA3 哈希或 QUIC 握手标记?
该主机依赖了哪些本地基础设施,例如 DNS 解析器或网关?
哪些行为发现被附加到了该节点或其相关流量中?
报告使用本地会话数据和缓存的增强。反向 DNS/PTR 查找缓存在以下位置:
`data/ip_intel/ip_intel_cache.json`
## 安全 / 隐私
1. 此工具捕获本地网络元数据和数据包派生信息。
2. 仅在您被允许监控流量的网络上使用它。
3. 会话文件和生成的报告可能包含:
- IP 地址
- 主机名
- DNS 名称
- MAC 地址
- 观察到的服务
- TLS SNI 值
- HTTP Host 标头
- JA3 风格的 TLS 哈希
- ALPN 值
- QUIC 握手标记
- 反向 DNS/PTR 增强
- 本地设备身份信息
4. 生成报告时,反向 DNS/PTR 查找可能会产生出站 DNS 流量。
5. 端点证据用于本地分析和报告。它应被视为支持性证据,而不是确定的应用程序归属。
## 状态
`专为受控环境、测试和迭代开发而设计。`
早期阶段 / 侧重实验室的工具。
正在积极发展,包括:
- 行为驱动的检测改进
- 持久化的智能和身份系统
- 可选的应用层指纹识别和增强
- 数据包派生的端点证据
- 节点通信报告
- 反向 DNS/PTR 报告增强
- Wi-Fi/AP 感知的拓扑建模
- 捕获接口和监听模式的改进
目标不是 *取代* Wireshark,而是提供对网络行为和通信模式的拓扑感知的视觉理解。
## 报告说明
报告是为工程调查而设计的,而非法律归因或取证确定性。
报告可以显示主机通过某个端口与 IP 进行了通信并且观察到了支持性证据,例如:
```
192.168.8.129 → 185.15.58.224:443
TLS SNI: www.wikipedia.org
ALPN: http/1.1
JA3: bd0bf25947d4a37404f0424edf4db9ad
```
这意味着捕获观察到了一个请求 www.wikipedia.org 的 TLS ClientHello。它本身并不能证明完整的应用程序身份。
对于 QUIC/HTTP3 流量,该工具当前将 QUIC Initial 数据包标记为握手证据:
观察到 QUIC Initial / HTTP3 握手
报告会清理重复的智能发现以提高可读性。图表可能包含比报告显示的更多的原始发现。
## 数据包捕获说明
### 在典型的交换网络上,您通常会看到:
- 运行该工具的机器的传入/传出流量
- 广播流量
- 多播流量
- 一些二层控制流量
要捕获其他设备之间的流量:
- 使用交换机 SPAN / 镜像端口
- 从镜像接口捕获
### 端点证据说明
某些端点证据仅在连接的特定部分可见:
- TLS SNI、ALPN 和 JA3 需要捕获 TLS ClientHello。
- HTTP Host 需要明文 HTTP 流量。
- QUIC Initial 标记需要看到 QUIC/HTTP3 会话的开头。
- 目前未解码 QUIC SNI。
- DNS 关联取决于在会话期间观察 DNS 查询/应答。
- 缓存的 DNS 或已建立的连接可能会减少可见证据。
### Wi-Fi 捕获说明
支持从已连接的 Wi-Fi 适配器进行普通 Wi-Fi 捕获。
在普通 Wi-Fi 捕获模式下,该工具通常会看到:
- 运行该工具的机器的传入/传出流量
- 适配器可见的广播和多播流量
- 一些本地发现/名称解析流量,如 ARPDNS、mDNS、LLMNR、SSDP、WS-Discovery、NBNS 和 DHCP
普通的 Wi-Fi 捕获通常不会显示接入点上所有的客户端到客户端 Wi-Fi 流量。
### Wi-Fi 监听模式
UI 可以请求在选定的 Wi-Fi 适配器上进行监听模式捕获。
监听模式取决于:
- 无线适配器支持
- 驱动程序支持
- 操作系统支持
- Npcap/libpcap 支持
- 正确的频道选择
在 Windows 上,必须安装带有原始 802.11 / 监听模式支持的 Npcap。
启用监听模式时,后端会尝试:
1. 将选定的适配器解析为 Scapy/Npcap 接口对象
2. 在该接口上启用监听模式
3. 可选地设置请求的 Wi-Fi 频道
4. 在启用监听模式的情况下启动 Scapy 捕获
5. 在捕获停止时将适配器从监听模式恢复
如果适配器不支持监听模式,UI 会报告错误,并且仍然可以使用普通捕获。
### Wi-Fi 拓扑说明
通过网关/AP 连接的 Wi-Fi 客户端在视觉上由不同的路由表示:
- Wi-Fi → Gateway/AP (Wi-Fi → 网关/AP)
- Gateway/AP → Wi-Fi (网关/AP → Wi-Fi)
如果 AP 和网关是同一设备,则视觉边缘直接连接 Wi-Fi 客户端和网关/AP。
未来的拓扑工作可能会将其拆分为:
- Wi-Fi → AP (Wi-Fi → AP)
- AP → Gateway (AP → 网关)
- Gateway → AP (网关 → AP)
- AP → Wi-Fi (AP → Wi-Fi)
## 许可证
本项目基于 MIT 许可证授权。
## 鸣谢
部分实现和迭代过程由 AI 工具协助完成。
所有设计决策、集成和验证均由作者完成。
标签:ARP追踪, DNS解析, IPv4/IPv6, Python, Scapy, SPAN端口, TCP SYN 扫描, TLS/HTTP/QUIC分析, Web UI, 协议检测, 安全分析工具, 安全运营中心, 局域网监控, 开源项目, 拓扑图, 数据可视化, 数据报分析, 无后门, 网关感知, 网络安全, 网络工程师工具, 网络映射, 网络流量可视化, 网络行为分析, 路由分析, 逆向工具, 防御绕过, 隐私保护