XUT_ / COURSES / PENETRATION TESTER

Nmap Host Discovery Using ARP

¿Cómo podrías saber qué hosts están activos y corriendo? Es esencial evitar gastar nuestro tiempo escaneando los puertos de un dispositivo offline o una dirección IP sin uso. Hay varias maneras de descubrir hosts online. Cuando no se dan opciones de host discovery, Nmap sigue el siguiente acercamiento para descubrirlos.

  1. Cuando un usuario privilegiado trata de escanear objetivos en una red local (Ethernet), Nmap usa peticiones ARP.
  2. Cuando un usuario privilegiado trata de escanear objetivos externos a la red local, Nmap usa peticiones echo ICMP, TCP ACK al puerto 80, TCP SYN al puerto 443 e ICMP petición timestamp.
  3. Cuando un usuario sin privilegios trata de escanear objetivos fuera de la red local, Nmap se queda con un TCP 3-way handdshake mandando paquetes SYN a los puertos 80 y 443.

Nmap usa ICMP por defecto para detectar hosts activos y luego los escanea. Si quieres usar Nmap para descubrir hosts activos sin escanear puertos, puedes usar la opción -sn.

El escaneo ARP es posible sólo si estás en la musma subred que el objetivo. En un Ethernet (802.3) y WiFi (802.11), necesitas saber la dirección MAC de cualquier sistema antes de poder comunicarte con él. Si sólo quieres que Nmap escanee ARP sin puertos debes usar nmap -PR -sn donde -PR indica que sólo quieres escaneo ARP. El siguiente ejemplo muestra a Nmap usando ARP para descubrimiento de hosts.

shell
pentester@TryHackMe$ sudo nmap -PR -sn 10.10.210.6/24  
Starting Nmap 7.60 ( https://nmap.org ) at 2021-09-02 07:12 BST 
Nmap scan report for ip-10-10-210-75.eu-west-1.compute.internal (10.10.210.75) 
Host is up (0.00013s latency). 
MAC Address: 02:83:75:3A:F2:89 (Unknown) 
Nmap scan report for ip-10-10-210-100.eu-west-1.compute.internal (10.10.210.100) 
Host is up (-0.100s latency). 
MAC Address: 02:63:D0:1B:2D:CD (Unknown) 
Nmap scan report for ip-10-10-210-165.eu-west-1.compute.internal (10.10.210.165) 
Host is up (0.00025s latency). 
MAC Address: 02:59:79:4F:17:B7 (Unknown) 
Nmap scan report for ip-10-10-210-6.eu-west-1.compute.internal (10.10.210.6) 
Host is up. 
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.12 seconds

ARP hace una petición a todos los dispositivos de la subred y los que están activos responden con su MAC e IP.

Nmap Host Discovery Using ARP

Si miramos los paquetes con una herramienta como Wireshark, veremos el tráfico de red similar a la imagen de abajo.

Nmap Host Discovery Using ARP

Deberíamos mencionar un escáner construido alrededor de peticiones ARP: arp-scan. Ofrece muchas opciones para personalizar el escaneo. Visita la wiki de arp-scan para obtener más información. Una opción popular es arp-scan --localnet o arp-scan -l. Si el sistema tiene más de una interfaz y estás interesado en saber cuáles están conectados a elle podemos usar arp-scan -I <interfaz> -l.

shell
pentester@TryHackMe$ sudo arp-scan 10.10.210.6/24 
Interface: eth0, datalink type: EN10MB (Ethernet) 
WARNING: host part of 10.10.210.6/24 is non-zero 
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/) 
10.10.210.75	02:83:75:3a:f2:89	(Unknown) 
10.10.210.100	02:63:d0:1b:2d:cd	(Unknown) 
10.10.210.165	02:59:79:4f:17:b7	(Unknown)  
4 packets received by filter, 0 packets dropped by kernel 
Ending arp-scan 1.9: 256 hosts scanned in 2.726 seconds (93.91 hosts/sec). 3 responded

De forma similar, el comando arp-scan generará bastantes peticiones ARP que podemos ver usando tcpdump, Wireshark u otra herramienta similar.

Nmap Host Discovery Using ARP