-sL(escaneo de lista)

El escaneo de lista es una forma degenerada de descubrimiento de hosts que simplemente lista cada uno de los hosts de la(s) red(es) especificada(s), sin enviar ningún paquete a los hosts objetivo. Por defecto, Nmap sigue realizando una resolución DNS inversa en los equipos para conocer sus nombres. A menudo es sorprendente la cantidad de información útil que dan los nombres de hosts simples. Por ejemplo, fw.chi es el nombre del cortafuegos de una empresa en Chicago. Nmap también informa del número total de direcciones IP al final. El escaneo de la lista es una buena comprobación para asegurarse de que tiene las direcciones IP adecuadas para sus objetivos. Si los hosts tienen nombres de dominio que no reconoce, vale la pena investigar más para evitar escanear la red de la compañía equivocada.

Dado que la idea es simplemente imprimir una lista de hosts objetivo, las opciones para una funcionalidad de mayor nivel como el escaneo de puertos, la detección de SO o el descubrimiento de hosts no pueden combinarse con esto. Si desea deshabilitar el descubrimiento de hosts mientras sigue realizando estas funcionalidades de alto nivel, lea la opción -Pn (skip host discovery).

-sn(No port scan)

Esta opción le dice a Nmap que no haga un escaneo de puertos después del descubrimiento de hosts, y que sólo imprima los hosts disponibles que respondieron a las sondas de descubrimiento de hosts. Esto se conoce a menudo como un «escaneo de ping», pero también puede solicitar que se ejecuten los scripts de traceroute y de host NSE. Esto es por defecto un paso más intrusivo que el escaneo de la lista, y a menudo puede ser utilizado para los mismos fines. Permite un ligero reconocimiento de una red objetivo sin llamar mucho la atención. Saber cuántos hosts están activos es más valioso para los atacantes que la lista proporcionada por el escaneo de lista de cada IP y nombre de host.

Los administradores de sistemas a menudo encuentran esta opción valiosa también. Se puede utilizar fácilmente para contar las máquinas disponibles en una red o supervisar la disponibilidad del servidor. Esto se llama a menudo un barrido de ping, y es más fiable que hacer ping a la dirección de difusión porque muchos hosts no responden a las consultas de difusión.

El descubrimiento de hosts por defecto realizado con -sn consiste en una solicitud de eco ICMP, TCP SYN al puerto 443, TCP ACK al puerto 80, y una solicitud de marca de tiempo ICMP por defecto. Cuando es ejecutado por un usuario sin privilegios, sólo se envían paquetes SYN (utilizando una llamada connect) a los puertos 80 y 443 del objetivo. Cuando un usuario con privilegios intenta escanear objetivos en una red ethernet local, se utilizan solicitudes ARP a menos que se haya especificado --send-ip. La opción -sn puede combinarse con cualquiera de los tipos de sonda de descubrimiento (las opciones -P*) para una mayor flexibilidad. Si se utiliza cualquiera de esas opciones de tipo de sonda y número de puerto, se anulan las sondas por defecto. Cuando existen cortafuegos estrictos entre el host de origen que ejecuta Nmap y la red de destino, se recomienda utilizar estas técnicas avanzadas. De lo contrario, los hosts podrían perderse cuando el cortafuegos deja caer las sondas o sus respuestas.

En versiones anteriores de Nmap, -sn se conocía como -sP.

-Pn(No ping)

Esta opción omite la etapa de descubrimiento de hosts por completo. Normalmente, Nmap utiliza esta etapa para determinar las máquinas activas para un escaneo más pesado y para medir la velocidad de la red. Por defecto, Nmap sólo realiza sondeos más pesados como escaneos de puertos, detección de versiones o detección de sistemas operativos contra los equipos que se encuentran activos. Si se desactiva el descubrimiento de hosts con -Pn, Nmap intentará realizar las funciones de sondeo solicitadas contra cada dirección IP de destino especificada. Por lo tanto, si se especifica una red de tamaño /16 en la línea de órdenes, se analizarán las 65.536 direcciones IP. Se omite el descubrimiento de hosts como en el sondeo de lista, pero en lugar de detenerse e imprimir la lista de objetivos, Nmap continúa realizando las funciones solicitadas como si cada IP objetivo estuviera activa. Se utilizan los parámetros de temporización por defecto, lo que puede dar lugar a escaneos más lentos. Para omitir el descubrimiento de hosts y el escaneo de puertos, mientras se permite la ejecución de NSE, utilice las dos opciones -Pn -sn juntas.

