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 y IP 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.allimport*# Construimos la trama Ethernetether_layer = Ether()# Construimos el paquete IPip_layer = IP(dst="dirección_destino")# Construimos el encabezado RIPrip_update = RIP(cmd=2, version=2)# Configuramos la entrada RIPrip_entry = RIPEntry(addr="dirección_red", mask="máscara_red", metric=1)# Unimos todas las capas en un solo paquetepacket = ether_layer/ip_layer/rip_update/rip_entry
# Enviando el paquete a la redsendp(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.
Como cuantos somos los que hemos cursado hasta aquí ?
No importa la cantidad si la calidad si has llegado hasta aquí pero no has entendido nada no sirve estar aquí es mejor lento pero seguro.
No recuerdo el porqué hice la pregunta hace ya bastante tiempo
pero creo haberla hecho por un tutorial que deje en un curso previo al actual
Lo revisare pero creeme que no soy del tipo de persona que desacredita aunque tienes razon mi pregunta no iba por ahi.
Me disculpo por no dar contexto suficiente y haber preguntado abruptamente, pero si no es hoy entonces pronto hare la aclararacion del por que hice esta pregunta
Hola regresé.
SI ALGUIEN TIENE PROBLEMAS con que los routers no toman la dirección actualizada que les mandamos desde kali en el paquete que creamos es porque por alguna razón se reinicia zebra y pierde su configuración, por lo que tenemos que volver a acceder por telnet al puerto donde se encuentre corriendo ripd y confgurar como en las clases pasadas.
LA configuración de zebra es temporal por lo que si se reinicia la máquina se pierda.
Para guardarlo permanentemente, antes de salir de zebra (antes del último exit) se debe correr el siguiente comando:
copy run start
Rip V2 utiliza direcciones sin clase hay que configurar la mascara de red, mientras que rip1 asumen la clase de la red
Gracias por el aporte.
Después de verlo de nuevo me quedó más claro, ¿alguien me podría dar un ejemplo práctico de donde se puede usar esto (para un ataque)?
Un ejemplo practico seria facebook(dot)com como lo menciona en el video.
Usando DNS Spoofing y Scapy mas una Web Falsa de Facebook puedes obtener credenciales en TEXTO PLANO!!!!
Al alternar la tabla de enrutamiento el atacante podría redirigir tráfico hacia su servidor web, que puede tener una página web ilegitima muy similar a la que busca la víctima, la cual inocentemente introduciría sus credenciales de este sitio fraudulento.
He escuchado que después que ingresa las credenciales le arroja un mensaje de que la contraseña es incorrecta y lo alienta a que intente de nuevo, esta vez en el sitio real... todo ello sin que la víctima perciba que le robaron sus credenciales.
yo tuve problemas con el ettercap pero ya estamos de vuelta
No puedo reproducir esta clase, tengo 10 minutos esperando que cargue. No es mi conexión a internet porque otras clases si las puedo ver sin problema, pero esta no.
Alguien tiene el mismo problema?
Hola José,
¿Has intentado borrando el caché o con otro browser? Sí puedo reproducir esta clase :S Quizás alguna de esas opciones pueda funcionar.
Recuerda que puedes cambiar de servidor, eso debería de funcionar.
Lo puedes cambar desde el icono de engranaje.