hacktricks/generic-methodologies-and-resources/pentesting-network/eigrp-attacks.md
2023-06-06 18:56:34 +00:00

16 KiB

Ataques EIGRP

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

Esta página foi copiada de https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9****

Atacando o Protocolo EIGRP

EIGRP (Enhanced Interior Gateway Routing Protocol) é um protocolo de roteamento dinâmico. É um protocolo de vetor de distância. Se não houver autenticação e configuração de interfaces passivas, um invasor pode interferir no roteamento EIGRP e causar envenenamento das tabelas de roteamento. Além disso, a rede EIGRP (em outras palavras, sistema autônomo) é plana e não tem segmentação em zonas. O que isso poderia significar para um invasor? Bem, se ele injetar uma rota, é provável que essa rota se espalhe por todo o sistema autônomo EIGRP.

Em primeiro lugar, atacar um sistema EIGRP autônomo requer o estabelecimento de uma vizinhança com um roteador EIGRP legítimo, o que abre muitas possibilidades, desde reconhecimento básico até várias injeções.

Para isso, usarei o FRRouting. Este é um software de código aberto projetado para criar um roteador no Unix e Linux. FRRouting permite que você implemente um roteador virtual que suporta BGP, OSPF, EIGRP, RIP e outros protocolos. Tudo o que você precisa fazer é implantá-lo em seu sistema de atacante e você pode realmente fingir ser um roteador legítimo no domínio de roteamento. Vou mostrar como implantar o FRR em seu sistema na próxima seção.

Inteligência de Rede

Conectar-se ao domínio de roteamento permite fazer enumeração e reconhecimento de redes e não gastar muito tempo escaneando. Este método economiza muito tempo precioso. Além disso, ao escanear, você pode ser detectado pelos sistemas de segurança IPS/IDS. Para mim, conectar-se ao domínio e enumeração é o vetor de ataque em domínios de roteamento que lhe dá o maior impacto. Mas para fazer isso, você precisa implantar o FRRouting. Aqui vamos nós.

É necessário editar o arquivo de configuração daemons. Ele contém as configurações dos daemons no contexto de sua atividade. Ou eles estão habilitados (yes) ou não (no). Precisamos ativar o daemon eigrpd.

~# nano /etc/frr/daemons
eigrpd=yes

Depois disso, você precisa corrigir o arquivo vtysh.conf adicionando uma linha responsável por salvar a configuração em um único arquivo, para que as configurações de diferentes protocolos não sejam espalhadas em arquivos diferentes (por exemplo, eigrpd.conf, staticd.conf). Isso é configurável opcionalmente.

~# nano /etc/frr/vtysh.conf
service integrated-vtysh-config

A configuração do FRRouting está pronta. Agora é hora de executar o daemon FRR. E sim, precisamos habilitar o roteamento de tráfego. Por padrão, ele está desativado em distribuições Linux.

~$ sudo systemctl start frr
~$ sudo sysctl -w net.ipv4.ip_forward=1

O comando vtysh nos levará ao painel de controle do roteador FRR.

~$ sudo vtysh

EIGRP Attacks

EIGRP Protocol

O Protocolo de Gateway de Interiores Aprimorado (EIGRP) é um protocolo de roteamento avançado que é usado em redes de grande porte. Ele é usado para compartilhar informações de roteamento entre roteadores dentro de uma rede. O EIGRP é um protocolo proprietário da Cisco e é usado em seus roteadores.

EIGRP Attack

Os ataques EIGRP são usados para explorar vulnerabilidades no protocolo EIGRP. Esses ataques podem ser usados para obter informações de roteamento, modificar rotas ou até mesmo derrubar uma rede inteira. Alguns dos ataques EIGRP mais comuns incluem:

  • Eavesdropping: um atacante pode usar um sniffer de rede para capturar pacotes EIGRP e obter informações de roteamento.
  • Spoofing: um atacante pode enviar pacotes EIGRP falsificados para modificar rotas ou derrubar uma rede.
  • Replay: um atacante pode capturar pacotes EIGRP e reenviá-los para modificar rotas ou derrubar uma rede.
  • DoS: um atacante pode enviar pacotes EIGRP falsificados em grande quantidade para sobrecarregar a rede e derrubá-la.

Mitigação de Ataques EIGRP

Para mitigar ataques EIGRP, é recomendável implementar as seguintes medidas de segurança:

  • Autenticação: é recomendável usar autenticação para garantir que apenas roteadores autorizados possam se comunicar usando o protocolo EIGRP.
  • Criptografia: é recomendável usar criptografia para proteger as informações de roteamento transmitidas pelo protocolo EIGRP.
  • Filtragem: é recomendável filtrar o tráfego EIGRP para permitir apenas o tráfego necessário e bloquear o tráfego malicioso.
  • Monitoramento: é recomendável monitorar o tráfego EIGRP para detectar atividades suspeitas e responder a elas rapidamente.
Inguz# show version

