面向 Linux 的 GTK4 与 CLI 无线安全工具包,包含 57 个独立模块,用于 Wi-Fi、蓝牙、802.15.4、SDR/RF、NFC 以及路由器侧或网络 MITM 测试。
一个面向 Linux 的 GTK4 无线安全工具包。57 个模块,涵盖 Wi-Fi、蓝牙、RF、路由器侧和网络 MITM 工作,全部集成在一个界面之后。
每个模块都是一个独立的 shell 脚本。GUI 只是它们之上的一个视图,而不是一个容器——没有任何东西被锁在界面之后。
早期开发阶段。 仅在一台机器、一个适配器上做过充分测试。 实际可用功能一节如实说明了这意味着什么, 在提交 bug 之前值得一读。
sudo bash wifisting.sh 会给你一个按类别分组的编号菜单。bash wifisting.sh --list 无需 root 权限即可打印模块可用性。
一个原生 GUI。 wifisting-gui 基于 GTK4 + VTE 构建,通过严格的 TSV 协议驱动同一批 shell 模块。约 15,000 行 C 代码,运行时依赖不重于 GTK 和 VTE。
一个模块集合。 超过 50 个 shell 脚本,每个都自包含,每个都能自行定位其项目根目录(在 pkexec 下也能工作,此时 HOME 为 /root),每个都带有一个 --selftest 动词,可离线运行且不接触任何硬件。
GUI 和 CLI 并非二选一——它们共享 /tmp/wifisting/ 下的状态。在 GUI 的 Recon 标签页中选择一个目标,CLI 就能看到它。从 CLI 启动一次扫描,GUI 的状态胶囊就会更新。
大多数无线工具都深耕于单一领域。aircrack-ng 是 Wi-Fi。bettercap 是网络 MITM。BlueZ 工具是蓝牙。一次评估意味着五个工具、五种配置格式,以及对目标没有共享视图。
wifisting 有意做得宽泛——跨越各层和协议,集中在一处。它还封装了 Responder、mitm6、ntlmrelayx、mdk4 和 hcxdumptool,而不是重新实现它们,因此这些专业工具仍留在它们该在的底层。
它另一处不同之处在于:大多数工具会告诉你它们成功了。 而这个工具是为了在它们没成功时告诉你而构建的。一个在目标未被触及的情况下报告 OK 的模块,比一个大声失败的模块更糟,因此每个模块都有 --selftest,而受硬件限制的模块会说明缺少什么,而不是返回空结果。
帧级干扰。不是 deauth 洪水——而是真正的反应式干扰、载波侦听操纵和 FCS 损坏,通过修改过的 Atheros 驱动驱动。这需要将 modwifi 移植到 kernel 7.0,这也是几乎没人发布它的原因。你可以干扰某一个接入点的信标,而不影响信道的其余部分。
SSID 溢出,带有真正的 IE 长度控制。信标的 SSID 超出 32 字节限制,并在相同字节中携带注入载荷。已发布的 ESP32 工具做不到这一点——WiFi.softAP() 会在 32 处截断,所以它们都将其列为未来工作。手工构建帧意味着长度字节独立于内容,而这才是真正重要的情形。
路由器通告投毒。mitm6 处理 DHCPv6 并有意跳过路由器通告,因此一个没有 DHCPv6 参与的网络不受其影响。这个工具做的是 RA/SLAAC:一个伪造的数据包就能重新配置每台主机的默认路由和解析器。
客户端隔离绕过。网关弹跳、端口窃取、广播反射,外加一个 NIC 间中继来保持绕过开放。来自 AirSnitch 的工作(NDSS'26)。
USB 以太网 MITM。基于 RNDIS,PoisonTap 风格,通过 USB 端口实施。
路由器恢复与控制台。恢复模式 TFTP、UART/U-Boot 指导、离线固件镜像解析。在无线工具中并不常见。
多节点捕获。驱动一组远程节点——Pi、VM、笔记本——并关联它们所看到的内容。
我认为最重要的一点:它被设计为在失败时明确告知你。每个模块都有 --selftest。受硬件限制的模块会指明缺失的硬件,而不是返回空结果。一个在目标未被触及的情况下报告 OK 的模块,比一个大声失败的模块更糟糕,而这正是我在追查的缺陷类别。
| 模块 | 描述 |
|---|---|
00_deps | 检查已安装工具并安装缺失的软件包 |
01_iface | 发现无线接口并控制监听模式 |
| 模块 | 描述 |
|---|---|
02_recon | 实时扫描、目标选择、CSV 解析 |
03_attack | Deauth、WPA/WPA2 握手捕获和 PMKID |
04_eviltwin | 带强制门户和凭据捕获的流氓 AP |
08_pmkid_offline | 离线 PMKID 提取和 hashcat 转换 |
09_wardrive | 带 GPS 标记的扫描,用于覆盖范围测绘 |
10_rogue_dhcp | 用于拦截的恶意 DHCP 服务器 |
11_krack_kr00k | KRACK 和 Kr00k 密钥重装 |
17_wps_attack | Pixie Dust 和 WPS PIN |
20_karma | 应答每个探测请求以诱捕客户端 |
21_beacon_flood | Beacon 和认证洪泛、WIDS 混淆、Michael 对策 |
22_wifi_direct | P2P 设备、服务和组所有者协商 |
23_captive_portal_builder | 从模板渲染强制门户 HTML |
34_pmf_bypass | 每个 AP 的 802.11w 管理帧保护态势 |
35_wifi6_attacks | HE 元素、BSS 颜色冲突、TWT、空间复用 |
47_wpa3_attack | 过渡降级、Dragonblood、SAE 捕获和字典 |
48_wep_attack | 伪造认证、ARP 重放、ChopChop、分片、密钥恢复 |
53_jamming | 通过 modwifi 驱动进行帧级干扰 |
54_client_isolation | 网关反弹、端口窃取、广播反射、网卡间中继 |
55_ssid_overflow | 超出 32 字节限制的超大 SSID,并在相同字节中注入 |
| 模块 | 描述 |
|---|---|
07_arp | ARP 欺骗和 MITM 捕获 |
13_802.1x_relay | 用于 802.1X 的 RADIUS 中继 |
32_resolver_poison | LLMNR/NBT-NS/mDNS 投毒、NTLM 中继、mitm6、路由器通告 |
49_usb_mitm | 通过 RNDIS 实施 USB 以太网 MITM |
50_router_lan | TR-064、HNAP、UPnP/SSDP、SNMP、DNS 重绑定、CSRF |
51_router_web | 诊断页面注入、rom-0 泄露、默认凭据 |
52_router_console | 恢复模式 TFTP、UART/U-Boot 指导、离线固件解析 |
| 模块 | 描述 |
|---|---|
05_bt_recon | 设备枚举和指纹识别 |
06_bt_attack | BLE 欺骗和蓝牙攻击原语 |
12_hid_injection | 蓝牙 HID 击键注入 |
24_bt_mesh | BLE Mesh 嗅探和攻击 |
36_ble_tracker_hunt | AirTag/SmartTag/Tile 检测和跟踪检测 |
37_bt_classic_ssp | 安全简单配对模型和 HCI 日志重建 |
38_ble_adv_forge | iBeacon、Eddystone 和 Fast Pair 载荷构建 |
39_ble_fuzz | 畸形 BLE 载荷语料生成 |
| 模块 | 描述 |
|---|---|
26_zigbee | Zigbee 嗅探和攻击(CC2531 / nRF52840) |
57_thread | Thread 网状网络分析和边界路由器发现 |
| 模块 | 描述 |
|---|---|
25_rf_spectrum | SDR 频谱扫描、IQ 捕获、信道占用 |
40_wifi_csi | 信道状态信息解析和运动分析 |
42_subghz | Sub-GHz OOK 脉冲串解码和频段参考 |
43_nfc_rfid | NDEF 编解码器和 MIFARE 标签结构分析 |
44_lora_loraWAN | LoRa 和 LoRaWAN |
45_drone_remote_id | ASTM F3411 Remote ID 解码和构建 |
| 模块 | 描述 |
|---|---|
14_wifi_ids | 被动监控与无线入侵检测 |
15_wifi_cve_scan | 探测网络是否存在已知 Wi-Fi CVE 暴露 |
16_bt_cve_scan | 探测蓝牙设备是否存在已知 CVE 暴露 |
18_capture_analysis | pcap 浏览、哈希提取、hashcat 驱动 |
19_wordlist_manager | 下载、组合和管理字典与规则 |
27_firmware_iot | 固件提取、凭据收集、CVE 扫描 |
27b_fw_update_audit | 固件更新审计 |
28_live_traffic | 实时流量视图 |
30_fingerprint | 客户端识别、随机 MAC 检测、关联分析 |
41_wifi_geolocate | 基于 BSSID 和 RSSI 的位置估计 |
46_public_wifi_audit | 对 AP 的开放、WEP、降级和邪恶双胞胎风险进行评级 |
| 模块 | 描述 |
|---|---|
29_killchain | 将多步攻击串联为可复用的运行流程 |
31_remote_node | 管理远程节点集群(Pi / VM / PC) |
你需要一个能够注入的适配器。
构建或启动应用本身不需要这里的任何东西。但如果没有至少其中一件,大部分功能都无法发挥作用,所以值得了解每一件能带来什么。
必需 — 一个能够注入的 Wi-Fi 适配器。Atheros AR9271 是我构建和测试所用的:TP-Link WN722N v1、Alfa AWUS036NHA、Technoethical N150。
Intel 适配器无法用于任何涉及注入的操作。应用会检测到 iwlwifi 并告知你,而不是静默失败,但它会拒绝执行。仅靠监听模式是不够的。没有上述适配器之一,你只能浏览界面和读取抓包,仅此而已。
第二个 Wi-Fi 适配器 — 用于客户端隔离测试。该模块需要两个接口同时关联,一个充当受害者,一个充当攻击者。任何支持 managed 模式的网卡都可以作为第二个;它不需要具备注入能力。
蓝牙适配器 — 用于八个蓝牙模块。经典蓝牙和 BLE 侦察、SSP、广播伪造、模糊测试、mesh、追踪器搜寻、HID 注入。最好使用较新的适配器;一些较旧的 CSR 加密狗无法透传 BLE 广播数据。
802.15.4 无线电 — 用于 Zigbee 和 Thread。一个 CC2531、CC2652 或 nRF52840 加密狗,刷入嗅探固件。一个无线电即可覆盖两者,因为 Thread 和 Zigbee 共享相同的物理层——它们是同一硅片上的不同协议栈。这也是让你能够接触 Matter 的硬件。
SDR — 用于射频频谱、sub-GHz、LoRa 和无人机 Remote ID。RTL-SDR 是廉价的入门选择,覆盖 sub-GHz 接收。HackRF 增加了 2.4 GHz 覆盖和发射能力,这是任何非被动操作所需要的。请注意,sub-GHz 发射——重放攻击之类——需要具备 TX 能力的硬件;RTL-SDR 只能监听。
NFC 读写器 — 用于 NFC/RFID 模块。PN532 或 ACR122U 可处理 NDEF 和 MIFARE 相关工作。如果你要超越标签结构分析进入真正的卡片研究,则需要 Proxmark3。
USB 转 UART 适配器 — 用于路由器控制台访问。CP2102、CH340 或 FTDI。当恢复模式无法给你 U-Boot 提示符时,这就是让你在路由器串口排针上获得 U-Boot 提示符的工具。值得备一套杜邦线,对于板级工作,还需要 SOIC 夹。
GPS 接收器 — 用于 wardriving。wardriving 模块通过 gpsd 驱动 Kismet,因此任何 gpsd 支持的接收器都可以。USB 或蓝牙均可。
解压归档后,在你的终端中:
cd native
meson setup builddir && meson compile -C builddir
这样就能构建 GUI。然后,从项目根目录执行:
./wifisting.sh
应用在某个模块需要 root 权限时会要求你输入密码——这由 pkexec 负责,并且它会针对每个操作分别提示,而不是在启动时一次性提示。
或者直接启动构建好的二进制文件:
./native/builddir/wifisting-gui
操作系统: Linux。在 Arch 系和 Ubuntu 衍生版上开发。 它无法在 Windows 上原生运行——请参阅下方的 Windows。
必需: GTK4(4.14+)、meson、ninja、C 编译器、带 scapy 的 python3。
# Debian / Ubuntu
sudo apt install build-essential meson ninja-build cmake libgtk-4-dev libvte-2.91-gtk4-dev python3-scapy
# Arch
sudo pacman -S base-devel meson ninja cmake gtk4 vte4 python-scapy