A utilização de ferramentas para análise de pacotes ARP costuma auxiliar na depuração de diferentes problemas, como a confirmação da presença de rede, detectar conflitos IP ou descoberta de endereços não previstos ou desconhecidos.
1. Na minha opinião, quando o teste de ping não revela a presença de rede, a forma mais simples e rápida de certificar que um endereço está disponível na rede, é através de testes com arping – dificilmente o equipamento não responderá a consultas ARP, ainda que existam regras de firewall mais restritivas.
root@fwubuntu:~# arping 10.0.0.13 -I eth0 -c 3ARPING 10.0.0.13 60 bytes from 00:21:b7:99:f0:a7 (10.0.0.13): index=0 time=333.786 usec 60 bytes from 00:21:b7:99:f0:a7 (10.0.0.13): index=1 time=329.018 usec 60 bytes from 00:21:b7:99:f0:a7 (10.0.0.13): index=2 time=353.813 usec --- 10.0.0.13 statistics --- 3 packets transmitted, 3 packets received, 0% unanswered (0 extra)
“Considero uma ferramenta indispensável. É um teste extremamente simples e eficiente. Em poucos segundos teremos a confirmação da presença de rede, mesmo que mensagens ICMP de echo-request não sejam autorizadas. A única desvantagem (física) é que ficamos restritos ao segmento físico (na camada 2) – não funcionará se depender de roteamento.“
“Em termos de segurança, também podemos identificar possíveis ataques de ARP Spoof quando verificamos mais de um ARP associado ao mesmo IP. Não se afobe, esta característica pode ser um simples conflito IP. Mas, para filtrar melhor, podemos utilizar a ferramenta arp-scan para descobrir se existe outro IP associado ao segundo MAC – caso exista, a probabilidade de estar sofrendo ataque de Spoof é grande.“
2. Apesar da limitação do arping (layer 2), temos um coringa para varrer segmentos conhecidos e com estações Windows. O protocolo NetBIOS oferece outras informações como ARP e, neste caso, é possível identificar estações Windows (desde que não exista regra de firewall impedindo a consulta).
root@fwubuntu:~# nbtscan 10.0.0.9Doing NBT name scan for addresses from 10.0.0.9 IP address NetBIOS Name Server User MAC address ------------------------------------------------------------------------------ 10.0.0.9 AID101112 <server> <unknown> 10:78:d2:99:f0:1f
“É evidente que estaremos limitados a clientes que respondam consultas NBT. Por outro lado, a vantagem é que podemos varrer o segmento de rede inteiro, identificando o bloco desejado (como 10.0.0.0/24, por exemplo). Pode não resolver para determinados casos, mas não deixa de ser uma opção bastante útil.“
3. Dependendo da necessidade, podemos utilizar o arp-scan para varrer um segmento de rede, identificando ainda o fabricante associado ao endereço MAC retornado.
root@fwubuntu:~# arp-scan 10.0.0.0/24Interface: eth0, datalink type: EN10MB (Ethernet) Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/) 10.0.0.2 78:2b:cb:00:aa:51 Dell Inc 10.0.0.3 00:50:56:00:aa:e2 VMware, Inc. 10.0.0.4 00:50:56:00:aa:1d VMware, Inc. 10.0.0.5 00:02:6f:00:aa:4e Senao International Co., Ltd. 10.0.0.6 f8:1a:67:00:aa:c2 (Unknown) 10.0.0.7 00:21:91:00:aa:cc D-Link Corporation 10.0.0.8 40:16:7e:99:f0:d4 (Unknown) 10.0.0.9 10:78:d2:99:f0:1f ELITEGROUP COMPUTER SYSTEM CO., LTD. 10.0.0.10 3c:52:82:99:f0:99 (Unknown) 10.0.0.11 3c:52:82:99:f0:77 (Unknown) 10.0.0.12 00:21:b7:99:f0:30 Lexmark International Inc. 10.0.0.13 00:21:b7:99:f0:a7 Lexmark International Inc.
“Rapidamente já identificamos um equipamento Dell, duas impressoras (Lexmark), duas VMs (VMWare) e um possível AP (D-Link).“
4. Para finalizar, netdiscover é outra ferramenta que considero quase indispensável em qualquer instalação com perfil servidor – muito útil para identificar a presença de dispositivos não previstos administrativamente (quando usuários instalam roteadores por conta própria, por exemplo).
root@fwubuntu:~# netdiscover -i eth0 -r 192.168.0.0/16Currently scanning: 192.168.253.0/16 | Screen View: Unique Hosts 1 Captured ARP Req/Rep packets, from 1 hosts. Total size: 60 _____________________________________________________________________________ IP At MAC Address Count Len MAC Vendor / Hostname ----------------------------------------------------------------------------- 10.1.1.1 a0:f3:c1:00:aa:78 1 60 TP-LINK TECHNOLOGIES CO., LTD.
“Por padrão, além da varredura, a ferramenta inspeciona o tráfego ARP de forma passiva. Percebam que, apesar de ter selecionado apenas o seguimento 192.168.0.0/16 (opção -r), a ferramenta encontrou o ARP de um roteador TP-Link no segmento 10.1.1.0. Em alguns casos, pode ser útil trabalhar com a ferramenta apenas em modo passivo (opção -p) para analisar o tráfego ARP recebido“.
São ferramentas simples, mas quebram um “grande galho“.
Porém, em alguns casos (mais raros), quando os usuários instalam um roteador com DHCP ativo na rede (causando conflito de endereçamento) e varreduras ARP não são suficientes para identificar o equipamento, a análise DHCP com a ferramenta dhcpdump pode ser uma solução extremamente eficiente .
Confiram a saída do comando:
root@fwubuntu:~# dhcpdump -i eth0TIME: 2017-11-04 11:27:37.139 IP: 0.0.0.0 (84:10:d:7c:00:78) > 255.255.255.255 (ff:ff:ff:ff:ff:ff) OP: 1 (BOOTPREQUEST) HTYPE: 1 (Ethernet) HLEN: 6 HOPS: 0 XID: daed85da SECS: 0 FLAGS: 0 CIADDR: 0.0.0.0 YIADDR: 0.0.0.0 SIADDR: 0.0.0.0 GIADDR: 0.0.0.0 CHADDR: 84:10:0d:7c:00:7e:00:00:00:00:00:00:00:00:00:00 SNAME: . FNAME: . OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER) OPTION: 61 ( 7) Client-identifier 01:84:10:0d:7c:00:78 OPTION: 57 ( 2) Maximum DHCP message size 1500 OPTION: 60 ( 16) Vendor class identifier android-dhcp-6.0 OPTION: 12 ( 24) Host name android-e43... OPTION: 55 ( 9) Parameter Request List 1 (Subnet mask) 3 (Routers) 6 (DNS server) 15 (Domainname) 26 (Interface MTU) 28 (Broadcast address) 51 (IP address leasetime) 58 (T1) 59 (T2) --------------------------------------------------------------------------- TIME: 2017-11-04 11:27:37.639 IP: 0.0.0.0 (84:10:d:7c:00:78) > 255.255.255.255 (ff:ff:ff:ff:ff:ff) OP: 1 (BOOTPREQUEST) HTYPE: 1 (Ethernet) HLEN: 6 HOPS: 0 XID: daed85da SECS: 0 FLAGS: 0 CIADDR: 0.0.0.0 YIADDR: 0.0.0.0 SIADDR: 0.0.0.0 GIADDR: 0.0.0.0 CHADDR: 84:10:0d:7c:00:78:00:00:00:00:00:00:00:00:00:00 SNAME: . FNAME: . OPTION: 53 ( 1) DHCP message type 3 (DHCPREQUEST) OPTION: 61 ( 7) Client-identifier 01:84:10:0d:7c:00:78 OPTION: 50 ( 4) Request IP address 10.1.1.184 OPTION: 54 ( 4) Server identifier 10.1.1.1 OPTION: 57 ( 2) Maximum DHCP message size 1500 OPTION: 60 ( 16) Vendor class identifier android-dhcp-6.0 OPTION: 12 ( 24) Host name android-e43... OPTION: 55 ( 9) Parameter Request List 1 (Subnet mask) 3 (Routers) 6 (DNS server) 15 (Domainname) 26 (Interface MTU) 28 (Broadcast address) 51 (IP address leasetime) 58 (T1) 59 (T2) ---------------------------------------------------------------------------
Bastante simples, não? Utilizo com certa frequência!
Espero que as dicas sejam úteis.
Desejo a todos um ótimo fim de semana!
Enriquecedor e prático. Coloquei nos meus favoritos.
Obrigado por compartilhar!