hacktricks/generic-methodologies-and-resources/pentesting-network/eigrp-attacks.md

22 KiB

Attaques EIGRP

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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 seul 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

An EIGRP key chain is a sequence of keys that are used to authenticate EIGRP packets. Each key in the key chain has a key ID, a key string, and a cryptographic algorithm. The key ID is a number that identifies the key in the key chain. The key string is a password that is used to generate the message digest. The cryptographic algorithm is used to generate the message digest.

An EIGRP key chain can be attacked in various ways:

- **Key ID Spoofing**: An attacker can spoof the key ID in an EIGRP packet to bypass the authentication mechanism. The attacker can send an EIGRP packet with a valid key ID that belongs to another router in the network. This will cause the receiving router to accept the packet as authentic and process it accordingly.

- **Key String Cracking**: An attacker can crack the key string in an EIGRP packet to generate a valid message digest. The attacker can use various tools and techniques to crack the key string, such as brute-force attacks, dictionary attacks, and rainbow table attacks.

#### EIGRP Static Key Attacks

An EIGRP static key is a password that is used to authenticate EIGRP packets. The static key is configured on each router that participates in the EIGRP process. The static key is vulnerable to various attacks that can bypass or crack the authentication mechanism.

An EIGRP static key can be attacked in various ways:

- **Password Guessing**: An attacker can guess the static key by using various tools and techniques, such as brute-force attacks, dictionary attacks, and social engineering attacks.

- **Packet Sniffing**: An attacker can sniff the EIGRP packets that contain the static key and use it to generate a valid message digest. The attacker can use various tools and techniques to sniff the packets, such as Wireshark, tcpdump, and Ettercap.

### EIGRP DoS Attacks

EIGRP is vulnerable to various DoS (Denial of Service) attacks that can disrupt the normal operation of the network. EIGRP DoS attacks can be launched using various tools and techniques, such as packet flooding, packet fragmentation, and route flapping.

#### EIGRP Packet Flooding

EIGRP packet flooding is a DoS attack that floods the network with a large number of EIGRP packets. The attacker can send EIGRP packets with invalid or spoofed source addresses to overwhelm the network and consume its resources. This can cause the network to become slow or unresponsive.

#### EIGRP Packet Fragmentation

EIGRP packet fragmentation is a DoS attack that fragments the EIGRP packets into smaller packets. The attacker can send fragmented EIGRP packets to the network to consume its resources and cause it to become slow or unresponsive.

#### EIGRP Route Flapping

EIGRP route flapping is a DoS attack that causes the EIGRP routes to flap continuously. The attacker can send EIGRP packets with invalid or spoofed information to the network to cause the routers to constantly update their routing tables. This can cause the network to become unstable and unusable.

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 craquer le mécanisme d'authentification.

#### Attaques de chaîne de clés EIGRP

Une chaîne de clés EIGRP est une séquence de clés qui sont utilisées pour authentifier les paquets EIGRP. Chaque clé dans la chaîne de clés a un identifiant de clé, une chaîne de clé et un algorithme cryptographique. L'identifiant de clé est un numéro qui identifie la clé dans la chaîne de clés. La chaîne de clé est un mot de passe qui est utilisé pour générer le message digest. L'algorithme cryptographique est utilisé pour générer le message digest.

Une chaîne de clés EIGRP peut être attaquée de diverses manières :

- **Spoofing d'identifiant de clé**: Un attaquant peut usurper l'identifiant de clé dans un paquet EIGRP pour contourner le mécanisme d'authentification. L'attaquant peut envoyer un paquet EIGRP avec un identifiant de clé valide qui appartient à un autre routeur du réseau. Cela amènera le routeur récepteur à accepter le paquet comme authentique et à le traiter en conséquence.

- **Craquage de chaîne de clé**: Un attaquant peut craquer la chaîne de clé dans un paquet EIGRP pour générer un message digest valide. L'attaquant peut utiliser divers outils et techniques pour craquer la chaîne de clé, tels que des attaques par force brute, des attaques par dictionnaire et des attaques par table arc-en-ciel.

#### Attaques de clé statique EIGRP

Une clé statique EIGRP est un mot de passe qui est utilisé pour authentifier les paquets EIGRP. La clé statique est configurée sur chaque routeur qui participe au processus EIGRP. La clé statique est vulnérable à diverses attaques qui peuvent contourner ou craquer le mécanisme d'authentification.

Une clé statique EIGRP peut être attaquée de diverses manières :

- **Deviner le mot de passe**: Un attaquant peut deviner la clé statique en utilisant divers outils et techniques, tels que des attaques par force brute, des attaques par dictionnaire et des attaques d'ingénierie sociale.