Para máquinas en una red ethernet local, el escaneo ARP se seguirá realizando (a menos que se especifique --disable-arp-ping o --send-ip) porque Nmap necesita las direcciones MAC para seguir escaneando los hosts objetivo. En versiones anteriores de Nmap, -Pn era -P0 y -PN.

-PS <port list>(TCP SYN Ping)

Esta opción envía un paquete TCP vacío con la bandera SYN activada. El puerto de destino por defecto es 80 (configurable en tiempo de compilación cambiando DEFAULT_TCP_PROBE_PORT_SPEC en nmap.h). Se pueden especificar puertos alternativos como parámetro. La sintaxis es la misma que para -p, excepto que no se permiten especificadores de tipo de puerto como T:. Los ejemplos son -PS22 y -PS22-25,80,113,1050,35000. Tenga en cuenta que no puede haber ningún espacio entre -PS y la lista de puertos. Si se especifican varias sondas se enviarán en paralelo.

La bandera SYN sugiere al sistema remoto que está intentando establecer una conexión. Normalmente, el puerto de destino se cerrará y se enviará un paquete RST (reset) de vuelta. Si el puerto está abierto, el objetivo dará el segundo paso del apretón de manos TCP respondiendo con un paquete TCP SYN/ACK. La máquina que ejecuta Nmap entonces interrumpe la conexión naciente respondiendo con un RST en lugar de enviar un paquete ACK que completaría el apretón de manos a tres bandas y establecería una conexión completa. El paquete RST es enviado por el kernel de la máquina que ejecuta Nmap en respuesta al inesperado SYN/ACK, no por el propio Nmap.

A Nmap no le importa si el puerto está abierto o cerrado. Tanto la respuesta RST como la SYN/ACK comentadas anteriormente le dicen a Nmap que el host está disponible y responde.

En los equipos Unix, sólo el usuario privilegiado root puede generalmente enviar y recibir paquetes TCP sin procesar. Para los usuarios sin privilegios, se emplea automáticamente una solución mediante la cual se inicia la llamada al sistema connect contra cada puerto de destino. Esto tiene el efecto de enviar un paquete SYN al host de destino, en un intento de establecer una conexión. Si connect devuelve con un éxito rápido o un fallo ECONNREFUSED, la pila TCP subyacente debe haber recibido un SYN/ACK o RST y el host está marcado como disponible. Si el intento de conexión se deja colgado hasta que se alcanza un tiempo de espera, el host se marca como caído.

-PA <port list>(TCP ACK Ping)

El ping TCP ACK es bastante similar al ping SYN que acabamos de discutir. La diferencia, como probablemente adivinará, es que la bandera TCP ACK se establece en lugar de la bandera SYN. Este paquete ACK pretende reconocer los datos sobre una conexión TCP establecida, pero no existe tal conexión. Así que los hosts remotos siempre deben responder con un paquete RST, revelando su existencia en el proceso.

La opción -PA utiliza el mismo puerto por defecto que la sonda SYN (80) y también puede tomar una lista de puertos de destino en el mismo formato. Si un usuario sin privilegios intenta esto, se utiliza la solución connect discutida anteriormente. Esta solución es imperfecta porque connect en realidad está enviando un paquete SYN en lugar de un ACK.

La razón para ofrecer sondas de ping tanto SYN como ACK es maximizar las posibilidades de eludir los cortafuegos. Muchos administradores configuran los routers y otros cortafuegos simples para bloquear los paquetes SYN entrantes, excepto los destinados a servicios públicos como el sitio web de la empresa o el servidor de correo. Esto impide otras conexiones entrantes a la organización, mientras que permite a los usuarios realizar conexiones salientes a Internet sin obstáculos. Este enfoque no orientado al destino ocupa pocos recursos en el cortafuegos/enrutador y es ampliamente soportado por los filtros de hardware y software. El software de cortafuegos Netfilter/iptables de Linux ofrece la opción conveniente --syn para implementar este enfoque sin estado. Cuando se aplican reglas de cortafuegos sin estado como ésta, es probable que las sondas de ping SYN (-PS) se bloqueen cuando se envíen a puertos de destino cerrados. En estos casos, la sonda ACK brilla ya que atraviesa estas reglas.

