Inyección de Paquetes y Monitoreo de Tráfico en Redes
Clase 15 de 33 • Curso de Pentesting a Redes
Resumen
¿Cómo crear un ataque usando Scapy y RIP?
En esta guía te sumergirás en los conceptos de encapsulamiento de paquetes con Scapy para fabricar un ataque basado en RIP (Protocolo de Información de Enrutamiento). Además, te ayudará a comprender cómo manipular redes y redirigir el tráfico hacia tu propio servidor. Es esencial tener claros ciertos conceptos básicos sobre redes y protocolos para maximizar el aprendizaje.
¿Qué es Scapy y cómo se utiliza para crear paquetes?
Scapy es una potente herramienta de manipulación de paquetes de red en Python. Con esta, puedes crear, modificar, enviar y capturar paquetes de casi cualquier tipo. Para este caso práctico, se utiliza Scapy con la finalidad de modificar el tráfico enviado a través de un protocolo RIP.
- Encapsulamiento de paquetes: Se construyen paquetes utilizando los módulos de Scapy correspondientes, como
Ether
para tramas Ethernet yIP
para paquetes IP. - Direcciones y puertos: Definen la dirección de destino y la dirección de origen, además de ajustar los puertos específicos involucrados.
¿Qué es RIP y cómo se actualizan sus tablas?
RIP es un protocolo de enrutamiento que utiliza actualizaciones de sus tablas para compartir información entre routers sobre las redes conectadas. El uso que se le da en este contexto es malintencionado, buscando redirigir tráfico intencionadamente.
- RIP versión 2: Ofrece la capacidad de trabajar con direcciones sin clase mediante la inclusión de máscaras de subred manuales, a diferencia de su antecesor que no lo permitía.
- Actualización de tablas: El comando
cmd=2
en Scapy se utiliza para indicar una actualización de tablas.
Ejemplo de creación de un paquete con Scapy:
Aquí tienes un código sencillo para entender cómo se podría elaborar un paquete con Scapy.
from scapy.all import *
# Construimos la trama Ethernet
ether_layer = Ether()
# Construimos el paquete IP
ip_layer = IP(dst="dirección_destino")
# Construimos el encabezado RIP
rip_update = RIP(cmd=2, version=2)
# Configuramos la entrada RIP
rip_entry = RIPEntry(addr="dirección_red", mask="máscara_red", metric=1)
# Unimos todas las capas en un solo paquete
packet = ether_layer/ip_layer/rip_update/rip_entry
# Enviando el paquete a la red
sendp(packet, iface="interfaz", loop=1, inter=2)
¿Qué sucede al enviar estos paquetes?
Una vez que has configurado tu paquete RIP y lo envías a través de la red, comienza una cascada de efectos:
- Enrutamiento incorrecto: Los routers conectados empezarán a recibir las falsificadas actualizaciones de RIP, que les indican que cierta dirección IP debe ser alcanzada a través de tu máquina.
- Cambios en las tablas de enrutamiento: Esto llevará a que se modifiquen las tablas de enrutamiento de estos routers, incorporando información falsa que redirige el tráfico a un destino no legítimo.
¿Cómo comprobar la efectividad del enfoque?
Al revisar la tabla de enrutamiento de un router, se puede visualizar cómo ha sido alterada para incluir la nueva dirección IP que debería ser redirigida hacia tu máquina.
- Verificación en la consola del router: Confirma las rutas recién agregadas mostrando que el tráfico para ciertas IP será redirigido de manera incorrecta.
- Importancia de la métrica: La métrica indica la cantidad de saltos (hops) hasta el destino; minimizarla puede hacer que las rutas inyectadas se usen preferencialmente.
Reflexiones finales y próximos pasos
Este es tan solo el inicio para entender cómo funcionan los ataques de red mediante manipulación de paquetes y protocolos. Es fundamental consolidar y expandir tus conocimientos de redes para realizar análisis en entornos más seguros y controlados.
Continúa aprendiendo e investigando sobre prácticas de seguridad éticas y recuerda que el conocimiento es una herramienta poderosa para el bien común.