RLabs-Inc/wifikit

GitHub: RLabs-Inc/wifikit

一款基于 Rust 的 macOS 原生 WiFi 渗透测试工具,解决 Apple Silicon 上无原生安全工具的问题。

Stars: 10 | Forks: 1

``` ╱ ╱ ╱ ╲ ╲ ╲ ╱ ╱ ╲ ╲ ╱ ╲ ● ██╗ ██╗ ██╗ ███████╗ ██╗ ██╗ ██╗ ██╗ ████████╗ ██║ ██║ ██║ ██╔════╝ ██║ ██║ ██╔╝ ██║ ╚══██╔══╝ ██║ █╗ ██║ ██║ █████╗ ██║ █████╔╝ ██║ ██║ ██║███╗██║ ██║ ██╔══╝ ██║ ██╔═██╗ ██║ ██║ ╚███╔███╔╝ ██║ ██║ ██║ ██║ ██╗ ██║ ██║ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ``` # wifikit macOS 的 WiFi 渗透测试工具包。纯 Rust 编写。无内核扩展,无 aircrack-ng,无虚拟机。 插入 USB 适配器,运行 `wifikit`,你便拥有一个完整的渗透测试实验室——扫描器、10 种攻击引擎、数据包捕获、握手导出——全部在一个看起来不像 2004 年风格的终端 UI 中。 ## 存在的意义 目前没有一款能在 Apple Silicon 上原生运行的 WiFi 渗透测试工具。零。 - **aircrack-ng**:仅限 Linux。监控模式需要修补过的内核驱动。 - **hashcat**:依赖 CUDA/OpenCL。不支持 Metal。Mac 上只能 CPU 跑。 - **Kismet/Wireshark**:仅被动嗅探。不支持注入与攻击。 - **Kali Linux 虚拟机**:虽然可行,但你需要运行虚拟机才能使用 USB 适配器。 wifikit 通过 USB 直接与 WiFi 芯片组通信,无需内核驱动。无需 root(USB 权限外)。纯用户态 Rust,从寄存器写入到 TUI 全部由 Rust 实现。 ## 支持的功能 ### 扫描器 - 在 2.4 GHz、5 GHz 和 6 GHz(WiFi 6E)间跳频扫描 - 支持 SSID、BSSID、信道、信号强度与安全检测的设备发现 - 客户端/站点跟踪与关联映射 - 主动探测或被动仅监听模式 - OUI 厂商查询(IEEE MA-L/MA-M/MA-S 数据库) ### 攻击模块 | 模块 | 功能 | 变体 | |------|------|------| | **PMKID** | 客户端免 WPA2 密钥提取——无需去认证,无干扰 | 主动关联 + EAPOL M1 捕获 | | **WPS** | 通过 Pixie Dust(离线,秒级)、暴力破解或空 PIN 破解 | 3 种模式,锁检测防,MAC 轮换 | | **DoS** | 拒绝服务——14 种类型,从精准打击到毁灭性攻击 | 去认证、去关联、认证/关联泛洪、信标泛洪、CTS/RTS、NAV 滥用、TKIP Michael、CSA、BSS 切换、电源节省 | | ** rogue AP ** | 伪造接入点 | 开放、邪恶双胞胎、KARMA、MANA Loud、已知信标 | | **EAP** | 企业网络攻击 | 邪恶双胞胎、凭证窃取(MSCHAPv2/LEAP/GTC/MD5)、EAP 降级、身份窃取、证书绕过 | | **KRACK** | 密钥重装攻击(11 个 CVE) | 四次握手、组密钥、FT、TDLS、WNM——测试模式支持 PN 重用检测 | | **FragAttacks** | 帧聚合/分段漏洞(12 个 CVE) | A-MSDU 注入、密钥混合、缓存中毒、明文注入等 | | **WPA3** | Dragonblood SAE 攻击(8 种模式) | 定时侧信道、组降级、切换降级、SAE DoS、无效曲线、反射、反反堵塞 | | **Fuzzer** | 协议模糊测试与崩溃检测 | 帧/IE/EAP 域,9 种变异策略,可重现的确定性 RNG | ### 捕获与导出 - 任意操作期间完整 pcap 捕获 - 4 次握手检测与捕获(WPA2、组密钥、FT、TDLS、WNM、SAE) - 导出为 hashcat(.hc22000)、John、asleap 格式 - 直接输入 [metal-crack](https://github.com/RLabs-Inc/metal-crack) 在 Apple Silicon 上进行 GPU 破解 ### TX 反馈 - 注入帧的 ACK/NACK 回显——确认数据包是否真正送达 - 速率优化(CCK 1M 测距、LDPC、STBC) - TX 功率控制最高 31 dBm(依赖适配器) ## 支持的硬件 wifikit 包含完整的用户态驱动,以下芯片组无需内核模块或 airmon-ng——即插即用。 | 芯片组 | 标准 | 频段 | 状态 | 适配器 | |--------|------|------|------|--------| | **RTL8812BU** | 802.11ac | 2.4 + 5 GHz | 正式发布 | TP-Link Archer T4U V3、ASUS USB-AC53 Nano、Netgear A6100 | | **RTL8812AU** | 802.11ac | 2.4 + 5 GHz | 正式发布 | Alfa AWUS036ACH/AC、TP-Link Archer T4U V1/V2 | | **RTL8852AU** | 802.11ax(WiFi 6) | 2.4 + 5 GHz | 正式发布 | Comfast CF-953AX、BrosTrend AX4L、ASUS USB-AX56 | | **MT7921AU** | 802.11ax(WiFi 6E) | 2.4 + 5 + 6 GHz | 正式发布 | Fenvi FU-AX1800、COMFAST CF-952AX、Netgear A8000 | | **MT7612U** | 802.11ac | 2.4 + 5 GHz | 基础功能——接收正常,特性有限 | COMFAST CF-WU785AC、Netgear A6210 | 识别 40+ 具体的 USB VID/PID 组合。如果你的适配器使用这些芯片组之一,理论上应该可以工作。 **推荐首选适配器**:基于 RTL8812BU(TP-Link Archer T4U V3 或类似)。测试最充分、最稳定、广泛可用,约 20 美元。 ## 编译与运行 ### 依赖 - macOS(已测试 Apple Silicon,Intel 上应也可工作) - Rust 工具链(`rustup`——稳定通道) - 支持的 USB WiFi 适配器 ### 编译与运行 ``` git clone https://github.com/RLabs-Inc/wifikit.git cd wifikit cargo build --release ./target/release/wifikit ``` 仅此而已,无需安装驱动、无需加载内核扩展、无需关闭 SIP。 ### 固件 RTL8852AU 驱动需要固件文件(`rtl8852au_fw.bin`)包含在仓库中。其他芯片组的固件已嵌入或从片上 ROM 加载。 ## 使用方式 wifikit 启动后会进入交互式 TUI。工作流如下: 1. **适配器选择**——自动检测已插入的适配器,选择一个(或同时使用多个) 2. **扫描器**——启动跳频扫描,构建 AP 与客户端地图 3. **攻击**——选择目标,选择攻击模块,开始 4. **捕获**——握手自动捕获,准备就绪后导出 ### 常用命令 ``` /scan Start/stop scanning /attack Launch attack module (pmkid, wps, dos, ap, eap, krack, frag, wpa3, fuzz) /export Export captures (hc22000, pcap, john, asleap) /adapter Switch adapter or view adapter info /spectrum MT7921AU spectrum analyzer (hardware MIB survey) /help Show all commands ``` ### 多适配器支持 wifikit 支持同时运行多个适配器。可用一个进行扫描,另一个进行攻击——扫描器不会停止。 ## 尚未支持(或不完整) 以下功能缺失或未完成: - **40/80/160 MHz 信道**——所有扫描与注入均为 20 MHz 模式。你能看到所有 AP,但依赖带宽的攻击受限。 - **KRACK 完整中间人模式**——测试模式可用(握手捕获 + 重放 + PN 检测),但基于双适配器的信道级中间人引擎尚未实现。 - **FragAttacks 中间人变体**——设计缺陷类 CVE(A-MSDU、密钥混合、缓存中毒)需要中间人引擎支持。 - **MAC 地址伪造**——部分实现。某些芯片组可用,其他为无操作。 - **WEP 攻击**——在分类学中已定义但未实现。毕竟现在是 2026 年。 - **MT7612U**——接收基本正常,但驱动极简,不建议用于严肃用途。 - **6 GHz 扫描**——MT7921AU 硬件支持,但接收较弱,相关研究仍在进行中。 - **Windows/Linux**——理论上可行(rusb 跨平台),但未测试也未构建。 ## 架构 ``` ┌─────────────────────────────────────────────────┐ │ CLI (TUI) │ │ prism-rs framework + crossterm │ ├─────────────────────────────────────────────────┤ │ Attack Engines (10) │ │ PMKID · WPS · DoS · AP · EAP · KRACK │ │ FragAttacks · WPA3 · Fuzz · Spectrum │ ├─────────────────────────────────────────────────┤ │ Frame Pipeline │ │ FrameGate → Parse → FrameStore → Subscribers │ │ ↓ │ │ pcap writer │ ├─────────────────────────────────────────────────┤ │ Scanner + Channel Hopper │ │ SharedAdapter (Arc) │ ├─────────────────────────────────────────────────┤ │ Protocol Stack (802.11) │ │ IEEE 802.11 · WPA/RSN · EAP · WPS · SAE │ ├─────────────────────────────────────────────────┤ │ Chip Drivers (userspace) │ │ RTL8812AU · RTL8812BU · RTL8852AU · MT7921AU │ ├─────────────────────────────────────────────────┤ │ rusb (USB) │ └─────────────────────────────────────────────────┘ ``` 约 24.5 万行 Rust 代码。1,027 个测试。应用代码中零个 unsafe 块。纯 Rust 加密(RustCrypto)。 ## 相关项目:metal-crack [metal-crack](https://github.com/RLabs-Inc/metal-crack) 是配套工具首款在 Apple Metal GPU 上运行的 WPA/WPA2 密码破解器。使用 wifikit 捕获握手,用 metal-crack 破解。M1 Max 上峰值 200K PMK/s,无 CUDA、无 OpenCL,仅需 `swift build && swift run`。 ## 贡献 这是一个 MVP(最小可行产品)。仍有大量改进空间: - **新芯片组驱动**——如果你有 USB WiFi 适配器并拥有 Linux 驱动源码,很有可能可以移植 - **40/80 MHz 支持**——厂商驱动中已存在 PHY 寄存器序列,需要移植 - **中间人引擎**——支持 KRACK 完整模式与 FragAttacks 设计缺陷类 CVE - **更好的 6 GHz 支持**——MT7921AU 硬件支持,但固件配置仍需完善 - **错误报告**——尤其来自尚未测试的硬件 如果你对 macOS 上的 WiFi 安全研究感兴趣,这可能是唯一一款无需 Linux 即可完成此类工作的工具。 ## 法律声明 本工具仅供**授权的安全测试与研究使用**。未经明确授权的 WiFi 渗透测试在大多数司法管辖区属于违法行为。你需对自身使用方式负责。 ## 许可证 MIT
标签:2.4GHz, 5GHz, 6GHz, Rust, SEO, USB无线网卡, WiFi, WiFi 6E, 云存储安全, 信道跳频, 关键词优化, 单二进制, 原生应用, 可视化界面, 命令行界面, 握手捕获, 攻击引擎, 无root, 无内核驱动, 无线侦察, 注入攻击, 用户态, 终端UI, 网络扫描, 网络流量审计, 通知系统