ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

wifit3 WPS PBC 监听窗口实战:120秒倒计时与消息极性反转原理详解

wifit3 WPS PBC 监听窗口实战:120秒倒计时与消息极性反转原理详解 wifit3 WPS PBC 监听窗口实战120秒倒计时与消息极性反转原理详解【免费下载链接】wifit3Wifite but USB-only cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3wifit3是一个纯 USB、跨平台的 Wifite 风格 WiFi 安全评估工具其中 WPS PBCPush-Button推按钮监听捕获功能可以自动嗅探路由器 WPS 按钮打开的约 120 秒配对窗口并通过消息极性反转的 WSC 握手抢在合法设备之前拿到 PSK 密码。本文带你弄懂这套机制的完整原理。什么是 WPS PBC 监听120 秒倒计时从何而来普通 PIN 模式下wifit3 扮演外部注册者Registrar对 AP 发起 EAP/WSC 会话而 PBC 模式完全不同当你按下路由器的 WPS 按钮AP 自己变成 Registrar并打开一个约 120 秒的行走窗口walk window代码中记为WPS_PBC_WALK_TIME。在这段窗口内任何完成 WSC 握手的加入者Enrollee都能从 M8 消息中拿到加密的网络凭据——wifit3 扮演的就是这个 Enrollee在倒计时结束前抢先完成握手。这正是 src/wifit3/campaigns/wps/README.md 中 PBC (push-button) capture 一节描述的机制PBC 反转了双方角色消息极性随之翻转。如何发现按钮被按下被动的窗口监听检测本身是被动且常开的不需要发一个包窗口开启期间AP 的 Beacon / Probe-Response 会广播两个信号Device Password ID 0x0004即 PBC且Selected Registrar 1解析 Beacon 的 WPS 厂商 IE 后模型属性wps_device_password_id与wps_selected_registrar被置位wps_pbc_active属性src/wifit3/models/access_point.py#L124-L132即变为True。wifit3 用边沿触发OFF→ON 的那一刻来识别新窗口打开而不是持续轮询状态src/wifit3/campaigns/pbc.py 中的PbcWatcher.new_windows()用集合差集找出刚打开的 AP 列表扫描界面每秒轮询一次同一时刻最多串行发起一次捕获避免多窗口互相干扰若某 AP 的 PSK 已入库Vault 中则直接跳过不重复浪费时间。⚠️ 两个现实陷阱部分 AP 只在按钮被按住足够久时才广播该状态另一些则从不广播。为此项目提供了主动探测脚本 scripts/wps/pbc_probe.py--now参数可立即尝试覆盖看不见广播的盲区。消息极性反转PIN 攻击与 PBC 捕获的镜像这是理解 PBC 捕获的关键。两种模式下同一组 WSC 消息 M1~M8 的发送方向完全对调阶段PIN 攻击我们是 RegistrarPBC 捕获AP 是 Registrar开局我们发 EAPOL-Start等 M1AP 发 WSC_Start我们回M1公钥交换我们发 M2AP 回 M3AP 发M2我们回M3半程验证我们发 M4AP 回 M5 或 NACKAP 发M4我们回M5终程验证我们发 M6AP 回 M7 或 NACKAP 发M6我们回M7结果我们解 AP 的 M5/M7AP 发 M8内含 PSK但注意EAP 层的请求/响应极性不变——AP 永远是认证方所以 EAP 帧封装可以直接复用。整个加入者侧状态机实现于 src/wifit3/campaigns/wps/enrollee.py收到 M2 后派生 DH 共享密钥与 AuthKey/KeyWrapKey回 M3 提交 E-Hash依次应答 M4→M5、M6→M7最后从 M8 解密出 PSK 并发送 WSC_DONE 收尾。PBC 有一个巧妙之处它没有秘密。设备密码是公开的固定常数00000000见 src/wifit3/dot11/wsc/messages.py#L106-L107 的PBC_PASSWORD双方由此推导出相同的 PSK1/PSK2E-Hash 自然校验通过。握手的保密性完全依赖 Diffie-Hellman 密钥——见 [assets/wifit3-3-focus-wpspbc.png] 对应的 Focus 界面会在目标 AP 出现 PBC 窗口时自动发起捕获。M8 解密 PSK为什么必须主动参与而不能旁听M8 里的凭据SSID Network Key用KeyWrapKey加密而 KeyWrapKey ← AuthKey ← DHKey ← g^(ab) mod pRFC-3526 MODP 1536 位群。这意味着被动旁听无法破解窃听者没有任一方 DH 私钥求解 1536 位计算 Diffie-Hellman 不可行唯一拿到 PSK 的路径成为完成握手的 Enrollee与合法设备赛跑抢先把 M1~M7 走完重叠时不自杀如果合法设备也同时接入AP 会报MULTIPLE_PBC_DETECTEDconfig-error 12wifit3 的策略是忽略该 NACK、绝不主动退场——AP 会中止真正重叠的会话我们只需比对方快一步完成即可。界面操作与相关源码在扫描界面按w键可在「关闭 / 仅选中 / 全局」三种 PBC 捕获模式间切换src/wifit3/ui/screens/scanner.py#L106Focus 界面则会在当前目标 AP 打开 PBC 窗口时自动捕获。捕获编排器WpsPbcCapturesrc/wifit3/campaigns/pbc.py#L39-L120负责租借信道、以伪造 MAC 关联到 AP、注入 WPS 关联 IE并给状态机配置了 40 秒总超时、8 秒消息超时与 4 次 ACK 重发等实战参数。 延伸阅读全部为仓库内相对路径WPS 攻击架构总览src/wifit3/campaigns/wps/README.md加入者侧状态机src/wifit3/campaigns/wps/enrollee.pyPBC 捕获编排器src/wifit3/campaigns/pbc.py硬件实测探针scripts/wps/pbc_probe.py状态机测试tests/campaigns/test_wps_pbc.py 提醒wifit3 的 WPS PBC 捕获属于主动传输类操作请务必只在本人拥有或已获授权的网络上测试。【免费下载链接】wifit3Wifite but USB-only cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表