Objetivos y descubrimiento con Nmap
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.
Expandir sin escanear
Sección titulada «Expandir sin escanear»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:
nmap -sL -n -iL scope/targets.txtCompara 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.
Comprobar origen y ruta
Sección titulada «Comprobar origen y ruta»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
Qué hace el descubrimiento predeterminado
Sección titulada «Qué hace el descubrimiento predeterminado»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:
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.
Elegir probes
Sección titulada «Elegir probes»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:
sudo nmap -sn -n -PE -PS22,80,443,445 -PA80,443 -PU53,161 \ --reason -oA scans/02-discovery-expanded TARGET_CIDRNo 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.
Cuándo usar -Pn
Sección titulada «Cuándo usar -Pn»-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.
Diagnosticar un host ausente
Sección titulada «Diagnosticar un host ausente»Aísla una dirección y una variable:
sudo nmap -sn -n -PE --disable-arp-ping --reason --packet-trace TARGET_IPCompara 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.