- **Sniffing de paquets**: Un attaquant peut renifler les paquets EIGRP qui contiennent la clé statique et l'utiliser pour générer un message digest valide. L'attaquant peut utiliser divers outils et techniques pour renifler les paquets, tels que Wireshark, tcpdump et Ettercap.

### Attaques DoS EIGRP

EIGRP est vulnérable à diverses attaques DoS (Déni de Service) qui peuvent perturber le fonctionnement normal du réseau. Les attaques DoS EIGRP peuvent être lancées à l'aide de divers outils et techniques, tels que le flood de paquets, la fragmentation de paquets et le flapping de route.

#### Flood de paquets EIGRP

Le flood de paquets EIGRP est une attaque DoS qui inonde le réseau avec un grand nombre de paquets EIGRP. L'attaquant peut envoyer des paquets EIGRP avec des adresses source invalides ou usurpées pour submerger le réseau et consommer ses ressources. Cela peut rendre le réseau lent ou non réactif.

#### Fragmentation de paquets EIGRP

La fragmentation de paquets EIGRP est une attaque DoS qui fragmente les paquets EIGRP en paquets plus petits. L'attaquant peut envoyer des paquets EIGRP fragmentés sur le réseau pour consommer ses ressources et le rendre lent ou non réactif.

#### Flapping de route EIGRP

Le flapping de route EIGRP est une attaque DoS qui provoque un clignotement continu des routes EIGRP. L'attaquant peut envoyer des paquets EIGRP avec des informations invalides ou usurpées sur le réseau pour amener les routeurs à mettre constamment à jour leurs tables de routage. Cela peut rendre le réseau instable et inutilisable.

Inguz# show version

<figure><img src="../../.gitbook/assets/image (3) (2) (2).png" alt=""><figcaption></figcaption></figure>

> **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) :

<figure><img src="../../.gitbook/assets/image (5) (1) (2).png" alt=""><figcaption></figcaption></figure>

Voisinage EIGRP avec GW2 (10.10.100.200) :

<figure><img src="../../.gitbook/assets/image (30) (1).png" alt=""><figcaption></figcaption></figure>

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**

<figure><img src="../../.gitbook/assets/image (29) (1) (2).png" alt=""><figcaption></figcaption></figure>

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 <a href="#51ee" id="51ee"></a>

**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**](https://github.com/in9uz/EIGRPWN/blob/main/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.**

<figure><img src="../../.gitbook/assets/image (2) (6) (1).png" alt=""><figcaption></figcaption></figure>

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

<figure><img src="../../.gitbook/assets/image (26) (1).png" alt=""><figcaption></figcaption></figure>

### Blackhole EIGRP <a href="#5c04" id="5c04"></a>

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**](https://github.com/in9uz/EIGRPWN/blob/main/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.

<figure><img src="../../.gitbook/assets/image (16) (1).png" alt=""><figcaption></figcaption></figure>

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

<figure><img src="../../.gitbook/assets/image (20) (1).png" alt=""><figcaption></figcaption></figure>

**Notre hôte semble être en difficulté :)**

<figure><img src="../../.gitbook/assets/image (6) (1) (1).png" alt=""><figcaption></figcaption></figure>

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 <a href="#25aa" id="25aa"></a>

Pour établir des voisins EIGRP, **les routeurs utilisent des valeurs K spéciales.** Elles 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**](https://github.com/in9uz/EIGRPWN/blob/main/relationshipnightmare.py) \*\*\*\* pour effectuer cette attaque\*\*.\*\*

<figure><img src="../../.gitbook/assets/image (12) (2) (1).png" alt=""><figcaption></figcaption></figure>

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

<figure><img src="../../.gitbook/assets/image (9) (1) (4).png" alt=""><figcaption><p>Extrait du trafic lors d'une perturbation de voisinage</p></figcaption></figure>

<figure><img src="../../.gitbook/assets/image (27) (1).png" alt=""><figcaption><p>Le routeur GW1 se déconnecte et se reconnecte sans cesse à EIGRP</p></figcaption></figure>

**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 <a href="#1d0c" id="1d0c"></a>

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**](https://github.com/in9uz/EIGRPWN/blob/main/routingtableoverflow.py).

<figure><img src="../../.gitbook/assets/image (3) (4).png" alt=""><figcaption></figcaption></figure>

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**](https://github.com/secdev/scapy).

<figure><img src="../../.gitbook/assets/image (4) (4).png" alt=""><figcaption><p>La table de routage déborde sur le routeur GW1</p></figcaption></figure>

<figure><img src="../../.gitbook/assets/image (21) (1).png" alt=""><figcaption><p>Processeur du routeur surchargé</p></figcaption></figure>

<details>

<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>

* 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**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).

</details>