Otro tipo común de cortafuegos utiliza reglas con estado que descartan los paquetes inesperados. Esta característica se encontró inicialmente sobre todo en los cortafuegos de gama alta, aunque se ha vuelto mucho más común con los años. El sistema Netfilter/iptables de Linux lo soporta a través de la opción --state, que categoriza los paquetes basándose en el estado de la conexión. Es más probable que una sonda SYN funcione contra un sistema de este tipo, ya que los paquetes ACK inesperados se reconocen generalmente como falsos y se descartan. Una solución a este dilema es enviar tanto sondas SYN como ACK especificando -PS y -PA.

-PU <port list>(UDP Ping)

Otra opción de descubrimiento de hosts es el UDP ping, que envía un paquete UDP a los puertos dados. Para la mayoría de los puertos, el paquete estará vacío, aunque algunos utilizan una carga útil específica del protocolo que es más probable que obtenga una respuesta.Vea la sección llamada «Cargas útiles UDP: nmap-payloads» para una descripción de la base de datos de cargas útiles.El contenido del paquete también puede ser afectado con las opciones --data,--data-string y --data-length.

La lista de puertos toma el mismo formato que con las opciones -PS y -PA previamente discutidas. Si no se especifican puertos, el valor por defecto es 40125. Este valor por defecto puede ser configurado en tiempo de compilación cambiando DEFAULT_UDP_PROBE_PORT_SPEC en nmap.h. Se utiliza un puerto muy poco común por defecto porque el envío a puertos abiertos es a menudo indeseable para este tipo de escaneo en particular.

Al llegar a un puerto cerrado en la máquina objetivo, la sonda UDP debería obtener un paquete ICMP de puerto inalcanzable a cambio. Esto significa para Nmap que la máquina está en funcionamiento y disponible. Muchos otros tipos de errores ICMP, como host/red inalcanzable o TTL excedido, son indicativos de un host caído o inalcanzable. La falta de respuesta también se interpreta así. Si se alcanza un puerto abierto, la mayoría de los servicios simplemente ignoran el paquete vacío y no devuelven ninguna respuesta. Esta es la razón por la que el puerto de sondeo por defecto es el 40125, que es muy poco probable que esté en uso. Unos pocos servicios, como el protocolo generador de caracteres (chargen), responderán a un paquete UDP vacío, y así revelarán a Nmap que la máquina está disponible.

La principal ventaja de este tipo de sondeo es que evita los cortafuegos y los filtros que sólo filtran TCP. Por ejemplo, una vez tuve un router inalámbrico de banda ancha Linksys BEFW11S4. La interfaz externa de este dispositivo filtró todos los puertos TCP por defecto, pero las sondas UDP seguirían provocando mensajes de puerto inalcanzable y, por lo tanto, delatarían al dispositivo.

-PY <port list>(SCTP INIT Ping)

Esta opción envía un paquete SCTP que contiene un trozo mínimo de INIT. El puerto de destino por defecto es 80 (configurable en tiempo de compilación cambiando DEFAULT_SCTP_PROBE_PORT_SPEC en nmap.h). Se pueden especificar puertos alternativos como parámetro. La sintaxis es la misma que para -p, excepto que no se permiten especificadores de tipo de puerto como S:. Los ejemplos son -PY22 y -PY22,80,179,5060. Tenga en cuenta que no puede haber ningún espacio entre -PY y la lista de puertos. Si se especifican varias sondas se enviarán en paralelo.

El chunk INIT sugiere al sistema remoto que está intentando establecer una asociación. Normalmente el puerto de destino estará cerrado, y se enviará un chunk ABORT de vuelta. Si el puerto está abierto, el destino dará el segundo paso de un SCTP four-way-handshake respondiendo con un chunk INIT-ACK. Si la máquina que ejecuta Nmap tiene una pila SCTP funcional, entonces rompe la asociación naciente respondiendo con un trozo ABORT en lugar de enviar un trozo COOKIE-ECHO que sería el siguiente paso en el saludo de cuatro vías. El paquete ABORT es enviado por el núcleo de la máquina que ejecuta Nmap en respuesta al inesperado INIT-ACK, no por el propio Nmap.

A Nmap no le importa si el puerto está abierto o cerrado. Tanto la respuesta ABORT como la INIT-ACK comentadas anteriormente le dicen a Nmap que el host está disponible y responde.

En equipos Unix, sólo el usuario privilegiado root es generalmente capaz de enviar y recibir paquetes SCTP sin procesar. El uso de SCTP INIT Pings no es posible actualmente para los usuarios sin privilegios.

-PE;-PP;-PM(Tipos de Ping ICMP)

