关于 offensive-wpa3-sae
面向无线安全测试人员的 WPA3 / SAE 攻击技能指南,涵盖过渡模式降级、Dragonblood 侧信道和认证洪泛。它还说明 H2E、修补版本及 6 GHz 网络对攻击适用性的影响。
主要功能
- 01识别 WPA3 与过渡模式配置
- 02评估 SAE 降级和侧信道风险
- 03检查 H2E 与实现修补状态
- 04测试 SAE 认证洪泛风险
- 05梳理检测线索及适用条件
适用场景
- 01评估混合 WPA2 / WPA3 网络的降级风险
- 02检查嵌入式接入点的 Dragonblood 适用性
- 03在授权范围内评估 SAE 拒绝服务风险
- 04判断 6 GHz 网络的攻击面
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-wpa3-sae安装后在 Claude Code 中输入/offensive-wpa3-sae确认已加载。
详细介绍
WPA3 / SAE 攻击
WPA3 通过用 SAE(一种源自 Dragonfly 的密码认证密钥交换)取代 4 次握手 PSK 交换,修复了 WPA2 可离线破解握手的弱点。直接离线破解不再可行,但过渡模式配置错误以及原始 SAE 实现中的侧信道泄漏开辟了新的攻击路径。
快速工作流
- 确认目标广播了 WPA3(RSN IE 显示 AKM SAE = 8)
- 检查是否启用了过渡模式(WPA2 + WPA3 混合)——这是最简单的路径
- 如果是纯 WPA3,识别 AP 的 hostapd 版本,判断 Dragonblood 攻击是否适用
- 如果可行,尝试侧信道计时攻击或缓存攻击
- 否则,接受离线破解不可行这一事实,转向其他攻击面
过渡模式降级
如果 AP 同时广播 WPA2-PSK 和 WPA3-SAE(供客户端混用的过渡模式),就可以迫使旧客户端使用 WPA2:
# Identify transition mode in beacon frames
sudo airodump-ng wlan0mon -c <ch> --bssid <BSSID>
# Encryption column shows WPA2 WPA3 (both)
步骤:
- 使用相同的 BSSID/SSID,伪造一个仅广播 RSN-WPA2 的信标
- 客户端漫游到你的信标,并执行 WPA2 4 次握手
- 像
offensive-wpa2-psk中一样捕获握手
# Use hostapd-mana or airbase-ng for the WPA2-only AP advertisement
airbase-ng -e CorpWiFi -c 6 -W 1 wlan0mon
# -W 1 enables WPA, configure for WPA2-only RSN element
原理: 如果 AP 仅广播 WPA2,WPA3-SAE 客户端就会回退到 WPA2-PSK——过渡模式没有防止降级的保护机制。仅 WPA3 模式(无过渡模式)可以阻止这种攻击。
防御者采用的缓解措施: 使用仅 WPA3 网络(不启用 WPA2)。按照规范,Wi-Fi 6E(6 GHz)必须采用仅 WPA3 模式。
Dragonblood(CVE-2019-9494 / 9495 / 13377 / 13456)
针对 2.10 之前版本的 hostapd / wpa_supplicant 中 SAE 猎取与探测算法的侧信道攻击和降级攻击。
基于缓存的侧信道
原始 SAE 密码元素推导过程的迭代次数会因密码和 MAC 而异。缓存命中会泄漏迭代次数。
git clone https://github.com/vanhoefm/dragonblood
cd dragonblood
# Cache-based attack (requires co-located malicious code on target host — limited)
python3 dragontime.py --bssid AA:BB:CC:DD:EE:FF --iface wlan0mon
计时侧信道
通过从外部观测 SAE 提交阶段的计时,也会泄漏相同的迭代次数。
python3 dragontime.py --bssid AA:BB:CC:DD:EE:FF --iface wlan0mon --mode timing
降级至弱群组
如果客户端请求,某些实现会接受使用已弃用的 MODP 群组 5 的 SAE。结合缓存或计时侧信道,可发动离线字典攻击。
python3 dragondrain.py wlan0mon AA:BB:CC:DD:EE:FF
已修复版本
| 实现 | 修复版本 |
|---|---|
| hostapd / wpa_supplicant | 2.10(2022 年 4 月) |
| Apple iOS / macOS | 2019 年补丁 |
| Windows | 2019—2020 年通过 KB 发布补丁 |
| 嵌入式路由器 | 通常未打补丁——消费级 SOHO 设备的命中率很高 |
哈希到元素(H2E)
WPA3 R2 引入 H2E,以取代会泄漏迭代次数的猎取与探测算法。H2E 为恒定时间算法。如果 AP 在 RSNXE 元素中广播 H2E,则 Dragonblood 类攻击不适用。
# Wireshark filter
wlan.rsnx.field.h2e
如果存在 H2E 且要求必须使用(不回退到猎取与探测算法),那么就只剩下针对规范本身的攻击——放弃 SAE 攻击,转向其他攻击面(检查 PMF、如果使用 Enterprise 则通过 EAP 发动邪恶双胞胎攻击,或通过管理帧进行供应链攻击)。
SAE 身份验证洪泛(DoS)
SAE 提交阶段要求 AP 对每次关联尝试执行大量椭圆曲线运算。洪泛攻击可能耗尽低端 AP 的 CPU,导致合法客户端无法获得服务。
sudo mdk4 wlan0mon a -a AA:BB:CC:DD:EE:FF -m -s 1024
# Auth attack mode -a, multiple per second -s 1024
这是 DoS 攻击——仅限获得明确授权时进行。 现代企业 AP 使用防拥塞令牌来限制 SAE 洪泛攻击;消费级路由器通常没有这类机制。
6 GHz / Wi-Fi 6E 的影响
6 GHz 频段(Wi-Fi 6E,5925–7125 MHz 范围内的信道 1–233)要求:
- 仅 WPA3(无过渡模式)
- 必须启用 PMF(802.11w)(保护去认证/解除关联)
- 开放网络必须使用 OWE(机会性无线加密)
总体而言,大多数 WPA3 之前的攻击(去认证、过渡模式降级)不适用于 6 GHz。纯 SAE 侧信道攻击、邪恶双胞胎攻击或带外攻击仍然可行。
检测注意事项
WPA3 的企业级防御方式与 WPA2 大致相同——WIDS 可捕获:
- 通过指纹不匹配(IE 顺序、厂商特定信息、信标时序)检测信标欺骗(过渡模式降级)
- 通过每个源 MAC 地址的关联速率检测 SAE 泛洪
- 检测重复的 SAE 提交失败(时序攻击遥测)
针对已修补的现代 hostapd 发起 Dragonblood 级别攻击并取得成功的可能性很低。消费级 SOHO 和嵌入式 AP 仍在影响范围内。
测试速查表
# 1. Identify mode
sudo airodump-ng wlan0mon -c <ch> --bssid <BSSID>
# Encryption: WPA2 + WPA3 → transition; WPA3-only → SAE-only
# 2. Transition-mode downgrade attempt
sudo airbase-ng -e <ESSID> -c <ch> -W 1 -z 4 wlan0mon # WPA2-RSN advertised only
# 3. Wait for client roam, capture WPA2 handshake (handoff to offensive-wpa2-psk)
# 4. If pure WPA3, fingerprint hostapd
# (passive analysis of beacon IE order + version-specific behaviors)
# 5. Run Dragonblood test scripts if pre-2.10 hostapd suspected
python3 dragondrain.py wlan0mon <BSSID>
python3 dragontime.py --bssid <BSSID> --iface wlan0mon
# 6. Document residual viable attacks; pivot to evil-twin / EAP / RF if pure WPA3 R2
关键参考资料
- Dragonblood:dragonblood.net(Vanhoef + Ronen)
- IEEE 802.11-2020(包含 WPA3 的合并规范)
- WFA WPA3 规范
- hostapd 2.10 发行说明
- 来源:https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md