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 证据以及连接级别的活动,提供高级拓扑视图和详细的逐连接洞察。 `专为实验室和本地环境中的网络工程师和安全分析师设计。` 与传统的数据包分析器不同,该工具侧重于: - 拓扑感知 - 行为模式 - 视觉智能 - 端点证据 - 对工程师友好的报告 ## 预览 ![预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/7d707b0e48082945.png) ![预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b83bebdec1082947.png) ![预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/12ca244307082948.png) ![预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/504a198283082950.png) ![预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/92474b695b082952.png) ![预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/04257598ec082953.png) ## 功能 ### 数据包捕获 - 基于 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, 协议检测, 安全分析工具, 安全运营中心, 局域网监控, 开源项目, 拓扑图, 数据可视化, 数据报分析, 无后门, 网关感知, 网络安全, 网络工程师工具, 网络映射, 网络流量可视化, 网络行为分析, 路由分析, 逆向工具, 防御绕过, 隐私保护