$npx -y skills add SnailSploit/Claude-Red --skill offensive-wpa3-saeWPA3 / SAE (Simultaneous Authentication of Equals) attack methodology — transition-mode (mixed WPA2/WPA3) downgrade, Dragonblood side-channel attacks (CVE-2019-9494, 9495, 13377, 13456), SAE auth flooding for AP CPU exhaustion, Hash-to-Element (H2E) timing analysis, group downgra
| 1 | # WPA3 / SAE Attacks |
| 2 | |
| 3 | WPA3 fixes the offline-handshake-cracking weakness of WPA2 by replacing the 4-way PSK exchange with SAE (a Dragonfly-derived password-authenticated key exchange). The straightforward offline crack disappears — but transition-mode misconfigurations and the original SAE implementation's side-channel leaks open new paths. |
| 4 | |
| 5 | ## Quick Workflow |
| 6 | |
| 7 | 1. Verify the target advertises WPA3 (RSN IE shows AKM SAE = 8) |
| 8 | 2. Check for transition-mode (mixed WPA2 + WPA3) — easiest path |
| 9 | 3. If pure WPA3, fingerprint the AP's hostapd version for Dragonblood applicability |
| 10 | 4. Side-channel timing or cache attacks if reachable |
| 11 | 5. Otherwise, accept that offline cracking isn't viable — pivot to other surfaces |
| 12 | |
| 13 | --- |
| 14 | |
| 15 | ## Transition-Mode Downgrade |
| 16 | |
| 17 | If the AP advertises both WPA2-PSK and WPA3-SAE (transition mode for mixed-client networks), older clients can be forced onto WPA2: |
| 18 | |
| 19 | ```bash |
| 20 | # Identify transition mode in beacon frames |
| 21 | sudo airodump-ng wlan0mon -c <ch> --bssid <BSSID> |
| 22 | # Encryption column shows WPA2 WPA3 (both) |
| 23 | ``` |
| 24 | |
| 25 | Steps: |
| 26 | |
| 27 | 1. Spoof a beacon advertising **only RSN-WPA2** with the same BSSID/SSID |
| 28 | 2. Client roams to your beacon, performs WPA2 4-way handshake |
| 29 | 3. Capture handshake exactly like `offensive-wpa2-psk` |
| 30 | |
| 31 | ```bash |
| 32 | # Use hostapd-mana or airbase-ng for the WPA2-only AP advertisement |
| 33 | airbase-ng -e CorpWiFi -c 6 -W 1 wlan0mon |
| 34 | # -W 1 enables WPA, configure for WPA2-only RSN element |
| 35 | ``` |
| 36 | |
| 37 | **Why this works:** WPA3-SAE clients fall back to WPA2-PSK if the AP only advertises WPA2 — there's no protected downgrade defense in transition mode. WPA3-only mode (no transition) blocks this. |
| 38 | |
| 39 | **Mitigation defenders use:** WPA3-only networks (no WPA2). Wi-Fi 6E (6 GHz) mandates WPA3-only by spec. |
| 40 | |
| 41 | ## Dragonblood (CVE-2019-9494 / 9495 / 13377 / 13456) |
| 42 | |
| 43 | Side-channel and downgrade attacks against the SAE Hunting-and-Pecking algorithm in pre-2.10 hostapd / wpa_supplicant. |
| 44 | |
| 45 | ### Cache-Based Side-Channel |
| 46 | |
| 47 | The original SAE password-element derivation iterates a variable number of times depending on the password and MAC. Cache hits leak the iteration count. |
| 48 | |
| 49 | ```bash |
| 50 | git clone https://github.com/vanhoefm/dragonblood |
| 51 | cd dragonblood |
| 52 | |
| 53 | # Cache-based attack (requires co-located malicious code on target host — limited) |
| 54 | python3 dragontime.py --bssid AA:BB:CC:DD:EE:FF --iface wlan0mon |
| 55 | ``` |
| 56 | |
| 57 | ### Timing Side-Channel |
| 58 | |
| 59 | The same iteration count leaks via observable timing of the SAE commit phase from outside. |
| 60 | |
| 61 | ```bash |
| 62 | python3 dragontime.py --bssid AA:BB:CC:DD:EE:FF --iface wlan0mon --mode timing |
| 63 | ``` |
| 64 | |
| 65 | ### Downgrade to Weak Group |
| 66 | |
| 67 | Some implementations accept SAE with the deprecated MODP group 5 if the client requests it. Combined with cache/timing side channels, this enables offline dictionary attack. |
| 68 | |
| 69 | ```bash |
| 70 | python3 dragondrain.py wlan0mon AA:BB:CC:DD:EE:FF |
| 71 | ``` |
| 72 | |
| 73 | ### Patched Versions |
| 74 | |
| 75 | | Implementation | Fixed | |
| 76 | |---|---| |
| 77 | | hostapd / wpa_supplicant | 2.10 (April 2022) | |
| 78 | | Apple iOS / macOS | 2019 patches | |
| 79 | | Windows | KB-batched 2019-2020 | |
| 80 | | Embedded routers | Often unpatched — high hit rate on consumer SOHO | |
| 81 | |
| 82 | ## Hash-to-Element (H2E) |
| 83 | |
| 84 | WPA3 R2 introduced H2E to replace the iteration-leaky Hunting-and-Pecking. H2E is constant-time. If the AP advertises H2E in the RSNXE element, Dragonblood-class attacks don't apply. |
| 85 | |
| 86 | ```bash |
| 87 | # Wireshark filter |
| 88 | wlan.rsnx.field.h2e |
| 89 | ``` |
| 90 | |
| 91 | If H2E is present and required (no Hunting-and-Pecking fallback), only the spec is left to attack — abandon SAE attacks and pivot to other surfaces (PMF check, evil-twin via EAP if Enterprise, supply-chain via management frames). |
| 92 | |
| 93 | ## SAE Auth Flooding (DoS) |
| 94 | |
| 95 | SAE's commit phase requires the AP to do heavy elliptic-curve work per association attempt. Floods can exhaust CPU on lower-end APs, denying service to legitimate clients. |
| 96 | |
| 97 | ```bash |
| 98 | sudo mdk4 wlan0mon a -a AA:BB:CC:DD:EE:FF -m -s 1024 |
| 99 | # Auth attack mode -a, multiple per second -s 1024 |
| 100 | ``` |
| 101 | |
| 102 | **This is a DoS — only with explicit authorization.** Modern enterprise APs use anti-clogging tokens to throttle SAE-flood attacks; consumer routers often don't. |
| 103 | |
| 104 | ## 6 GHz / Wi-Fi 6E Implications |
| 105 | |
| 106 | The 6 GHz band (Wi-Fi 6E, channels 1–233 in the 5925–7125 MHz range) requires: |
| 107 | |
| 108 | - **WPA3-only** (no transition mode) |
| 109 | - **PMF (802.11w) mandatory** (deauth/disassoc protected) |
| 110 | - **OWE (Opportunistic Wireless Encryption)** for open networks |
| 111 | |
| 112 | Net effect: most pre-WPA3 attacks (deauth, transition-mode downgrade) don't apply on 6 GHz. Pure SAE side-channel, evil-twin, or out-of-band attacks remain viable. |
| 113 | |
| 114 | ## Detection Consider |