Ir al contenido

Objetivos y descubrimiento con Nmap

Por

Madurezreviewed
Última revisión
Publicado
Última actualización

Antes de preguntar qué hosts responden, hay que resolver dos problemas distintos. El primero es administrativo: convertir el scope escrito en una lista exacta de direcciones sin incorporar exclusiones ni perder objetivos. El segundo es de red: elegir una interacción cuya respuesta pueda regresar desde la posición actual. Si ambos problemas se mezclan, una dirección omitida, una ruta incorrecta y un filtro ICMP terminan pareciendo el mismo resultado: silencio.

Nmap separa esas tareas. Primero expande objetivos. Después decide si cada dirección parece activa y, solo entonces, escanea puertos salvo que se le indique lo contrario. Esta secuencia explica por qué -sL, -sn y -Pn no son variantes intercambiables. Cada opción interviene en una fase diferente.

Nmap acepta IP, hostname, rango, CIDR y listas. -iL FILE carga objetivos desde un archivo. -sL enumera la expansión sin descubrir hosts ni escanear puertos. -n desactiva reverse DNS:

Revisar el scope interpretado
nmap -sL -n -iL scope/targets.txt

Compara el resultado con las inclusiones y exclusiones contractuales antes de reutilizar la lista en otra ejecución. --exclude TARGET_SPEC excluye una especificación corta. --excludefile FILE resulta más trazable para una lista mantenida. Si el recuento cambia al resolver nombres, conserva tanto la expresión original como la expansión efectiva. La primera documenta la intención. La segunda demuestra qué direcciones recibió Nmap.

Un hostname introduce una dependencia temporal. Registra la resolución usada para expandirlo. --resolve-all incorpora todas las direcciones obtenidas, mientras que el comportamiento normal puede seleccionar una. --dns-servers SERVER_LIST define los resolvers usados por la resolución de Nmap, no los que usará una aplicación remota.

nmap --iflist muestra interfaces y rutas que reconoce Nmap. Confirma también la decisión del sistema operativo con ip route get TARGET_IP, route -n get TARGET_IP en macOS o Test-NetConnection en Windows. Un host silencioso a través de la interfaz equivocada no es un host ausente.

Registra:

  • dirección e interfaz de origen
  • VPN, pivot o proxy que sostiene la ruta
  • MTU y latencia de referencia
  • resolución DNS
  • si el objetivo comparte segmento Ethernet

En Ethernet local, Nmap prefiere ARP para IPv4 y Neighbor Discovery para IPv6. La respuesta no tiene que cruzar un router y confirma que alguna interfaz reclama la dirección en el segmento. Por eso un host puede aparecer activo en la LAN aunque descarte todos los probes IP posteriores. --disable-arp-ping permite aislar una prueba IP, pero elimina precisamente esa señal de capa 2.

En una red enrutada y con privilegios para raw packets, el conjunto predeterminado combina ICMP Echo, TCP SYN a 443, TCP ACK a 80 e ICMP Timestamp. Sin esos privilegios usa conexiones TCP a 80 y 443. La combinación depende de la plataforma y versión, por lo que --packet-trace es la prueba final de lo enviado.

-sn ejecuta descubrimiento y omite el escaneo de puertos:

Descubrir hosts y conservar razones
sudo nmap -sn -n --reason -oA scans/01-discovery TARGET_CIDR

--reason muestra la respuesta que justificó Host is up. -oA conserva output normal, XML y grepable bajo el mismo basename.

Los probes se eligen por señales que puedan atravesar el entorno:

Opción Interacción Señal útil
-PR ARP IPv4 local respuesta ARP
-PE ICMP Echo Echo Reply o error relacionado
-PP ICMP Timestamp Timestamp Reply
-PS22,443 TCP SYN SYN/ACK o RST
-PA80,443 TCP ACK RST o error ICMP
-PU53,161 UDP respuesta UDP o error ICMP

Una respuesta RST prueba que un stack alcanzable procesó el probe aunque el puerto esté cerrado. Un error ICMP puede demostrar que un router o firewall alcanzó al menos una parte de la ruta. El descubrimiento registra estas señales, pero no identifica todavía el servicio ni garantiza que el mismo camino admita la interacción posterior.

Amplía la combinación de forma explícita:

Descubrimiento con señales complementarias
sudo nmap -sn -n -PE -PS22,80,443,445 -PA80,443 -PU53,161 \
--reason -oA scans/02-discovery-expanded TARGET_CIDR

No existe una lista universal. Elige puertos que la topología, exposición y controles hagan plausibles. Un -PS443 no identifica HTTPS. Solo usa ese puerto para obtener una respuesta TCP.

-Pn omite el descubrimiento y trata cada objetivo como activo para el escaneo solicitado. No desactiva ICMP de forma general, no demuestra actividad y no hace el escaneo invisible.

Úsalo cuando:

  • el objetivo concreto ya se confirmó por otra señal
  • el descubrimiento está filtrado, pero hay un puerto que debe probarse
  • la especificación es pequeña y el coste temporal es conocido

Evita aplicarlo sin medir a rangos grandes. Nmap esperará por cada dirección silenciosa y cada puerto.

Aísla una dirección y una variable:

Trazar ICMP sin sustitución por ARP
sudo nmap -sn -n -PE --disable-arp-ping --reason --packet-trace TARGET_IP

Compara después ARP local, TCP SYN, TCP ACK y una interacción de aplicación conocida. Conserva errores ICMP. administratively prohibited, host unreachable y silencio completo no describen la misma ruta.

Si ARP responde y TCP no, el host existe, pero la política o el estado del puerto limitan la siguiente fase. Si TCP responde desde una VPN y no desde el acceso externo, la diferencia pertenece a la posición, no a la identidad del activo. Si ningún probe obtiene respuesta y la captura tampoco muestra errores ICMP, todavía quedan abiertas la pérdida, el filtrado y una ruta de retorno inexistente.

Un resultado negativo queda como «sin señal con los probes X desde la posición Y a la hora Z». La cobertura decide si se amplían probes, se cambia de posición o se acepta la limitación. Esa formulación conserva lo que realmente se sabe y evita convertir una ausencia de evidencia en un inventario incompleto.