em um ambiente de rede comutado, os pacotes são enviados para sua porta de destino pelo endereço MAC. Esse processo requer que os sistemas na rede mantenham uma tabela associando endereços MAC a portas. Em um ambiente comutado, os pacotes são enviados apenas para dispositivos para os quais são destinados. Mesmo neste ambiente comutado, existem maneiras de farejar os pacotes de outros dispositivos. Uma dessas maneiras é falsificar seu endereço MAC e envenenar a tabela arp. Como o arp não mantém nenhuma informação de Estado, o cache do arp pode ser substituído (a menos que uma entrada seja explicitamente marcada como permanente).
o envenenamento por cache Arp coloca o invasor em posição de interceptar as comunicações entre os dois computadores. O computador a acredita que está se comunicando com o computador B, mas por causa da mesa ARP envenenada, a comunicação realmente vai para o computador do invasor. O invasor pode então responder ao computador a (fingindo ser o computador B) ou simplesmente encaminhar os pacotes para o destino pretendido, mas somente depois que as informações do pacote forem capturadas e registradas para uso posterior pelo invasor. Da mesma forma, a resposta do computador B pode ser capturada e registrada pelo invasor, que também usou envenenamento por Arp para fazer o computador b pensar que o computador do invasor é o computador a. Esse tipo de ataque é conhecido como homem no ataque do meio.
este artigo cobre uma série de ferramentas usadas em ataques de envenenamento por cache arp, incluindo ettercap, arpspoof, nemesis, p0f, dsniff e scapy.
executando Ettercap
para que ocorra envenenamento por cache arp, o invasor precisa estar no mesmo segmento de rede que os sistemas sob ataque. O primeiro passo é obter uma lista de endereços IP e seus endereços MAC associados. Várias ferramentas ajudarão você a obter essas informações; um exemplo é uma ferramenta chamada ettercap (http://ettercap.sourceforge.net/). Ettercap é uma suíte para ataques man in the middle a uma LAN local. Possui sniffing de conexões ao vivo, filtragem de conteúdo em tempo real e muito mais. Ettercap suporta dissecção ativa e passiva de muitos protocolos alguns dos vários protocolos. O seguinte comando:
# ettercap -T -M arp:remote //
farejará rapidamente todos os hosts dentro de sua sub-rede; para visualizar os resultados, digite L ou pressione h para o menu Ajuda e você verá uma lista de comandos.
Arp Cache DOS
para ARP envenenar um determinado endereço IP e derrubar o sistema offline para que ele não possa se comunicar com ninguém, use arpspoof do dsniff suite (http://monkey.org/~dugsong/dsniff/), uma coleção gratuita de ferramentas para auditoria de rede e testes de penetração. O dsniff suite inclui ferramentas como dsniff, filesnarf, mailsnarf, nsgsnarf, urlsnard e webspy, que monitoram passivamente uma rede para dados interessantes. (As ferramentas Arpspoof, dnsspoof e macof facilitam a interceptação do tráfego de rede normalmente indisponível para um invasor devido à troca de camada 2.)
Arpspoof (http://arpspoof.sourceforge.net/) é muito mais simples do que o ettercap para redirecionar pacotes:
# arpspoof-I eth0-t <target> host
especificar a interface é opcional, mas necessária se mais de uma interface estiver presente. A opção-t especifica o host específico para ARP poison; se o host não for especificado, todos os hosts na LAN serão envenenados. O host pode ser o gateway padrão, e isso impedirá que o destino se comunique além do segmento local. Arpspoof redireciona pacotes de um host de destino ou todos os hosts na LAN forjando respostas ARP. A beleza deste programa vem da função arp_send (), que também usa libnet para falsificar pacotes. arp_send() envia um pacote arp com endereços de hardware IP e Ethernet de origem/destino fornecidos pelo Usuário. Libnet é uma API de rede genérica que fornece acesso a vários protocolos.
para entender melhor o processo de envenenamento do cache arp, considere uma ferramenta alternativa chamada Nemesis. Se você tiver o IP e o MAC do alvo e do host pretendidos,poderá usar Nemesis para envenenar o alvo. Nemesis (http://nemesis.sourceforge.net/) é um utilitário de elaboração e injeção de pacotes de rede de linha de comando. Nemesis pode criar e injetar pacotes ARP, DNS, ETHERNET, ICMP, IGMP, IP, OSPF, RIP, TCP e UDP. Ao criar seu próprio pacote usando Nemesis, você pode ver como funciona o envenenamento por cache arp:
$ sudo nemesis arp -v -r -d eth0 -S 192.168.1.2 \-D 192.168.1.133 -h 00:22:6E:71:04:BB -m 00:0C:29:B2:78:9E \-H 00:22:6E:71:04:BB -M 00:0C:29:B2:78:9E
então você cria um pacote para enviar na outra direção:
$ sudo nemesis arp -v -r -d eth0 -S 192.168.1.133 \-D 192.168.1.2 -h 00:22:6E:71:04:BB -m 00:22:6B:7E:AD:7C \-H 00:22:6E:71:04:BB -M 00:22:6B:7E:AD:7C
esses dois comandos falsificam as respostas do ARP de 192.168.1.2 a 192.168.1.133 e depois de 192.168.1.33 a 192.168.1.2. A opção Nemesis arp-s especifica o endereço IP de origem, – d especifica o endereço IP de destino, – h especifica o endereço MAC do remetente, – m mostra o endereço MAC de destino, -h o endereço MAC de origem e-M o endereço MAC de destino. Esses dois comandos enviam falsas respostas ARP para manter os caches ARP envenenados e o tráfego redirecionado.
para garantir que o cache permaneça envenenado, repita os comandos a cada 10 segundos com um loop.
$ while true>do> sudo nemesis arp -v -r -d eth0 -S 192.168.1.2 \-D 192.168.1.133 -h 00:22:6E:71:04:BB -m 00:0C:29:B2:78:9E \-H 00:22:6E:71:04:BB -M 00:0C:29:B2:78:9E> sudo nemesis arp -v -r -d eth0 -S 192.168.1.133 \ -D 192.168.1.2 -h 00:22:6E:71:04:BB -m 00:22:6B:7E:AD:7C \-H 00:22:6E:71:04:BB -M 00:22:6B:7E:AD:7C> echo "Redirecting"> sleep 10> done
uma vez feito isso, a caixa de destino será off-line e incapaz de se comunicar com o resto da rede. Fiz um vídeo no meu site que demonstra esse ataque e está disponível em http://pbnetworks.net.
farejando a LAN
um objetivo do envenenamento por cache arp é colocar o invasor em posição de capturar e registrar informações de rede. Os intrusos têm várias ferramentas para ouvir na LAN e registrar dados para análise posterior.
o modo bridge do Ettercap permite interceptar pacotes que você pode ler, farejar ou alterar antes de enviar para a vítima. O modo Bridge requer duas interfaces que são colocadas no segmento de rede. Se você configurar em linha com o modo de Ponte de rede, será muito difícil detectar.
# ettercap -Tq -i eth0 -B eth1
o -I define a interface primária como eth0, o-B define a segunda interface de Ponte. Se você executar o ettercap na interface do Usuário GTK+, selecione Sniff | Bridged sniffing.