wifit3 WPS PIN失败日志完全解读:FIRST_HALF 与 SECOND_HALF 错误到底代表什么
【免费下载链接】wifit3Wifite but USB-only & cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3
使用wifit3对开启 WPS 的路由器发起PIN 破解时,终端日志会不断滚动出一串串 PIN 和判定结果。新手最常困惑的两个词就是FIRST_HALF(first half wrong,前半错误)和SECOND_HALF(second half wrong,后半错误)。本文用通俗的方式讲清楚:这两个错误分别代表什么、为什么破解总次数约 11,000 次、看到这些日志时你该读出了什么信号,并附 wifit3 界面示意,帮助你在实测时快速读懂每一次尝试的进度。
一、为什么 WPS PIN 被拆成"前半"和"后半"
wifit3 是一款跨平台(Linux / Windows / macOS)的 USB 无线审计工具,采用纯 Python 实现,内置驱动栈,无需 aircrack-ng 或 reaver 等外部依赖。它的 WPS PIN 模块位于 src/wifit3/campaigns/wps/ 与 src/wifit3/campaigns/pin.py。
一个 8 位 WPS PIN 在协议层面被拆成两部分:
| 部分 | 位 | 自由位数 | 说明 |
|---|---|---|---|
| 前半 P1 | 第 1~4 位 | 4 位 | 独立校验 |
| 后半 P2 | 第 5~8 位 | 3 位自由 + 1 位校验和 | 第 8 位由前 7 位算出 |
正因为路由器的 WPS 固件对这两半分别判定,wifit3 才能把暴力破解从 10⁸ 次降到约11,000 次(前半 10⁴ + 后半 10³)。拆分与拼装逻辑见 pins.py。
二、两种失败错误的准确含义
判定依据来自每次尝试时路由器回应的消息阶段(M1~M7 的 WSC 握手)。wifit3 把每次尝试的结果定义为一个枚举,见 registrar.py:
PinResult.SUCCESS PinResult.FIRST_HALF_WRONG # first_half_wrong PinResult.SECOND_HALF_WRONG # second_half_wrong PinResult.TIMEOUT / PROTO_ERROR / ABORTEDFIRST_HALF(前半错误)
含义:你猜错的前 4 位(P1)不对,路由器直接拒绝,根本没进入后半判定。
- 触发时机:wifit3 发出 M4 之后,路由器没有回 M5,而是回了 NACK / EAP-FAIL 或超时。
- 日志典型长这样:
1234 → first half wrong [M4] - 结论:这个前 4 位是死路,丢弃它,换一个前 4 位继续。
SECOND_HALF(后半错误)
含义:前 4 位猜对了(路由器已放行到 M5),但你猜错的后 4 位(P2)不对。
- 触发时机:路由器成功到达 M5,说明前半正确;wifit3 再发 M6 之后,路由器回 NACK / 超时或没回 M7。
- 日志典型长这样:
1234 0365 → second half wrong [M6] - 结论:前 4 位已锁定成功,只需继续尝试后 3 位(1000 种)即可撞出完整 PIN。
⚠️ 一个容易忽略的要点:
second half wrong并不是"坏消息",反而是重大进展——它等于告诉你前半已经对了。源码中first_half_ok属性正是由SECOND_HALF_WRONG或SUCCESS推导出来的(见 registrar.py)。
日志行的生成逻辑集中在_log_attempt方法中,每个 PIN 只打一行简洁结论,方便你一眼分辨进度。
三、日志状态对照表(实测速查)
| 你看到的日志 | 对应内部结果 | 真实含义 | 下一步动作 |
|---|---|---|---|
… first half OK [M5] | SECOND_HALF_WRONG | 前 4 位正确 | 锁定前半,转入后半扫描 |
… first half wrong [M4] | FIRST_HALF_WRONG | 前 4 位错误 | 换前 4 位继续 |
… second half wrong [M6] | SECOND_HALF_WRONG | 前半对、后半错 | 保留前半,换后 3 位 |
WPS PIN recovered/ 绿色成功 | SUCCESS | 完整 PIN 命中,取回 PSK | 结束,导出密钥 |
no reply after M4/M6 | 超时推断 | 路由器静默丢弃,按"错"处理 | 自动重试若干次后放行 |
四、读懂日志后的实用建议
- 优先找"first half OK":一旦日志出现前半正确的行,说明已进入最后的 1000 次冲刺,距离成功只剩很短时间,请耐心等它跑完后半。
- 别盯着单次失败焦虑:
first half wrong是 10,000 次前半扫描的正常产出,属于高频"噪音",只有first half OK才是真正的里程碑。 - 目标选择看 WPS 列:在扫描器(见上图)的 WPS 列中标记了锁形图标的设备才支持 WPS 攻击;先确认
WPS: 1.0且有 PIN 能力再开始。 - 警惕锁机:部分路由器连续多次猜错后会临时"锁 WPS",日志会出现
Setup Locked或refused: ...。wifit3 内置了 lock 检测与自适应退避,会自动学习该路由器的锁定时长并等待,无需手动干预。
五、小结
一句话记住核心:FIRST_HALF= 前 4 位错(卡在 M4),SECOND_HALF= 前 4 位对、后 4 位错(卡在 M6)。看到second half wrong就离成功最近。wifit3 把这套复杂的 WSC 握手细节全部封装在 src/wifit3/campaigns/wps/README.md 描述的模块里,你只需在 Focus 页签点击WPS PIN按钮,然后读懂上面这张状态表即可。
免责声明:wifit3 直接操作 USB 硬件寄存器,请仅用于你拥有或已获明确授权的自有网络与设备,遵守当地法律法规。
【免费下载链接】wifit3Wifite but USB-only & cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考