☰
wifit3 PMKID采集完整教程:主动关联与被动嗅探两种模式的区别
2026/9/30 10:58:15 网站建设 项目流程

wifit3 PMKID采集完整教程:主动关联与被动嗅探两种模式的区别

【免费下载链接】wifit3Wifite but USB-only & cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3

wifit3 是一款纯 Python 实现的跨平台 Wi-Fi 审计工具,只依赖 USB 无线网卡即可在 Linux、Windows 和 macOS 上完成PMKID 采集。本教程讲清楚它的两种采集模式——被动嗅探与主动关联——各自的原理、适用场景和操作步骤,帮助你用最少的动作拿到可离线破解的WPA*01哈希。

什么是 PMKID,为什么值得采集?

PMKID 是 WPA/WPA2 网络在 EAPOL M1 消息中附带的一段 16 字节密钥摘要(Key Derivation Element)。与需要"踢下线客户端"才能拿到的四次握手不同,PMKID 只需要 AP 自己吐一次 M1 即可获取,因此:

  • 不依赖客户端活动:没有在线设备也能尝试采集;
  • 直接离线破解:配合 SSID 用 hashcat-m 22000破解,无需重放攻击;
  • 风险更低:被动模式下不发送任何一帧,网络里完全无感知。

wifit3 把这两种策略做进了同一个界面:聚焦目标 AP 后,日志区默认处于被动监听,点击PMKID按钮则切换为主动关联攻击。核心实现分别在 pmkid.py(主动攻击)与 parser.py(被动解析 M1 中的 PMKID KDE)。

快速开始:准备硬件与启动 wifit3

硬件要求:至少一块支持的 USB 无线网卡(如 ALFA AWUS036ACS、TP-Link Archer T4U v3、Netgear A9000 等),完整清单见 SUPPORTED-HARDWARE.md。

三种启动方式:

  1. 预编译二进制(推荐):下载对应平台的单文件可执行,Windows 直接运行,Linux/macOS 加执行权限后启动;
  2. 源码运行:uv sync && uv run wifit3;
  3. 自行打包:uv run pyinstaller wifit3.spec --noconfirm --clean。

一次性驱动配置:插入网卡、在启动界面点START,wifit3 会自动接管硬件——Linux 通过pkexec写入 udev 权限,Windows 通过 UAC 安装 WinUSB,全程在应用内完成,无需折腾内核驱动。

被动嗅探模式:静默监听 PMKID

选中目标进入聚焦界面后,wifit3 默认就是被动监听状态,日志显示:

Passively Listening for ├─ Crackable 4-Way Handshakes └─ Crackable PMKIDs

它的原理:网卡监听目标信道上的所有 EAPOL 帧,解析器一旦发现某条 M1 携带了非全零的 PMKID KDE,且该 AP 使用 PSK(可离线破解),立即去重入库并落盘为.hc22000文件,日志出现✓ PMKID captured。

特点:

  • ✅ 零注入、零解关联,行为上等同于一台普通接收设备;
  • ✅ 长期挂后台即可,任何客户端重连都会送来 M1;
  • ⏳ 缺点:完全看运气,AP 不广播 PMKID 或长时间无人重连就采不到。

主动关联模式:伪造客户端触发 M1

被动等了很久没结果?按p或点击PMKID按钮启动主动关联攻击。wifit3 会伪造一个随机客户端 MAC,按 pmkid.py 中定义的四步序列执行:

  1. 注入 Auth Req(开放系统认证,seq=1);
  2. 等待 AP 的 Auth Resp,确认它愿意响应;
  3. 注入 Assoc Req,RSN IE 中强制 PSK AKM;
  4. 等待 AP 回发 EAPOL M1——一旦到达立即发 3 帧解关联"离场",把 AP 从重传状态中释放;若 AP 始终沉默则轮换 MAC 重试(默认 3 轮)。

特点:

  • ✅ 成功率远高于被动,多数发送 PMKID KDE 的 WPA2-PSK AP 几秒内得手;
  • ⚠️ 会向目标 AP 发送注入帧,AP 日志中可见陌生 MAC 的认证尝试,仅限对自己拥有或已获授权的网络使用。

两种模式怎么选?一张表看懂

对比项被动嗅探主动关联
是否发送帧否是(Auth + Assoc + Deauth)
是否依赖客户端活动是否
速度不确定,可能数小时通常几秒到十几秒
隐蔽性完全无感AP 侧可见异常认证
适用场景长时间驻点、高安全敏感环境自有网络、授权渗透测试

推荐策略:先进入被动监听挂 10~30 分钟;确认目标长期无客户端活动且你已获授权,再切主动模式收尾。

采集到的 PMKID 如何离线破解

成功采集后,文件自动保存到captures/目录,扩展名为.hc22000,行格式为WPA*01*<pmkid十六进制>*<AP MAC>*<STA MAC>*<SSID十六进制>,由 hc22000_format.py 生成。喂给 hashcat 即可:

hashcat -m 22000 captures/xxx_pmkid.hc22000 rockyou.txt

同一 AP 的 PMKID 会按(BSSID, 客户端MAC)去重,重复采集不会产生垃圾数据(去重逻辑见 capture_events.py)。

采集失败?对照这 4 种原因

界面日志(渲染逻辑见 pmkid_log.py)会明确给出失败原因:

日志提示含义建议
PMF RequiredAP 强制 802.11w 保护管理帧无法采集,跳过
No PSK AKMAP 只提供 SAE(WPA3-only)等换用 EvilTwin 降级或握手采集
No PMKID in M1AP 回 M1 但不带 PMKID KDE该 AP 不暴露,改被动或握手
M1 not receivedAP 对 Auth/Assoc 无响应已自动轮换 MAC 重试 3 轮,仍失败则放弃

另外,隐藏 SSID 的 AP 无法走主动模式(无法关联),界面上该按钮会置灰并提示原因。

写在最后

wifit3 的 PMKID 功能把"被动监听 + 主动关联"收敛在一个聚焦界面里:被动模式是零副作用的守株待兔,主动模式是伪造客户端的定向收割,采集结果统一落盘为可直接进 hashcat 的.hc22000文件。请记住工具只服务于授权测试——wifit3 绕过操作系统 Wi-Fi 栈直接操作 USB 寄存器,权限越大,责任越大。

【免费下载链接】wifit3Wifite but USB-only & cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询