17 KiB
Ataques EIGRP
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de cibersegurança? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e para o repositório hacktricks-cloud.
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
Introduction
EIGRP (Enhanced Interior Gateway Routing Protocol) is a Cisco proprietary routing protocol that is widely used in enterprise networks. It is an advanced distance-vector routing protocol that uses Diffusing Update Algorithm (DUAL) to calculate the shortest path to a destination network. EIGRP is a classless routing protocol that supports variable-length subnet masks (VLSM) and route summarization.
EIGRP Protocol Overview
EIGRP uses a hierarchical network design that consists of autonomous systems (AS) and areas. An AS is a collection of networks that are under a common administrative domain. An area is a logical grouping of networks within an AS. EIGRP routers exchange routing information using multicast packets. EIGRP routers establish neighbor relationships with other routers in the same AS and exchange routing information with them. EIGRP routers use the following metrics to calculate the best path to a destination network:
- Bandwidth
- Delay
- Reliability
- Load
- MTU (Maximum Transmission Unit)
EIGRP Attacks
EIGRP is vulnerable to various attacks that can be used to disrupt network operations, steal sensitive information, or gain unauthorized access to network resources. The following are some of the common EIGRP attacks:
- EIGRP Neighbor Spoofing
- EIGRP Route Injection
- EIGRP Route Poisoning
- EIGRP Route Flapping
- EIGRP Authentication Attacks
EIGRP Neighbor Spoofing
EIGRP routers establish neighbor relationships with other routers in the same AS to exchange routing information. An attacker can spoof EIGRP packets to impersonate a legitimate EIGRP router and establish a neighbor relationship with a target router. Once the attacker has established a neighbor relationship, they can inject false routing information into the target router and cause it to forward traffic to a malicious destination.
EIGRP Route Injection
An attacker can inject false routing information into an EIGRP router to manipulate its routing table. The attacker can use this technique to redirect traffic to a malicious destination or to cause a denial of service (DoS) attack by blackholing traffic.
EIGRP Route Poisoning
EIGRP routers use the Diffusing Update Algorithm (DUAL) to calculate the shortest path to a destination network. An attacker can poison the routing table of an EIGRP router by injecting false routing information with a lower metric than the legitimate routes. This can cause the router to forward traffic to a malicious destination.
EIGRP Route Flapping
EIGRP routers use the reliability metric to determine the stability of a route. An attacker can cause a route to flap by injecting false routing information with varying metrics. This can cause the router to constantly recalculate the best path to a destination network and consume network resources.
EIGRP Authentication Attacks
EIGRP supports authentication to prevent unauthorized access to routing information. An attacker can launch an authentication attack by spoofing EIGRP packets with a valid authentication key or by brute-forcing the authentication key. Once the attacker has gained access to the routing information, they can launch other attacks to disrupt network operations or steal sensitive information.
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árias 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 é uma 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. Tal ataque é chamado de Buraco Negro. O script routeinject.py será a ferramenta usada para realizá-lo. 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 de destino cujo tráfego será enviado para o buraco negro
- máscara de sub-rede de destino
~$ 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 irá 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 (o endereço é 10.10.100.100).
~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100
Um ataque DoS pode ser realizado desta maneira. Durante a operação, ocorrem interrupções e tentativas de vizinhança infinitas, paralisando parte do domínio de roteamento EIGRP.
Transbordamento da tabela de roteamento
A essência deste ataque é provocar o envio de um grande número de rotas falsas, que transbordarão a tabela de roteamento. Isso esgota os recursos de computação do roteador, ou seja, a CPU e a RAM, uma vez que as injeções ocorrem em uma velocidade enorme. Este 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 devidos ao uso de RandIP() no Scapy.
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você 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!
- Descubra The PEASS Family, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e para o repositório hacktricks-cloud.