Además de los tipos inusuales de descubrimiento de hosts TCP, UDP y SCTP discutidos previamente, Nmap puede enviar los paquetes estándar enviados por el omnipresente programa ping. Nmap envía un paquete ICMP de tipo 8 (solicitud de eco) a las direcciones IP de destino, esperando un tipo 0 (respuesta de eco) a cambio de los hosts disponibles. Desgraciadamente para los exploradores de la red, muchos hosts y cortafuegos bloquean ahora estos paquetes, en lugar de responder como requiere el RFC 1122. Por esta razón, los escaneos sólo ICMP rara vez son lo suficientemente fiables contra objetivos desconocidos en Internet. Pero para los administradores de sistemas que monitorean una red interna, pueden ser un enfoque práctico y eficiente. Utilice la opción -PE para habilitar este comportamiento de solicitud de eco.

Aunque la solicitud de eco es la consulta estándar de ping ICMP, Nmap no se detiene ahí. Los estándares ICMP (RFC 792 y RFC 950 ) también especifican los paquetes de solicitud de marca de tiempo, solicitud de información y solicitud de máscara de dirección como códigos 13, 15 y 17, respectivamente. Aunque el propósito ostensible de estas consultas es conocer información como las máscaras de dirección y la hora actual, pueden utilizarse fácilmente para el descubrimiento de hosts. Un sistema que responde está en funcionamiento y disponible. Nmap no implementa actualmente paquetes de solicitud de información, ya que no están ampliamente soportados. El RFC 1122 insiste en que «un host NO DEBERÍA implementar estos mensajes». Las consultas de marca de tiempo y máscara de dirección se pueden enviar con las opciones -PP y -PM, respectivamente. Una respuesta de marca de tiempo (código ICMP 14) o de máscara de dirección (código 18) revela que el host está disponible. Estas dos consultas pueden ser valiosas cuando los administradores bloquean específicamente los paquetes de solicitud de eco olvidando que otras consultas ICMP pueden ser usadas para el mismo propósito.

-PO <protocol list>(Protocolo IP Ping)

Una de las más nuevas opciones de descubrimiento de hosts es el protocolo IP ping, que envía paquetes IP con el número de protocolo especificado en su cabecera IP. La lista de protocolos tiene el mismo formato que las listas de puertos en las opciones de descubrimiento de hosts TCP, UDP y SCTP previamente discutidas. Si no se especifica ningún protocolo, por defecto se envían múltiples paquetes IP para ICMP (protocolo 1), IGMP (protocolo 2) e IP-in-IP (protocolo 4). Los protocolos por defecto pueden ser configurados en tiempo de compilación cambiando DEFAULT_PROTO_PROBE_PORT_SPEC en nmap.h. Tenga en cuenta que para el ICMP, IGMP, TCP (protocolo 6), UDP (protocolo 17) y SCTP (protocolo 132), los paquetes se envían con las cabeceras de protocolo adecuadas, mientras que otros protocolos se envían sin datos adicionales más allá de la cabecera IP (a menos que se especifique alguna de las opciones --data, --data-string o --data-length).

Este método de descubrimiento de hosts busca respuestas que utilicen el mismo protocolo que una sonda, o mensajes ICMP de protocolo inalcanzable que significan que el protocolo dado no es compatible con el host de destino. Cualquier tipo de respuesta significa que el host de destino está vivo.

--disable-arp-ping(No ARP o ND Ping)

Nmap normalmente hace el descubrimiento ARP o IPv6 Neighbor Discovery (ND) de los hosts ethernet conectados localmente, incluso si se utilizan otras opciones de descubrimiento de hosts como -Pn o -PE. Para desactivar este comportamiento implícito, utilice la opción --disable-arp-ping.

El comportamiento por defecto es normalmente más rápido, pero esta opción es útil en redes que utilizan ARP proxy, en las que un router responde especulativamente a todas las peticiones ARP, haciendo que todos los objetivos parezcan estar activos según el escaneo ARP.

--discovery-ignore-rst

En algunos casos, los cortafuegos pueden falsear las respuestas de reinicio TCP (RST) en respuesta a sondeos a direcciones no ocupadas o no permitidas. Dado que Nmap normalmente considera las respuestas RST como una prueba de que el objetivo está activo, esto puede hacer que se pierda tiempo analizando objetivos que no están ahí. El uso de --discovery-ignore-rst evitará que Nmap considere estas respuestas durante el descubrimiento de hosts. Es posible que tenga que seleccionar opciones adicionales de descubrimiento de hosts para asegurarse de que no se pierden objetivos en este caso.