No entanto, não se esqueça que o domínio de roteamento EIGRP pode ser protegido por autenticação. Mas ainda há uma chance de se conectar ao domínio de roteamento. Quando os pacotes hello são enviados, eles também contêm hashes criptográficos. Se você puder extrair esses hashes do dump de tráfego e redefinir a senha, poderá fazer login no domínio de roteamento com essa senha.

Vá para o modo de configuração global e inicie o processo EIGRP, especifique o número do sistema autônomo - 1

E também precisamos declarar a rede em que estamos. Estamos em 10.10.100.0/24. Meu endereço é 10.10.100.50/32

Inguz# configInguz(config)# router eigrp 1Inguz(config-router) network 10.10.100.50/32

Depois disso, o bairro entre os roteadores EIGRP legítimos é estabelecido. Há dois deles na minha rede:

  • GW1 (10.10.100.100)
  • GW2 (10.10.100.200)

Vizinhança EIGRP com GW1 (10.10.100.100):

Vizinhança EIGRP com GW2 (10.10.100.200):

Durante o estabelecimento e manutenção da vizinhança entre os roteadores EIGRP, os roteadores trocam suas informações de roteamento. Após o estabelecimento da vizinhança, novas rotas aparecerão na tabela de roteamento do sistema atacante, a saber:

  • 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

Assim, após o estabelecimento da vizinhança, sabemos sobre a existência dessas sub-redes, o que facilita o pentest e economiza tempo. Podemos fazer sem varreduras adicionais de sub-redes. Agora estamos no domínio de roteamento EIGRP e podemos desenvolver alguns vetores de ataque. Vamos falar sobre eles.

Vizinhos EIGRP Falsos

Descobri que gerar e enviar rapidamente pacotes EIGRP hello em massa sobrecarrega a CPU do roteador, o que, por sua vez, pode abrir a porta para um ataque DoS. Eu desenvolvi um pequeno script helloflooding.py, mas parece-me que o script carece de velocidade no envio dos pacotes. Isso é causado pelo GIL, que impede que a função sprayhello seja executada em vários threads por segundo. Eventualmente, reescreverei o script em C.

Argumentos do script:

  • Interface do sistema atacante (eth0);
  • Número autônomo do sistema EIGRP (1);
  • Sub-rede onde o sistema atacante está localizado. No meu caso, a sub-rede é 10.10.100.0/24
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24

Buraco Negro EIGRP

A essência desse ataque é a simples injeção de uma rota falsa que irá envenenar a tabela de roteamento. O tráfego para, digamos, a rede 10.10.100.0/24 não irá a lugar algum, causando uma negação de serviço. Esse tipo de ataque é chamado de Buraco Negro. A ferramenta utilizada para realizá-lo será o script routeinject.py. Para este exemplo, enviarei tráfego destinado ao host 172.16.100.140/32 para o buraco negro.

Argumentos do script:

  • interface do sistema atacante
  • número AS do EIGRP
  • endereço IP do atacante
  • endereço IP da sub-rede alvo cujo tráfego será enviado para o buraco negro
  • máscara de sub-rede alvo
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32

Nosso host parece estar em apuros :)

Como você pode ver, o host perde a conectividade com o host 172.16.100.140/32 devido à injeção de rota.

Abusando dos Valores K

Para estabelecer vizinhos EIGRP, os roteadores usam valores K especiais. Eles devem ser iguais entre todos os vizinhos EIGRP. Se pelo menos um valor K não corresponder, o domínio EIGRP falhará e a vizinhança será interrompida. Usaremos o relationshipnightmare.py para realizar este ataque**.**

Argumentos do script:

  • interface de rede
  • número AS EIGRP
  • Endereço IP do roteador legítimo

Em nome do IP especificado, será enviada uma injeção no endereço IP EIGRP multicast, no qual os valores K são diferentes. No meu caso, vou quebrar a vizinhança em nome do roteador GW1 (endereço é 10.10.100.100).

~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100

Despejo de tráfego durante uma interrupção de vizinhança

O roteador GW1 desconecta e reconecta o EIGRP infinitamente

Um ataque DoS pode ser realizado dessa maneira. Durante a operação, ocorrem interrupções e tentativas de vizinhança infinitas, paralisando parte do domínio de roteamento EIGRP.

Sobrecarga da tabela de roteamento

A essência desse ataque é provocar o envio de um grande número de rotas falsas, que vão sobrecarregar a tabela de roteamento. Isso esgota os recursos de computação do roteador, ou seja, a CPU e a RAM, já que as injeções ocorrem em uma velocidade enorme. Esse ataque é implementado pelo script routingtableoverflow.py.

Argumentos do script

  • interface de rede
  • Número AS do EIGRP
  • Endereço IP do atacante
in9uz@Inguz:~$ sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50

Após a execução do script, a tabela de roteamento começa a transbordar com rotas. Os endereços aleatórios das redes de destino são devido ao uso de RandIP() no Scapy.

Tabela de roteamento transbordando no roteador GW1

CPU do roteador sobrecarregada

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