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 3
ARPING 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.9
Doing 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/24
Interface: 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/16
 Currently 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 eth0
  TIME: 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!