19 KiB
Attaques EIGRP
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
Cette page a été copiée depuis https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9
Attaquer le protocole EIGRP
EIGRP (Enhanced Interior Gateway Routing Protocol) est un protocole de routage dynamique. C'est un protocole de vecteur de distance. S'il n'y a pas d'authentification et de configuration des interfaces passives, un intrus peut interférer avec le routage EIGRP et causer une empoisonnement des tables de routage. De plus, le réseau EIGRP (en d'autres termes, le système autonome) est plat et n'a pas de segmentation en zones. Que cela pourrait-il signifier pour un attaquant ? Eh bien, s'il injecte une route, il est probable que cette route se propage dans tout le système autonome EIGRP.
Tout d'abord, attaquer un système EIGRP autonome nécessite d'établir une relation de voisinage avec un routeur EIGRP légitime, ce qui ouvre de nombreuses possibilités, de la reconnaissance de base à diverses injections.
Pour cela, j'utiliserai FRRouting. Il s'agit d'un logiciel open source conçu pour créer un routeur dans Unix et Linux. FRRouting vous permet de mettre en place un routeur virtuel qui prend en charge BGP, OSPF, EIGRP, RIP et d'autres protocoles. Tout ce que vous avez à faire est de le déployer sur votre système d'attaquant et vous pouvez en fait prétendre être un routeur légitime dans le domaine de routage. Je vais vous montrer comment déployer FRR sur votre système dans la section suivante.
Intelligence réseau
Se connecter au domaine de routage nous permet de faire l'énumération et la reconnaissance des réseaux et de ne pas passer beaucoup de temps à scanner. Cette méthode vous fait gagner beaucoup de temps précieux. De plus, en scannant, vous pouvez vous faire repérer devant les systèmes de sécurité IPS/IDS. Pour moi, la connexion au domaine et l'énumération sont le vecteur d'attaque sur les domaines de routage qui vous donne le plus d'impact. Mais pour cela, vous devez déployer FRRouting. C'est parti.
Il est nécessaire de modifier le fichier de configuration daemons. Il contient les configurations des démons dans le contexte de leur activité. Soit ils sont activés (yes) soit non (no). Nous devons activer le démon eigrpd.
~# nano /etc/frr/daemons
eigrpd=yes
Ensuite, vous devez corriger le fichier vtysh.conf en ajoutant une ligne responsable de la sauvegarde de la configuration dans un fichier, afin que les configurations de différents protocoles ne soient pas dispersées dans différents fichiers (par exemple, eigrpd.conf, staticd.conf). Cela est configurable en option.
~# nano /etc/frr/vtysh.conf
service integrated-vtysh-config
La configuration de FRRouting est terminée. Maintenant, il est temps d'exécuter le démon FRR. Et oui, nous devons activer le routage du trafic. Par défaut, il est désactivé dans les distributions Linux.
~$ sudo systemctl start frr
~$ sudo sysctl -w net.ipv4.ip_forward=1
La commande vtysh nous amènera au panneau de contrôle du routeur FRR.
~$ sudo vtysh
English Input:
## EIGRP Attacks
EIGRP (Enhanced Interior Gateway Routing Protocol) is a Cisco proprietary routing protocol that is used to share routing information between routers. EIGRP is a distance vector protocol that uses bandwidth and delay as its metrics. EIGRP is a reliable protocol that is easy to configure and troubleshoot. However, EIGRP is vulnerable to various attacks that can compromise the confidentiality, integrity, and availability of the network.
### EIGRP Authentication Attacks
EIGRP supports authentication to prevent unauthorized access to the routing information. EIGRP authentication can be configured using a key chain or a static key. However, EIGRP authentication is vulnerable to various attacks that can bypass or crack the authentication mechanism.
#### EIGRP Key Chain Attacks
EIGRP key chain is a sequence of keys that are used to authenticate EIGRP packets. EIGRP key chain can be configured with multiple keys, and each key can have a different lifetime and key ID. EIGRP key chain can be attacked using the following methods:
- **Key Chain Discovery**: An attacker can use a sniffer to capture EIGRP packets and extract the key chain information. The attacker can then use the key chain information to launch further attacks.
- **Key Chain Brute-Force**: An attacker can use a brute-force attack to guess the key chain key ID and key value. The attacker can then use the correct key to authenticate EIGRP packets.
#### EIGRP Static Key Attacks
EIGRP static key is a single key that is used to authenticate EIGRP packets. EIGRP static key can be attacked using the following methods:
- **Static Key Discovery**: An attacker can use a sniffer to capture EIGRP packets and extract the static key. The attacker can then use the static key to launch further attacks.
- **Static Key Brute-Force**: An attacker can use a brute-force attack to guess the static key value. The attacker can then use the correct key to authenticate EIGRP packets.
French Output:
## Attaques EIGRP
EIGRP (Enhanced Interior Gateway Routing Protocol) est un protocole de routage propriétaire de Cisco qui est utilisé pour partager des informations de routage entre les routeurs. EIGRP est un protocole de vecteur de distance qui utilise la bande passante et le délai comme métriques. EIGRP est un protocole fiable qui est facile à configurer et à dépanner. Cependant, EIGRP est vulnérable à diverses attaques qui peuvent compromettre la confidentialité, l'intégrité et la disponibilité du réseau.
### Attaques d'authentification EIGRP
EIGRP prend en charge l'authentification pour empêcher l'accès non autorisé aux informations de routage. L'authentification EIGRP peut être configurée à l'aide d'une chaîne de clés ou d'une clé statique. Cependant, l'authentification EIGRP est vulnérable à diverses attaques qui peuvent contourner ou casser le mécanisme d'authentification.
#### Attaques de chaîne de clés EIGRP
La chaîne de clés EIGRP est une séquence de clés qui sont utilisées pour authentifier les paquets EIGRP. La chaîne de clés EIGRP peut être configurée avec plusieurs clés, et chaque clé peut avoir une durée de vie et un identifiant de clé différents. La chaîne de clés EIGRP peut être attaquée à l'aide des méthodes suivantes :
- **Découverte de la chaîne de clés** : Un attaquant peut utiliser un sniffer pour capturer des paquets EIGRP et extraire les informations de la chaîne de clés. L'attaquant peut ensuite utiliser les informations de la chaîne de clés pour lancer d'autres attaques.
- **Brute-Force de la chaîne de clés** : Un attaquant peut utiliser une attaque par force brute pour deviner l'identifiant de clé et la valeur de la chaîne de clés. L'attaquant peut ensuite utiliser la clé correcte pour authentifier les paquets EIGRP.
#### Attaques de clé statique EIGRP
La clé statique EIGRP est une seule clé qui est utilisée pour authentifier les paquets EIGRP. La clé statique EIGRP peut être attaquée à l'aide des méthodes suivantes :
- **Découverte de la clé statique** : Un attaquant peut utiliser un sniffer pour capturer des paquets EIGRP et extraire la clé statique. L'attaquant peut ensuite utiliser la clé statique pour lancer d'autres attaques.
- **Brute-Force de la clé statique** : Un attaquant peut utiliser une attaque par force brute pour deviner la valeur de la clé statique. L'attaquant peut ensuite utiliser la clé correcte pour authentifier les paquets EIGRP.
Inguz# show version
Cependant, n'oubliez pas que le domaine de routage EIGRP peut être protégé par une authentification. Mais vous avez toujours une chance de vous connecter au domaine de routage. Lorsque les paquets hello sont envoyés, ils contiennent également des hachages cryptographiques. Si vous pouvez extraire ces hachages de l'extraction de trafic et réinitialiser le mot de passe, vous pouvez vous connecter au domaine de routage avec ce mot de passe.
Accédez au mode de configuration globale et démarrez le processus EIGRP, spécifiez le numéro du système autonome - 1
Et nous devons également déclarer le réseau dans lequel nous sommes. Nous sommes dans le réseau 10.10.100.0/24. Mon adresse est 10.10.100.50/32
Inguz# configInguz(config)# router eigrp 1Inguz(config-router) network 10.10.100.50/32
Ensuite, le voisinage entre les routeurs EIGRP légitimes est établi. Il y en a deux sur mon réseau :
- GW1 (10.10.100.100)
- GW2 (10.10.100.200)
Voisinage EIGRP avec GW1 (10.10.100.100) :
Voisinage EIGRP avec GW2 (10.10.100.200) :
Pendant l'établissement et la maintenance du voisinage entre les routeurs EIGRP, les routeurs échangent leurs informations de routage. Après l'établissement du voisinage, de nouvelles routes apparaîtront dans notre table de routage du système attaquant, à savoir :
- 10.1.239.0/24 via 10.10.100.100 ;
- 30.30.30.0/24 via 10.10.100.100 ;
- 100.100.100.0/24 via 10.10.100.100 ;
- 172.16.100.0/24 via 10.10.100.200
Ainsi, après l'établissement du voisinage, nous connaissons l'existence de ces sous-réseaux, ce qui facilite notre pentest et nous fait gagner du temps. Nous pouvons nous passer de la numérisation de sous-réseau supplémentaire. Maintenant, nous sommes dans le domaine de routage EIGRP et nous pouvons développer quelques vecteurs d'attaque. Parlons-en.
Faux voisins EIGRP
J'ai découvert que la génération et l'envoi rapide de paquets EIGRP hello en masse surchargent le CPU du routeur, ce qui peut ouvrir la porte à une attaque DoS. J'ai développé un petit script helloflooding.py **** , mais il me semble que le script manque de vitesse d'envoi des paquets. Cela est dû à GIL, qui empêche la fonction sprayhello de s'exécuter en plusieurs threads par seconde. Finalement, je réécrirai le script en C.
Arguments du script :
- Interface du système attaquant (eth0) ;
- Numéro de système autonome EIGRP (1) ;
- Sous-réseau où se trouve le système attaquant. Dans mon cas, le sous-réseau est 10.10.100.0/24
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24
Blackhole EIGRP
L'essence de cette attaque est une simple injection d'une fausse route qui empoisonnera la table de routage. Le trafic vers, disons, le réseau 10.10.100.0/24
ne mènera nulle part, causant un déni de service. Une telle attaque est appelée un Blackhole. Le script routeinject.py sera l'outil utilisé pour la réaliser. Pour cet exemple, je vais envoyer du trafic destiné à l'hôte 172.16.100.140/32
vers le trou noir.
Arguments du script:
- interface du système attaquant
- numéro AS EIGRP
- adresse IP de l'attaquant
- adresse IP du sous-réseau cible dont le trafic sera envoyé vers le trou noir
- masque de sous-réseau cible
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32
Notre hôte semble avoir des problèmes :)
Comme vous pouvez le voir, l'hôte perd la connectivité avec l'hôte 172.16.100.140/32 en raison de l'injection de route.
Abus des valeurs K
Pour établir des voisins EIGRP, les routeurs utilisent des valeurs K spéciales. Ils doivent être identiques parmi tous les voisins EIGRP. Si au moins une valeur K ne correspond pas, le domaine EIGRP se bloquera et le voisinage sera rompu. Nous utiliserons relationshipnightmare.py **** pour effectuer cette attaque**.**
Arguments du script :
- interface réseau
- numéro AS EIGRP
- adresse IP du routeur légitime
Au nom de l'adresse IP spécifiée, une injection sera envoyée sur l'adresse IP EIGRP multicast, dans laquelle les valeurs K sont différentes. Dans mon cas, je vais rompre le voisinage au nom du routeur GW1 (l'adresse est 10.10.100.100).
~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100
Une attaque DoS peut être effectuée de cette manière. Pendant l'opération, des interruptions et des tentatives de voisinage sans fin se produisent, paralysant une partie du domaine de routage EIGRP.
Débordement de table de routage
L'essence de cette attaque est de provoquer l'envoi d'un grand nombre de fausses routes, qui vont déborder la table de routage. Cela épuise les ressources informatiques du routeur, à savoir le CPU et la RAM, car les injections se produisent à une vitesse énorme. Cette attaque est mise en œuvre par le script routingtableoverflow.py.
Arguments du script
- interface réseau
- Numéro AS EIGRP
- Adresse IP de l'attaquant
in9uz@Inguz:~$ sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50
Après l'exécution du script, la table de routage commence à déborder de routes. Les adresses aléatoires des réseaux cibles sont dues à l'utilisation de RandIP() dans Scapy.
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.