wifit3 EAPOL聚合视图:如何判断捕获的握手是否完整可破解
【免费下载链接】wifit3Wifite but USB-only & cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3
wifit3 是一款跨平台的 USB Wi-Fi 审计工具(Wifite 的纯 USB 重写版),它的 EAPOL 聚合视图能把刷屏的 EAPOL 帧折叠成一棵"4-Way Handshake 树",直观告诉你捕获的 WPA 握手是否完整、能否喂给 hashcat 破解。下面用 4 个步骤教会新手读懂这棵树。
为什么需要聚合视图:告别 M1 刷屏
抓握手机械时,设备会疯狂重传 EAPOL 帧。如果每帧都打一行日志,你看到的是M1 …M1 …M3 …的"复制粘贴墙"。
wifit3 的 eapol_aggregate.py(EapolAggregator类)按客户端 MAC 缓冲这些帧,最终输出一棵树,且每个消息只展示"看到的最完整代表帧":
4-Way Handshake · Client: aa:bb:cc:dd:ee:ff ├─► M1 ×20 (AP→Client) ANonce✓ PMKID✓ ├─► M2 (AP←Client) SNonce✓ MIC✓ EAPOL✓ └─► ✓ Valid 4-Way Handshake (M1+M2)M1 ×20表示 M1 重传了 20 次被聚合成一行——这正是聚合的价值。
步骤1:看树的叶子判断"可破解"状态
树的最后一行是裁决(verdict),有三种颜色形态:
| 叶子形态 | 含义 | 下一步 |
|---|---|---|
🟢✓ Valid 4-Way Handshake (M1+M2) | 完整可破解,已导出.hc22000/.pcap | 直接开跑 hashcat-m 22000 |
🟡✗ SAE 4-Way Handshake (not crackable) | 结构完整但 AKM 不可离线爆破(SAE/FT/EAP/OWE) | 换目标或等待 WPA2 过渡模式 |
| 无裁决叶子(只有 Mx 分支) | 部分捕获:帧没凑齐,静默 3 秒后自动落盘展示 | 继续等待或对客户端补发 deauth |
关键点:M4 都不需要。只要 M1+M2 成对成立,wifit3 立即冲印(flush)整棵树并弹出Handshake captured提示,后面的 M3/M4 重传会被自动抑制,直到出现新的 ANonce 实例(显示为capture ×2的紧凑单行)。
步骤2:读懂字段勾选框 ANonce✓ / SNonce✓ / MIC✓
每行 Mx 后面跟着一组字段标记,对应 hashcat-m 22000真正需要的内容(逻辑在 handshake.py 的describe()):
- M1(ANonce 提供者):只需
ANonce✓(32 字节非零 nonce);PMKID✓则预告了一条可离线爆破的 PMKID; - M2(关键帧/keystone):必须
SNonce✓ + MIC✓ + EAPOL✓三项全绿——EAPOL✓ 代表 802.1X 负载完整(≥97 字节),截断的 M2 会被判为无用; - M4(备选关键帧):要求与 M2 相同,且 SNonce 必须非零(回显值)才可用。
也就是说:M1 给"盐"(ANonce),M2 给"锁芯"(SNonce+MIC+完整 EAPOL),两边都齐了才构成可破解对。
步骤3:PMKID 是 M1 的隐藏彩蛋
如果 M1 行出现PMKID✓,即使握手树最终没凑齐 M2,你也已经收获了一个 PMKID 哈希(同样走.hc22000导出)。这是 wifit3 的 PMKID 收获功能(见 SUPPORTED-HARDWARE 文档 各芯片能力说明)——主动关联或被动嗅探均可。
步骤4:部分捕获怎么办(3 秒静默规则)
客户端只发了 M1 就断开?聚合器不会一直等:某客户端静默 ≥3 秒(settle_s)后,已缓冲的部分帧会作为"无裁决"树落盘展示一次,而不是永远藏在缓冲区里。
实用技巧:
- 看到只有
M1 ×N的树 → 说明 deauth 打到了但客户端还没重连握手,再发一轮 deauth; - 看到
✗ SAE … (not crackable)→ 该 AP 已跑 WPA3,尝试 wifit3 的 EvilTwin 降级功能克隆 AP 诱捕; - 看到绿色
✓ Valid→ 收工,saved: captures/…_handshake.hc22000保存提示会作为树的收尾叶子出现在同一棵树内。
深入阅读
- 聚合器实现:src/wifit3/ui/eapol_aggregate.py
- 事件检测器(每帧 EAPOL / 握手完成 / PMKID 事件的区分):src/wifit3/ui/capture_events.py
- 可破解性判定(AKM 门控、配对算法):src/wifit3/crack/handshake.py
- 单元测试(含各种树形态断言):tests/ui/test_eapol_aggregate.py
一句话总结:绿叶子 = 可破解,黄叶子 = 完整但白抓(SAE/EAP 等),无叶子 = 还差几帧补一发 deauth。
【免费下载链接】wifit3Wifite but USB-only & cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考