--traceroute

(Trace path to host)

Los trazadores de rutas se realizan después del escaneo utilizando la información de los resultados del escaneo para determinar el puerto y el protocolo más probable para llegar al objetivo. Funciona con todos los tipos de escaneo, excepto los escaneos de conexión (-sT) y los escaneos de inactividad (-sI). Todos los rastreos utilizan el modelo de tiempo dinámico de Nmap y se realizan en paralelo.

Traceroute funciona enviando paquetes con un TTL (tiempo de vida) bajo en un intento de obtener mensajes ICMP Time Exceeded de los saltos intermedios entre el escáner y el host objetivo. Las implementaciones estándar de traceroute comienzan con un TTL de 1 y van incrementando el TTL hasta que se alcanza el host de destino. El traceroute de Nmap comienza con un TTL alto y luego disminuye el TTL hasta llegar a cero. Hacerlo al revés permite a Nmap emplear algoritmos de caché inteligentes para acelerar el rastreo en múltiples hosts. De media, Nmap envía entre 5 y 10 paquetes menos por máquina, dependiendo de las condiciones de la red. Si se está analizando una única subred (por ejemplo, 192.168.0.0/24) Nmap puede que sólo tenga que enviar dos paquetes a la mayoría de los hosts.

-n(Sin resolución DNS)

Indica a Nmap que nunca haga una resolución DNS inversa en las direcciones IP activas que encuentre. Dado que el DNS puede ser lento incluso con el resolvedor stub paralelo incorporado de Nmap, esta opción puede reducir drásticamente los tiempos de exploración.

-R(Resolución DNS para todos los objetivos)

Indica a Nmap que siempre realice la resolución DNS inversa en las direcciones IP objetivo. Normalmente el DNS inverso sólo se realiza contra hosts que responden (en línea).

--resolve-all(Escanear cada dirección resuelta)

Si un nombre de host objetivo se resuelve a más de una dirección, escanear todas ellas. El comportamiento por defecto es escanear sólo la primera dirección resuelta. En cualquier caso, sólo se escanearán las direcciones de la familia de direcciones apropiada: IPv4 por defecto, IPv6 con -6.

--system-dns(Usar el resolver DNS del sistema)

Por defecto, Nmap resuelve las direcciones IP de forma inversa enviando consultas directamente a los servidores de nombres configurados en su máquina y luego escuchando las respuestas. Se realizan muchas peticiones (a menudo docenas) en paralelo para mejorar el rendimiento. Especifique esta opción para utilizar su sistema de resolución en su lugar (una IP a la vez a través de la llamada getnameinfo). Esto es más lento y raramente útil a menos que encuentre un error en el resolvedor paralelo de Nmap (por favor, háganoslo saber si lo encuentra). El resolvedor del sistema se utiliza siempre para las búsquedas directas (obtener una dirección IP a partir de un nombre de host).

--dns-servers <server1>] (Servidores a utilizar para consultas DNS inversas)

Por defecto, Nmap determina sus servidores DNS (para la resolución rDNS) a partir de su fichero resolv.conf (Unix) o del Registro (Win32). Alternativamente, puede utilizar esta opción para especificar servidores alternativos. Esta opción no es respetada si usted está usando --system-dns. El uso de múltiples servidores DNS es a menudo más rápido, especialmente si elige servidores autoritativos para su espacio IP de destino. Esta opción también puede mejorar la ocultación, ya que sus peticiones pueden ser rebotadas por casi cualquier servidor DNS recursivo en Internet.

Esta opción también es útil cuando se escanean redes privadas. A veces sólo unos pocos servidores de nombres proporcionan información rDNS adecuada, y puede que ni siquiera sepas dónde están. Puede escanear la red en busca del puerto 53 (tal vez con detección de versión), y luego intentar escaneos de lista Nmap (-sL) especificando cada servidor de nombres uno a la vez con --dns-servers hasta que encuentre uno que funcione.

Esta opción podría no ser honrada si la respuesta DNS excede el tamaño de un paquete UDP. En tal situación, nuestro resolvedor DNS hará el mejor esfuerzo para extraer una respuesta del paquete truncado, y si no tiene éxito, volverá a utilizar el resolvedor del sistema. Además, las respuestas que contengan alias CNAME volverán a utilizar el resolvedor del sistema.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.