0% encontró este documento útil (0 votos)
41 vistas47 páginas

Nmap

Cargado por

psalazarb
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas47 páginas

Nmap

Cargado por

psalazarb
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Capítulo 15.

Guía de referencia de Nmap


Tabla de contenido
 Descripción
 Resumen de opciones
 Especificación de objetivo
 Descubrimiento de host
 Conceptos básicos del escaneo de puertos
 Técnicas de escaneo de puertos
 Especificación de puerto y orden de escaneo
 Detección de servicios y versiones
 Detección del sistema operativo
 Motor de secuencias de comandos Nmap (NSE)
 Tiempo y rendimiento
 Evasión y suplantación de identidades de firewall e IDS
 Producción
 Opciones varias
 Interacción en tiempo de ejecución
 Ejemplos
 Libro de Nmap
 Insectos
 Autores
 Avisos legales
o Derechos de autor y licencias de Nmap

o Licencia Creative Commons para esta guía de Nmap

o Disponibilidad del código fuente y contribuciones de la comunidad

o Sin garantía

o Uso inapropiado

o Avisos sobre software y financiación de terceros

o Control de exportaciones de Estados Unidos

Nombre
Nmap: herramienta de exploración de red y escáner de puertos y seguridad
Sinopsis
nmap [ <Scan Type> ...] [ <Options> ] { <target specification> }
Descripción
Nmap ( Network Mapper ) es una herramienta de código abierto para la
exploración de redes y la auditoría de seguridad. Fue diseñada para escanear
rápidamente redes grandes, aunque funciona bien contra hosts individuales.
Nmap utiliza paquetes IP sin procesar de formas novedosas para determinar
qué hosts están disponibles en la red, qué servicios (nombre y versión de la
aplicación) ofrecen esos hosts, qué sistemas operativos (y versiones del SO)
están ejecutando, qué tipo de filtros de paquetes/cortafuegos están en uso y
docenas de otras características. Si bien Nmap se usa comúnmente para
auditorías de seguridad, muchos administradores de sistemas y redes lo
encuentran útil para tareas rutinarias como el inventario de la red, la gestión
de los cronogramas de actualización de servicios y la supervisión del tiempo de
actividad de los hosts o servicios.
La salida de Nmap es una lista de objetivos escaneados, con información
adicional sobre cada uno de ellos según las opciones utilizadas. Entre esa
información, la clave es la “ tabla de puertos interesantes ” . En esa tabla se
enumeran el número de puerto y el protocolo, el nombre del servicio y el
estado. El estado puede ser open, filtered, closedo unfiltered. Open significa
que una aplicación en la máquina de destino está escuchando
conexiones/paquetes en ese puerto. Filtered significa que un firewall, filtro u
otro obstáculo de red está bloqueando el puerto, de modo que Nmap no puede
determinar si está openo no bloqueado closed. Closed Los puertos no tienen
ninguna aplicación que los escuche, aunque podrían abrirse en cualquier
momento. Los puertos se clasifican como unfiltered cuando responden a las
sondas de Nmap, pero Nmap no puede determinar si están abiertas o cerradas.
Nmap informa las combinaciones de estados open|filtered yclosed|
filtered Cuando no se puede determinar cuál de los dos estados describe un
puerto. La tabla de puertos también puede incluir detalles de la versión del
software cuando se ha solicitado la detección de la versión. Cuando se solicita
un escaneo de protocolo IP ( -sO), Nmap proporciona información sobre los
protocolos IP admitidos en lugar de los puertos de escucha.
Además de la interesante tabla de puertos, Nmap puede proporcionar más
información sobre los destinos, incluidos nombres DNS inversos, conjeturas del
sistema operativo, tipos de dispositivos y direcciones MAC.
En el Ejemplo 15.1 se muestra un análisis típico de Nmap . Los únicos
argumentos de Nmap utilizados en este ejemplo son -A, para habilitar la
detección del sistema operativo y la versión, el análisis de scripts y el
traceroute; -T4para una ejecución más rápida; y luego el nombre del host.
Ejemplo 15.1. Un escaneo Nmap representativo
#nmap -A -T4 [Link]

Informe de escaneo de Nmap para [Link] ([Link])


El host está activo (latencia de 0,029 s).
Registro rDNS para [Link]: [Link]
No se muestra: 995 puertos cerrados
VERSIÓN DEL SERVICIO DEL ESTADO DEL PUERTO
22/tcp abrir ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocolo 2.0)
| clave de host ssh: 1024 [Link]
(DSA)
|_2048 [Link] (RSA)
80/tcp abre http Apache httpd 2.2.14 ((Ubuntu))
|_http-title: ¡Adelante, escanéame!
646/tcp ldp filtrado
1720/tcp filtrado H.323/Q.931
9929/tcp abierto nping-echo Eco de nping
Tipo de dispositivo: propósito general
Ejecutando: Linux 2.6.X
Sistema operativo CPE: cpe:/o:linux:linux_kernel:2.6.39
Detalles del sistema operativo: Linux 2.6.39
Distancia de la red: 11 saltos
Información del servicio: SO: Linux; CPE: cpe:/o:linux:kernel

TRACEROUTE (utilizando el puerto 53/tcp)


DIRECCIÓN DE HOP RTT
[Cortar los primeros 10 saltos para abreviar]
11 17,65 ms [Link] ([Link])

Nmap finalizado: 1 dirección IP (1 host activo) escaneada en 14,40 segundos


Resumen de opciones
Este resumen de opciones se imprime cuando se ejecuta Nmap sin argumentos
y la última versión siempre está disponible
en [Link] Ayuda a recordar las
opciones más comunes, pero no sustituye a la documentación detallada que se
incluye en el resto de este manual. Algunas opciones poco claras ni siquiera se
incluyen aquí.
Nmap 7.93SVN ([Link]
Uso: nmap [Tipo(s) de escaneo] [Opciones] {especificación de destino}
ESPECIFICACIÓN DEL OBJETIVO:
Puede pasar nombres de host, direcciones IP, redes, etc.
Ejemplo: [Link], [Link]/24, [Link]; 10.0.0-255.1-254
-iL <nombre_archivo_de_entrada>: Entrada de la lista de hosts/redes
-iR <num hosts>: elige objetivos aleatorios
--exclude <host1[,host2][,host3],...>: Excluir hosts/redes
--excludefile <archivo_de_exclusión>: Excluir lista del archivo
DESCUBRIMIENTO DEL ANFITRIÓN:
-sL: Lista de escaneo: simplemente enumera los objetivos para escanear
-sn: Ping Scan - deshabilitar escaneo de puertos
-Pn: Tratar a todos los hosts como si estuvieran en línea: omitir el
descubrimiento de host
-PS/PA/PU/PY[lista de puertos]: detección de TCP SYN/ACK, UDP o SCTP en los
puertos indicados
-PE/PP/PM: sondas de detección de solicitudes de eco ICMP, marca de tiempo
y máscara de red
-PO[lista de protocolos]: Ping de protocolo IP
-n/-R: Nunca realizar resolución DNS/Resolver siempre [predeterminado: a
veces]
--dns-servers <serv1[,serv2],...>: Especificar servidores DNS personalizados
--system-dns: utiliza el solucionador DNS del sistema operativo
--traceroute: rastrea la ruta de salto a cada host
TÉCNICAS DE ESCANEADO:
-sS/sT/sA/sW/sM: escaneos TCP SYN/Connect()/ACK/Window/Maimon
-sU: escaneo UDP
-sN/sF/sX: escaneos TCP Null, FIN y Xmas
--scanflags <flags>: Personaliza los indicadores de escaneo TCP
-sI <host zombie[:probeport]>: Escaneo inactivo
-sY/sZ: escaneos SCTP INIT/COOKIE-ECHO
-sO: escaneo de protocolo IP
-b <host de retransmisión FTP>: escaneo de rebote de FTP
ESPECIFICACIÓN DEL PUERTO Y ORDEN DE ESCANEO:
-p <rangos de puertos>: escanear solo los puertos especificados
Ejemplo: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <rangos de puertos>: excluye los puertos especificados del
escaneo
-F: Modo rápido: escanea menos puertos que el escaneo predeterminado
-r: escanear puertos secuencialmente - no aleatorizar
--top-ports <número>: escanea <número> puertos más comunes
--port-ratio <ratio>: escanea puertos más comunes que <ratio>
DETECCIÓN DE SERVICIO/VERSIÓN:
-sV: Sondear puertos abiertos para determinar información de servicio/versión
--version-intensity <nivel>: se establece de 0 (ligero) a 9 (se prueban todas
las sondas)
--version-light: Limitar a las sondas más probables (intensidad 2)
--version-all: Probar cada sonda individualmente (intensidad 9)
--version-trace: muestra la actividad de escaneo de versiones detallada (para
depuración)
ESCANEO DE GUIÓN:
-sC: equivalente a --script=predeterminado
--script=<Lua scripts>: <Lua scripts> es una lista separada por comas de
directorios, archivos de script o categorías de script
--script-args=<n1=v1,[n2=v2,...]>: proporciona argumentos a los scripts
--script-args-file=filename: proporciona argumentos de script NSE en un
archivo
--script-trace: Muestra todos los datos enviados y recibidos
--script-updatedb: Actualizar la base de datos de scripts.
--script-help=<scripts de Lua>: Mostrar ayuda sobre los scripts.
<Lua scripts> es una lista separada por comas de archivos de script o
categorías de script.
DETECCIÓN DEL SISTEMA OPERATIVO:
-O: Habilitar detección de SO
--osscan-limit: limita la detección del sistema operativo a objetivos
prometedores
--osscan-guess: Adivina el sistema operativo de forma más agresiva
TIEMPO Y RENDIMIENTO:
Las opciones que toman <tiempo> están en segundos o agregan 'ms'
(milisegundos).
's' (segundos), 'm' (minutos) o 'h' (horas) al valor (por ejemplo, 30 m).
-T<0-5>: Establecer plantilla de tiempo (cuanto más alto, más rápido)
--min-hostgroup/max-hostgroup <size>: tamaños de grupos de escaneo de
host paralelos
--min-parallelism/max-parallelism <numprobes>: Paralelización de la sonda
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <tiempo>: especifica
tiempo de ida y vuelta de la sonda.
--max-retries <intentos>: Limita el número de retransmisiones de la sonda de
escaneo de puerto.
--host-timeout <tiempo>: Renunciar al objetivo después de este tiempo
--scan-delay/--max-scan-delay <tiempo>: Ajusta el retraso entre sondas
--min-rate <número>: envía paquetes a una velocidad no inferior a
<número> por segundo
--max-rate <número>: envía paquetes a una velocidad no superior a
<número> por segundo
EVASIÓN Y SUPLANTACIÓN DE FIREWALL/IDS:
-f; --mtu <val>: fragmenta paquetes (opcionalmente con la MTU dada)
-D <señuelo1,señuelo2[,ME],...>: ocultar un escaneo con señuelos
-S <Dirección IP>: Dirección de origen falsa
-e <iface>: Utilizar la interfaz especificada
-g/--source-port <portnum>: utiliza el número de puerto indicado
--proxies <url1,[url2],...>: retransmitir conexiones a través de servidores
proxy HTTP/SOCKS4
--data <cadena hexadecimal>: agrega una carga útil personalizada a los
paquetes enviados
--data-string <string>: agrega una cadena ASCII personalizada a los paquetes
enviados
--data-length <num>: agrega datos aleatorios a los paquetes enviados
--ip-options <opciones>: envía paquetes con las opciones de IP especificadas
--ttl <val>: Establece el campo de tiempo de vida de IP
--spoof-mac <dirección MAC/prefijo/nombre del proveedor>: falsifica tu
dirección MAC
--badsum: envía paquetes con una suma de comprobación TCP/UDP/SCTP
falsa
PRODUCCIÓN:
-oN/-oX/-oS/-oG <archivo>: escaneo de salida en formato normal, XML, s|
<rIpt kIddi3,
y formato Grepable, respectivamente, al nombre de archivo dado.
-oA <nombre base>: Salida en los tres formatos principales a la vez
-v: aumenta el nivel de verbosidad (use -vv o más para un mayor efecto)
-d: Aumenta el nivel de depuración (usa -dd o más para un mayor efecto)
--reason: Muestra el motivo por el cual un puerto se encuentra en un estado
particular
--open: Mostrar solo puertos abiertos (o posiblemente abiertos)
--packet-trace: muestra todos los paquetes enviados y recibidos
--iflist: Imprime las interfaces y rutas del host (para depuración)
--append-output: Anexar a los archivos de salida especificados en lugar de
bloquearlos
--resume <nombre de archivo>: reanudar un análisis abortado
--noninteractive: Deshabilitar interacciones en tiempo de ejecución a través
del teclado
--stylesheet <ruta/URL>: hoja de estilo XSL para transformar la salida XML a
HTML
--webxml: Hoja de estilo de referencia de [Link] para XML más portable
--no-stylesheet: Evitar la asociación de la hoja de estilo XSL con la salida XML
MISCELÁNEA:
-6: Habilitar escaneo IPv6
-A: Habilitar detección de SO, detección de versión, escaneo de scripts y
traceroute
--datadir <dirname>: especifica la ubicación del archivo de datos de Nmap
personalizado
--send-eth/--send-ip: Enviar utilizando tramas Ethernet sin procesar o
paquetes IP
--privileged: Suponga que el usuario tiene todos los privilegios
--unprivileged: Se supone que el usuario no tiene privilegios de socket sin
formato
-V: Número de versión de impresión
-h: Imprimir esta página de resumen de ayuda.
EJEMPLOS:
nmap -v -A [Link]
nmap -v -sn [Link]/16 [Link]/8
nmap -v -iR 10000 -Pn -p 80
CONSULTE LA PÁGINA DEL MANUAL ([Link] PARA
OBTENER MÁS OPCIONES Y EJEMPLOS
Especificación de objetivo
Todo lo que no sea una opción (o un argumento de opción) en la línea de
comandos de Nmap se trata como una especificación de host de destino. El
caso más simple es especificar una dirección IP o un nombre de host de destino
para el análisis.
Cuando se proporciona un nombre de host como destino, se resuelve a través
del Sistema de nombres de dominio (DNS) para determinar la dirección IP que
se va a escanear. Si el nombre se resuelve en más de una dirección IP, solo se
escaneará la primera. Para que Nmap escanee todas las direcciones resueltas
en lugar de solo la primera, use la --resolve-allopción.
A veces, es posible que desees escanear una red completa de hosts
adyacentes. Para ello, Nmap admite el estilo [Link]. Puede
agregar a una dirección IP o nombre de host y Nmap escaneará cada dirección
IP para la cual las primeras sean las mismas que para la IP de referencia o
nombre de host proporcionado. Por ejemplo, escanearía los 256 hosts entre
[Link] (binario: ) y [Link] (binario: ), ambos
inclusive. escanearía exactamente los mismos objetivos. Dado que el host
[Link]/<numbits><numbits>[Link]/2411000000 10101000
00001010 0000000011000000 10101000 00001010
11111111192.168.10.40/24 Si la dirección IP es [Link], la
especificación [Link]/16escanearía las 65.536 direcciones IP entre
[Link] y [Link]. El valor más pequeño permitido es /0, que se dirige
a toda Internet. El valor más grande para IPv4 es /32, que escanea solo el host
o la dirección IP nombrados porque todos los bits de dirección son fijos. El valor
más grande para IPv6 es /128, que hace lo mismo.
La notación CIDR es corta pero no siempre lo suficientemente flexible. Por
ejemplo, es posible que desee escanear [Link]/16 pero omitir cualquier IP
que termine en .0 o .255 porque pueden usarse como direcciones de red de
subred y de difusión. Nmap admite esto mediante el direccionamiento por
rango de octetos. En lugar de especificar una dirección IP normal, puede
especificar una lista de números o rangos separados por comas para cada
octeto. Por ejemplo, 192.168.0-255.1-254omitirá todas las direcciones en el
rango que terminen en .0 o .255 y 192.168.3-5,7.1escaneará las cuatro
direcciones [Link], [Link], [Link] y [Link]. Se puede
omitir cualquiera de los lados de un rango; los valores predeterminados son 0 a
la izquierda y 255 a la derecha. El uso -por sí solo es lo mismo que 0-255, pero
recuerde utilizar 0-en el primer octeto para que la especificación de destino no
parezca una opción de línea de comandos. Los rangos no necesitan limitarse a
los octetos finales: el especificador 0-255.0-255.13.37realizará un escaneo en
todo Internet para todas las direcciones IP que terminen en 13.37. Este tipo de
muestreo amplio puede ser útil para encuestas e investigaciones en Internet.
Las direcciones IPv6 se pueden especificar por su dirección IPv6 completa o
nombre de host o con notación CIDR para subredes. Los rangos de octetos aún
no son compatibles con IPv6.
Las direcciones IPv6 con alcance no global deben tener un sufijo de ID de zona.
En los sistemas Unix, se trata de un signo de porcentaje seguido de un nombre
de interfaz; una dirección completa podría ser fe80::a8bb:ccff:fedd:eeff%eth0.
En Windows, utilice un número de índice de interfaz en lugar de un nombre de
interfaz: fe80::a8bb:ccff:fedd:eeff%1. Puede ver una lista de índices de interfaz
ejecutando el comando [Link] interface ipv6 show interface .
Nmap acepta múltiples especificaciones de host en la línea de comandos y no
es necesario que sean del mismo tipo. El comando nmap [Link]
[Link]/8 10.0.0,1,3-7.- hace lo que se espera.
Si bien los objetivos generalmente se especifican en las líneas de comando, las
siguientes opciones también están disponibles para controlar la selección de
objetivos:
-iL <inputfilename>(Entrada de lista)
Lee las especificaciones de destino de <inputfilename>. Pasar una lista
enorme de hosts suele ser complicado en la línea de comandos, pero es un
deseo común. Por ejemplo, su servidor DHCP puede exportar una lista de
10.000 arrendamientos actuales que desea escanear. O tal vez desee escanear
todas las direcciones IP excepto aquellas para localizar hosts que utilizan
direcciones IP estáticas no autorizadas. Simplemente genere la lista de hosts
para escanear y pase ese nombre de archivo a Nmap como argumento a la -
iLopción. Las entradas pueden estar en cualquiera de los formatos aceptados
por Nmap en la línea de comandos (dirección IP, nombre de host, CIDR, IPv6 o
rangos de octetos). Cada entrada debe estar separada por uno o más espacios,
tabulaciones o nuevas líneas. Puede especificar un guion ( -) como nombre de
archivo si desea que Nmap lea los hosts desde la entrada estándar en lugar de
un archivo real.
El archivo de entrada puede contener comentarios que comiencen #y se
extiendan hasta el final de la línea.
-iR <num hosts>(Elige objetivos al azar)
Para encuestas a nivel de Internet y otras investigaciones, puede que desee
elegir objetivos al azar. El <num hosts>argumento le dice a Nmap cuántas
direcciones IP generar. Las direcciones IP no deseadas, como las que se
encuentran en ciertos rangos de direcciones privadas, de multidifusión o no
asignadas, se omiten automáticamente. El argumento 0 se puede especificar
para un escaneo sin fin. Tenga en cuenta que algunos administradores de red
se enfadan con los escaneos no autorizados de sus redes y pueden quejarse.
¡Use esta opción bajo su propio riesgo! Si se encuentra realmente aburrido una
tarde lluviosa, pruebe el comando nmap -Pn -sS -p 80 -iR 0 --open para
localizar servidores web aleatorios para navegar.
--exclude <host1>[,<host2>[,...]](Excluir hosts/redes)
Especifica una lista separada por comas de los objetivos que se excluirán del
análisis, incluso si forman parte del rango de red general que especifique. La
lista que pasa utiliza la sintaxis normal de Nmap, por lo que puede incluir
nombres de host, bloques de red CIDR, rangos de octetos, etc. Esto puede
resultar útil cuando la red que desea analizar incluye servidores críticos para la
misión que no se pueden tocar, sistemas que se sabe que reaccionan de forma
adversa a los análisis de puertos o subredes administradas por otras personas.
--excludefile <exclude_file>(Excluir lista del archivo)
Esto ofrece la misma funcionalidad que la --exclude opción, excepto que los
objetivos excluidos se proporcionan en una nueva línea, delimitada por
espacios o tabulaciones <exclude_file>en lugar de en la línea de comando.
El archivo de exclusión puede contener comentarios que comiencen #y se
extiendan hasta el final de la línea.
-n(Sin resolución DNS)
Le indica a Nmap que nunca realice una resolución DNS inversa en las
direcciones IP activas que encuentre. Dado que el DNS puede ser lento incluso
con el solucionador de stub paralelo integrado de Nmap, esta opción puede
reducir drásticamente los tiempos de escaneo.
-R(Resolución DNS para todos los objetivos)
Indica a Nmap que siempre realice una resolución DNS inversa en las
direcciones IP de destino. Normalmente, la resolución DNS inversa solo se
realiza en hosts que responden (en línea).
--resolve-all(Escanear cada dirección resuelta)
Si un destino de nombre de host se resuelve en más de una dirección, escanee
todas ellas. El comportamiento predeterminado es escanear solo la primera
dirección resuelta. Independientemente de ello, solo se escanearán las
direcciones de la familia de direcciones adecuada: IPv4 de forma
predeterminada, IPv6 con -6.
--unique(Escanee cada dirección solo una vez)
Escanee cada dirección IP solo una vez. El comportamiento predeterminado es
escanear cada dirección tantas veces como se especifique en la lista de
destino, como cuando los rangos de red se superponen o diferentes nombres
de host se resuelven en la misma dirección.
--system-dns(Utilice el solucionador DNS del sistema)
De forma predeterminada, Nmap realiza la resolución inversa de las direcciones
IP enviando consultas directamente a los servidores de nombres configurados
en su host y luego escuchando las respuestas. Muchas solicitudes (a menudo
docenas) se realizan 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
mediante la getnameinfollamada). Esto es más lento y rara vez resulta útil a
menos que encuentre un error en el sistema de resolución en paralelo de Nmap
(avísenos si lo encuentra). El sistema de resolución siempre se utiliza para
búsquedas hacia adelante (obtener una dirección IP a partir de un nombre de
host).
--dns-servers <server1>[,<server2>[,...]] (Servidores a utilizar para consultas
DNS inversas)
De forma predeterminada, Nmap determina los servidores DNS (para la
resolución de rDNS) a partir del archivo [Link] (Unix) o del Registro
(Win32). Como alternativa, puede utilizar esta opción para especificar
servidores alternativos. Esta opción no se respeta si está utilizando --system-
dns. El uso de varios servidores DNS suele ser más rápido, especialmente si
elige servidores autorizados para su espacio de IP de destino. Esta opción
también puede mejorar el sigilo, ya que sus solicitudes pueden rebotar en casi
cualquier servidor DNS recursivo de Internet.
Esta opción también resulta útil al escanear redes privadas. A veces, solo unos
pocos servidores de nombres proporcionan información rDNS adecuada y es
posible que ni siquiera sepa dónde están. Puede escanear la red en busca del
puerto 53 (quizás con detección de versiones) y luego probar con Nmap list
scans ( -sL) especificando cada servidor de nombres uno a la vez --dns-
servershasta que encuentre uno que funcione.
Es posible que esta opción no se respete si la respuesta de DNS supera el
tamaño de un paquete UDP. En tal situación, nuestro solucionador de DNS hará
todo lo posible por extraer una respuesta del paquete truncado y, si no lo logra,
recurrirá al solucionador del sistema. Además, las respuestas que contienen
alias CNAME recurrirán al solucionador del sistema.
Descubrimiento de host
Uno de los primeros pasos en cualquier misión de reconocimiento de red es
reducir un conjunto (a veces enorme) de rangos de IP a una lista de hosts
activos o interesantes. Escanear cada puerto de cada dirección IP es lento y,
por lo general, innecesario. Por supuesto, lo que hace que un host sea
interesante depende en gran medida de los propósitos del escaneo. Los
administradores de red pueden estar interesados solo en hosts que ejecuten un
determinado servicio, mientras que los auditores de seguridad pueden
preocuparse por cada dispositivo con una dirección IP. Un administrador puede
sentirse cómodo utilizando simplemente un ping ICMP para localizar hosts en
su red interna, mientras que un evaluador de penetración externo puede
utilizar un conjunto diverso de docenas de sondas en un intento de evadir las
restricciones del firewall.
Debido a que las necesidades de descubrimiento de host son tan diversas,
Nmap ofrece una amplia variedad de opciones para personalizar las técnicas
utilizadas. El descubrimiento de host a veces se denomina escaneo de ping,
pero va mucho más allá de los simples paquetes de solicitud de eco ICMP
asociados con la herramienta ping omnipresente . Los usuarios pueden omitir
el paso de descubrimiento por completo con un escaneo de lista ( -sL) o
deshabilitando el descubrimiento de host ( -Pn), o involucrar a la red con
combinaciones arbitrarias de sondas TCP SYN/ACK, UDP, SCTP INIT e ICMP de
múltiples puertos. El objetivo de estas sondas es solicitar respuestas que
demuestren que una dirección IP está realmente activa (está siendo utilizada
por un host o dispositivo de red). En muchas redes, solo un pequeño porcentaje
de direcciones IP están activas en un momento dado. Esto es particularmente
común con el espacio de direcciones privadas como [Link]/8. Esa red tiene
16 millones de IP, pero la he visto utilizada por empresas con menos de mil
máquinas. El descubrimiento de host puede encontrar esas máquinas en un
mar de direcciones IP escasamente asignadas.
Si no se proporcionan opciones de descubrimiento de host, Nmap envía una
solicitud de eco ICMP, un paquete TCP SYN al puerto 443, un paquete TCP ACK
al puerto 80 y una solicitud de marca de tiempo ICMP. (Para IPv6, la solicitud de
marca de tiempo ICMP se omite porque no es parte de ICMPv6). Estos valores
predeterminados son equivalentes a las -PE -PS443 -PA80 -PPopciones. Las
excepciones a esto son el protocolo ARP. (para IPv4) y descubrimiento de
vecinos (para IPv6) sondeos que se utilizan para cualquier objetivo en una red
Ethernet local. Para los usuarios de shell Unix sin privilegios, las sondas
predeterminadas son un paquete SYN a los puertos 80 y 443 mediante
la connectllamada del sistema. Este descubrimiento de host suele ser
suficiente cuando se escanean redes locales, pero se recomienda un conjunto
más completo de sondas de descubrimiento para la auditoría de seguridad.
Las -P*opciones (que seleccionan los tipos de ping) se pueden combinar. Puede
aumentar sus probabilidades de penetrar firewalls estrictos enviando muchos
tipos de sondas utilizando diferentes puertos/indicadores TCP y códigos ICMP.
Tenga en cuenta también que ARP/Neighbor Discovery Se realiza de forma
predeterminada contra objetivos en una red Ethernet local incluso si especifica
otras -P*opciones, porque casi siempre es más rápido y más efectivo.
De forma predeterminada, Nmap realiza la detección de host y luego un
escaneo de puertos en cada host que determina que está en línea. Esto es así
incluso si especifica tipos de detección de host no predeterminados, como
sondeos UDP ( -PU). Lea sobre la -snopción para aprender a realizar solo la
detección de host o úsela -Pnpara omitir la detección de host y escanear los
puertos de todas las direcciones de destino. Las siguientes opciones controlan
la detección de host:
-sL(Escaneo de lista)
El escaneo de listas es una forma degenerada de descubrimiento de host que
simplemente enumera cada host de la(s) red(es) especificada(s), sin enviar
ningún paquete a los hosts de destino. De forma predeterminada, Nmap aún
realiza una resolución DNS inversa en los hosts para aprender sus nombres. A
menudo es sorprendente la cantidad de información útil que brindan los
nombres de host simples. Por ejemplo, [Link] el nombre del firewall de
Chicago de una empresa. Nmap también informa el número total de
direcciones IP al final. El escaneo de listas es una buena comprobación de
cordura para asegurarse de que tiene las direcciones IP correctas 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 empresa equivocada.
Dado que la idea es simplemente imprimir una lista de hosts de destino, las
opciones para funciones de nivel superior, como escaneo de puertos, detección
de SO o descubrimiento de host, no se pueden combinar con esto. Si desea
deshabilitar el descubrimiento de host mientras sigue realizando esa
funcionalidad de nivel superior, lea sobre la -Pnopción (omitir descubrimiento
de host).
-sn(Sin escaneo de puertos)
Esta opción le indica a Nmap que no realice un escaneo de puertos después de
descubrir el host y que solo imprima los hosts disponibles que respondieron a
las pruebas de descubrimiento de host. 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 de NSE. Esto es, por defecto, un paso más
intrusivo que el escaneo de lista y, a menudo, se puede utilizar para los
mismos fines. Permite un reconocimiento ligero de una red objetivo sin atraer
mucha 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 también suelen considerar valiosa esta
opción. Se puede utilizar fácilmente para contar las máquinas disponibles en
una red o para supervisar la disponibilidad del servidor. Esto suele denominarse
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 host predeterminado que se realiza -snconsiste en una
solicitud de eco ICMP, TCP SYN al puerto 443, TCP ACK al puerto 80 y una
solicitud de marca de tiempo ICMP de forma predeterminada. Cuando lo
ejecuta un usuario sin privilegios, solo se envían paquetes SYN (mediante
una connectllamada) a los puertos 80 y 443 del destino. Cuando un usuario con
privilegios intenta escanear destinos en una red Ethernet local, se utilizan
solicitudes ARP a menos que --send-ipse especifique. La -snopción se puede
combinar con cualquiera de los tipos de sonda de descubrimiento (las -
P*opciones) para una mayor flexibilidad. Si se utiliza alguna de esas opciones
de tipo de sonda y número de puerto, se anulan las sondas predeterminadas.
Cuando hay firewalls estrictos entre el host de origen que ejecuta Nmap y la
red de destino, se recomienda utilizar esas técnicas avanzadas. De lo contrario,
se podrían perder hosts cuando el firewall descarta las sondas o sus
respuestas.
En versiones anteriores de Nmap, -snse conocía como -sP.
-Pn(Sin ping)
Esta opción omite por completo la etapa de descubrimiento de host.
Normalmente, Nmap utiliza esta etapa para determinar las máquinas activas
para un escaneo más intenso y para medir la velocidad de la red. De forma
predeterminada, Nmap solo realiza sondeos intensos, como escaneos de
puertos, detección de versiones o detección de SO, en los hosts que se
encuentran activos. Deshabilitar el descubrimiento de host -Pnhace que Nmap
intente las funciones de escaneo solicitadas en cada dirección IP de destino
especificada. Por lo tanto, si se especifica una red de tamaño /16 en la línea de
comandos, se escanean las 65.536 direcciones IP. El descubrimiento de host
adecuado se omite al igual que con el escaneo de lista, pero en lugar de
detenerse e imprimir la lista de destino, Nmap continúa realizando las
funciones solicitadas como si cada IP de destino estuviera activa. Se utilizan los
parámetros de tiempo predeterminados, lo que puede dar como resultado
escaneos más lentos. Para omitir el descubrimiento de host y el escaneo de
puertos, y al mismo tiempo permitir que NSE se ejecute, utilice las dos
opciones -Pn -snjuntas.
En el caso de las máquinas en una red Ethernet local, el escaneo ARP se
seguirá realizando (a menos que se especifique --disable-arp-pingo ) porque
Nmap necesita direcciones MAC para escanear más los hosts de destino. En
versiones anteriores de Nmap, era --send-ip-Pn-P0 y -PN.
-PS <port list>(ping de sincronización TCP)
Esta opción envía un paquete TCP vacío con el indicador SYN establecido. El
puerto de destino predeterminado es 80 (configurable en tiempo de
compilación modificando DEFAULT_TCP_PROBE_PORT_SPEC en nmap.h). Se
pueden especificar puertos alternativos como parámetro. La sintaxis es la
misma que para la opción, excepto que no se permiten -pespecificadores de
tipo de puerto como y . Tenga en cuenta que no puede haber espacio entre y la
lista de puertos. Si se especifican varias sondas, se enviarán en paralelo.T:-
PS22-PS22-25,80,113,1050,35000-PS
El indicador SYN sugiere al sistema remoto que está intentando establecer una
conexión. Normalmente, el puerto de destino estará cerrado y se enviará un
paquete RST (reinicio). Si el puerto está abierto, el destino realizará el segundo
paso de un protocolo de enlace de tres vías TCP respondiendo con un paquete
TCP SYN/ACK. La máquina que ejecuta Nmap entonces desmantela la conexión
naciente respondiendo con un RST en lugar de enviar un paquete ACK que
completaría el protocolo de enlace de tres vías y establecería una conexión
completa. El paquete RST lo envía el núcleo de la máquina que ejecuta Nmap
en respuesta al SYN/ACK inesperado, no Nmap en sí.
A Nmap no le importa si el puerto está abierto o cerrado. Tanto la respuesta
RST como la respuesta SYN/ACK que se analizaron anteriormente indican a
Nmap que el host está disponible y responde.
En los equipos Unix, root generalmente solo el usuario privilegiado puede
enviar y recibir paquetes TCP sin procesar. Para los usuarios sin privilegios, se
emplea automáticamente una solución alternativa mediante la cual se inicia
la connectllamada del sistema 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 connectse devuelve un éxito rápido o un error
ECONNREFUSED, la pila TCP subyacente debe haber recibido un SYN/ACK o RST
y el host se marca como disponible. Si el intento de conexión se deja colgado
hasta que se alcanza un tiempo de espera, el host se marca como inactivo.
-PA <port list>(Ping de confirmación de TCP)
El ping TCP ACK es bastante similar al ping SYN que acabamos de analizar. La
diferencia, como probablemente haya adivinado, es que se activa el indicador
TCP ACK en lugar del indicador SYN. Este paquete ACK pretende reconocer
datos a través de una conexión TCP establecida, pero dicha conexión no existe.
Por lo tanto, los hosts remotos siempre deben responder con un paquete RST,
revelando su existencia en el proceso.
La -PAopción utiliza el mismo puerto predeterminado 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, connectse utiliza la solución alternativa
que se analizó anteriormente. Esta solución alternativa es imperfecta
porque connecten realidad envía un paquete SYN en lugar de un ACK.
El motivo por el que se ofrecen sondas de ping SYN y ACK es maximizar las
posibilidades de eludir los cortafuegos. Muchos administradores configuran los
enrutadores 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 evita otras conexiones entrantes a la
organización, al tiempo que permite a los usuarios realizar conexiones salientes
sin obstáculos a Internet. Este enfoque sin estado ocupa pocos recursos en el
cortafuegos/enrutador y es ampliamente compatible con los filtros de hardware
y software. El software de cortafuegos Netfilter/iptables de Linux ofrece la --
synopción conveniente de implementar este enfoque sin estado. Cuando se
aplican reglas de cortafuegos sin estado como esta, -PSes probable que las
sondas de ping SYN ( ) se bloqueen cuando se envíen a puertos de destino
cerrados. En tales casos, la sonda ACK destaca porque atraviesa estas reglas.
Otro tipo común de cortafuegos utiliza reglas con estado que descartan
paquetes inesperados. Esta característica se encontraba inicialmente sobre
todo en cortafuegos de gama alta, aunque se ha vuelto mucho más común con
el paso de los años. El sistema Netfilter/iptables de Linux admite esto a través
de la --stateopción , que clasifica los paquetes en función del 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 generalmente se reconocen
como falsos y se descartan. Una solución a este dilema es enviar sondas SYN y
ACK especificando -PSy -PA.
-PU <port list>(Ping UDP)
Otra opción de detección de host es el ping UDP, que envía un paquete UDP a
los puertos indicados. En la mayoría de los puertos, el paquete estará vacío,
aunque algunos utilizan una carga útil específica del protocolo que tiene más
probabilidades de generar una respuesta. Las cargas útiles son las mismas
sondas que se utilizan en la detección de servicios y versiones y se definen en
el nmap-service-probes archivo. El contenido del paquete también puede verse
afectado con las opciones --data, --data-stringy .--data-length
La lista de puertos tiene el mismo formato que las opciones -PSy que se
analizaron anteriormente -PA. Si no se especifican puertos, el valor
predeterminado es 40125. Este valor predeterminado se puede configurar en
tiempo de compilación
modificando DEFAULT_UDP_PROBE_PORT_SPEC en nmap.h. Se utiliza un puerto
muy poco común de forma predeterminada porque enviar a puertos abiertos
suele ser indeseable para este tipo de escaneo en particular.
Al alcanzar un puerto cerrado en la máquina de destino, la sonda UDP debería
generar un paquete ICMP de puerto inalcanzable. Esto significa que Nmap sabe
que la máquina está activa y disponible. Muchos otros tipos de errores ICMP,
como host/red inalcanzables o TTL excedido, son indicativos de un host inactivo
o inalcanzable. La falta de respuesta también se interpreta de esta manera. Si
se alcanza un puerto abierto, la mayoría de los servicios simplemente ignoran
el paquete vacío y no devuelven ninguna respuesta. Por eso, el puerto de
sonda predeterminado es 40125, que es muy poco probable que esté en uso.
Algunos servicios, como el protocolo Generador de caracteres (chargen),
responderán a un paquete UDP vacío y, por lo tanto, le informarán a Nmap que
la máquina está disponible.
La principal ventaja de este tipo de escaneo es que evita los firewalls y filtros
que solo filtran TCP. Por ejemplo, una vez tuve un enrutador de banda ancha
inalámbrico Linksys BEFW11S4. La interfaz externa de este dispositivo filtraba
todos los puertos TCP de manera predeterminada, pero las sondas UDP seguían
generando mensajes de puerto inalcanzable y, por lo tanto, delataban el
dispositivo.
-PY <port list>(Ping de inicio de SCTP)
Esta opción envía un paquete SCTP que contiene un fragmento INIT mínimo. El
puerto de destino predeterminado 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 la opción, excepto que no se permiten -pespecificadores de
tipo de puerto como . Algunos ejemplos son y . Tenga en cuenta que no puede
haber espacio entre y la lista de puertos. Si se especifican varias sondas, se
enviarán en paralelo.S:-PY22-PY22,80,179,5060-PY
El fragmento INIT sugiere al sistema remoto que está intentando establecer
una asociación. Normalmente, el puerto de destino estará cerrado y se enviará
de vuelta un fragmento ABORT. Si el puerto está abierto, el destino dará el
segundo paso de un protocolo de enlace de cuatro vías SCTP respondiendo con
un fragmento INIT-ACK. Si la máquina que ejecuta Nmap tiene una pila SCTP
funcional, entonces desmantela la asociación naciente respondiendo con un
fragmento ABORT en lugar de enviar un fragmento COOKIE-ECHO, que sería el
siguiente paso en el protocolo de enlace de cuatro vías. El paquete ABORT lo
envía el núcleo de la máquina que ejecuta Nmap en respuesta al inesperado
INIT-ACK, no el propio Nmap.
A Nmap no le importa si el puerto está abierto o cerrado. Tanto la respuesta
ABORT como la INIT-ACK que se analizaron anteriormente indican a Nmap que
el host está disponible y responde.
En los equipos Unix, root generalmente solo el usuario privilegiado puede
enviar y recibir paquetes SCTP sin procesar. Actualmente, los usuarios sin
privilegios no pueden usar pings SCTP INIT.
-PE; -PP; -PM(Tipos de ping ICMP)
Además de los tipos de detección de host TCP, UDP y SCTP poco habituales que
hemos comentado anteriormente, Nmap puede enviar los paquetes estándar
que envía el omnipresente programa ping . Nmap envía un paquete ICMP de
tipo 8 (solicitud de eco) a las direcciones IP de destino, esperando recibir un
paquete de tipo 0 (respuesta de eco) de los hosts
disponibles. Desafortunadamente para los exploradores de redes, muchos
hosts y cortafuegos bloquean ahora estos paquetes, en lugar de responder
como lo exige el RFC 1122. Por este motivo, los análisis de solo ICMP rara vez
son lo suficientemente fiables contra objetivos desconocidos a través de
Internet. Pero para los administradores de sistemas que supervisan una red
interna, pueden ser un enfoque práctico y eficiente. Utilice la -PEopción para
habilitar este comportamiento de solicitud de eco.
Aunque la solicitud de eco es la consulta de ping estándar de ICMP, Nmap no
se detiene allí. 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.
Si bien el propósito aparente de estas consultas es obtener información como
máscaras de dirección y horas actuales, se pueden usar fácilmente para el
descubrimiento de host. Un sistema que responde está activo y disponible.
Nmap actualmente no implementa paquetes de solicitud de información, ya
que no son ampliamente compatibles. RFC 1122 insiste en que " un host NO
DEBE implementar estos mensajes " . Las consultas de marca de tiempo y
máscara de dirección se pueden enviar con las opciones -PPy -PM,
respectivamente. Una respuesta de marca de tiempo (código ICMP 14) o una
respuesta 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 mientras olvidan
que se pueden usar otras consultas ICMP para el mismo propósito.
-PO <protocol list>(Ping de protocolo IP)
Una de las opciones de detección de host más nuevas es el protocolo IP ping,
que envía paquetes IP con el número de protocolo especificado establecido en
su encabezado IP. La lista de protocolos tiene el mismo formato que las listas
de puertos en las opciones de detección de host TCP, UDP y SCTP analizadas
anteriormente. Si no se especifica ningún protocolo, el valor predeterminado es
enviar varios paquetes IP para ICMP (protocolo 1), IGMP (protocolo 2) e IP-in-IP
(protocolo 4). Los protocolos predeterminados se pueden configurar en tiempo
de compilación modificando DEFAULT_PROTO_PROBE_PORT_SPEC en nmap.h.
Tenga en cuenta que para ICMP, IGMP, TCP (protocolo 6), UDP (protocolo 17) y
SCTP (protocolo 132), los paquetes se envían con los encabezados de protocolo
adecuados, mientras que otros protocolos se envían sin datos adicionales más
allá del encabezado IP (a menos que se especifique alguna de las opciones --
data, --data-stringo --data-length ).
Este método de detección de host busca respuestas que utilicen el mismo
protocolo que una sonda o mensajes de protocolo ICMP inalcanzable, lo que
significa que el protocolo determinado no es compatible con el host de destino.
Cualquier tipo de respuesta significa que el host de destino está activo.
--disable-arp-ping(Sin ARP ni ND Ping)
Nmap normalmente realiza el descubrimiento de hosts Ethernet conectados
localmente mediante ARP o Neighbor Discovery (ND) de IPv6, incluso si se
utilizan otras opciones de descubrimiento de host como -Pno . Para deshabilitar
este comportamiento implícito, utilice la opción.-PE--disable-arp-ping
El comportamiento predeterminado normalmente es más rápido, pero esta
opción es útil en redes que utilizan ARP proxy, en las que un enrutador
responde especulativamente a todas las solicitudes ARP, haciendo que cada
objetivo parezca estar activo según el escaneo ARP.
--discovery-ignore-rst
En algunos casos, los cortafuegos pueden falsificar las respuestas de
restablecimiento de TCP (RST) en respuesta a sondeos a direcciones
desocupadas o no permitidas. Dado que Nmap normalmente considera las
respuestas RST como prueba de que el objetivo está activo, esto puede
provocar una pérdida de tiempo al escanear objetivos que no están allí. El uso
de la --discovery-ignore-rstopción evitará que Nmap considere estas respuestas
durante el descubrimiento de host. Es posible que deba seleccionar opciones
de descubrimiento de host adicionales para asegurarse de no perder objetivos
en este caso.
--traceroute(Rastrear ruta al host)
Los traceroutes se realizan después del escaneo utilizando la información de
los resultados del escaneo para determinar el puerto y el protocolo con más
probabilidades de llegar al destino. Funciona con todos los tipos de escaneo,
excepto los escaneos de conexión ( -sT) y los escaneos inactivos ( -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 de destino. Las implementaciones de traceroute
estándar comienzan con un TTL de 1 y aumentan el TTL hasta que se alcanza
el host de destino. Traceroute de Nmap comienza con un TTL alto y luego
disminuye el TTL hasta que llega a cero. Hacerlo al revés permite a Nmap
emplear algoritmos de almacenamiento en caché inteligentes para acelerar los
rastreos en múltiples hosts. En promedio, Nmap envía entre 5 y 10 paquetes
menos por host, según las condiciones de la red. Si se escanea una sola subred
(es decir, [Link]/24), Nmap puede tener que enviar solo dos paquetes a
la mayoría de los hosts.
Conceptos básicos del escaneo de puertos
Si bien Nmap ha crecido en funcionalidad a lo largo de los años, comenzó como
un escáner de puertos eficiente y esa sigue siendo su función principal. El
simple comando nmap <target> escanea 1000 puertos TCP en el
host <target>. Si bien muchos escáneres de puertos tradicionalmente han
agrupado todos los puertos en los estados abierto o cerrado, Nmap es mucho
más granular. Divide los puertos en seis
estados: open, closed, filtered, unfiltered, open|filteredo closed|filtered.
Estos estados no son propiedades intrínsecas del puerto en sí, sino que
describen cómo los ve Nmap. Por ejemplo, un análisis de Nmap desde la misma
red que el puerto de destino puede mostrar 135/tcpque el puerto está abierto,
mientras que un análisis al mismo tiempo con las mismas opciones desde el
otro lado de Internet puede mostrar que el puerto está abierto filtered.
Los seis Estados portuarios reconocidos por Nmap
abierto
Una aplicación está aceptando activamente conexiones TCP, datagramas UDP o
asociaciones SCTP en este puerto. Encontrarlos suele ser el objetivo principal
del escaneo de puertos. Las personas preocupadas por la seguridad saben que
cada puerto abierto es una vía para los ataques. Los atacantes y los
evaluadores de penetración quieren explotar los puertos abiertos, mientras que
los administradores intentan cerrarlos o protegerlos con cortafuegos sin
frustrar a los usuarios legítimos. Los puertos abiertos también son interesantes
para los escaneos que no son de seguridad porque muestran los servicios
disponibles para su uso en la red.
cerrado
Un puerto cerrado es accesible (recibe y responde a los paquetes de sondeo de
Nmap), pero no hay ninguna aplicación que lo escuche. Pueden ser útiles para
mostrar que un host está activo en una dirección IP (descubrimiento de host o
escaneo de ping) y como parte de la detección del sistema operativo. Debido a
que se puede acceder a los puertos cerrados, puede que valga la pena
escanearlos más tarde en caso de que alguno se abra. Los administradores
pueden considerar bloquear dichos puertos con un firewall. Entonces
aparecerían en el estado filtrado, que se analiza a continuación.
filtrado
Nmap no puede determinar si el puerto está abierto porque el filtrado de
paquetes impide que sus sondas lleguen al puerto. El filtrado puede proceder
de un dispositivo de cortafuegos dedicado, reglas de enrutador o software de
cortafuegos basado en host. Estos puertos frustran a los atacantes porque
proporcionan muy poca información. A veces responden con mensajes de error
ICMP como el tipo 3 código 13 (destino inalcanzable: comunicación prohibida
administrativamente), pero los filtros que simplemente descartan las sondas
sin responder son mucho más comunes. Esto obliga a Nmap a reintentar varias
veces por si acaso la sonda se descartó debido a la congestión de la red en
lugar de al filtrado. Esto ralentiza el análisis drásticamente.
Sin filtrar
El estado sin filtrar significa que un puerto es accesible, pero Nmap no puede
determinar si está abierto o cerrado. Solo el análisis ACK, que se utiliza para
mapear conjuntos de reglas de firewall, clasifica los puertos en este estado.
Analizar los puertos sin filtrar con otros tipos de análisis, como el análisis
Window, el análisis SYN o el análisis FIN, puede ayudar a determinar si el
puerto está abierto.
abierto|filtrado
Nmap coloca los puertos en este estado cuando no puede determinar si un
puerto está abierto o filtrado. Esto ocurre en los tipos de escaneo en los que los
puertos abiertos no dan respuesta. La falta de respuesta también podría
significar que un filtro de paquetes descartó la sonda o cualquier respuesta que
haya obtenido. Por lo tanto, Nmap no sabe con certeza si el puerto está abierto
o está siendo filtrado. Los escaneos UDP, de protocolo IP, FIN, NULL y Xmas
clasifican los puertos de esta manera.
cerrado|filtrado
Este estado se utiliza cuando Nmap no puede determinar si un puerto está
cerrado o filtrado. Solo se utiliza para el escaneo inactivo de ID de IP.
Técnicas de escaneo de puertos
Como novato en la reparación de automóviles, puedo luchar durante horas
tratando de adaptar mis herramientas rudimentarias (martillo, cinta adhesiva,
llave inglesa, etc.) a la tarea en cuestión. Cuando fracaso miserablemente y
remolco mi cacharro hasta un mecánico de verdad, invariablemente hurga en
un enorme cofre de herramientas hasta sacar el artilugio perfecto que hace
que el trabajo parezca sencillo. El arte de escanear puertos es similar. Los
expertos comprenden las docenas de técnicas de escaneo y eligen la adecuada
(o la combinación) para una tarea determinada. Los usuarios inexpertos y los
script kiddies, Por otro lado, intente resolver todos los problemas con el
escaneo SYN predeterminado. Dado que Nmap es gratuito, la única barrera
para dominar el escaneo de puertos es el conocimiento. Esto sin duda supera
al mundo automotriz, donde puede requerirse una gran habilidad para
determinar que necesita un compresor de resortes de puntal, y luego aún debe
pagar miles de dólares por él.
La mayoría de los tipos de escaneo solo están disponibles para usuarios
privilegiados. Esto se debe a que envían y reciben paquetes sin procesar, que
requiere acceso root en sistemas Unix. Se recomienda usar una cuenta de
administrador en Windows, aunque Nmap a veces funciona para usuarios sin
privilegios en esa plataforma cuando Npcap ya se ha cargado en el sistema
operativo. Requerir privilegios root era una limitación seria cuando Nmap fue
lanzado en 1997, ya que muchos usuarios sólo tenían acceso a cuentas de
shell compartidas. Ahora, el mundo es diferente. Las computadoras son más
baratas, mucha más gente tiene acceso directo a Internet siempre activo y los
sistemas Unix de escritorio (incluidos Linux y Mac OS X) son predominantes.
Ahora está disponible una versión de Nmap para Windows, lo que permite
ejecutarlo en incluso más escritorios. Por todas estas razones, los usuarios
tienen menos necesidad de ejecutar Nmap desde cuentas de shell compartidas
limitadas. Esto es una suerte, ya que las opciones privilegiadas hacen que
Nmap sea mucho más potente y flexible.
Aunque Nmap intenta producir resultados precisos, tenga en cuenta que todos
sus datos se basan en paquetes devueltos por las máquinas de destino (o los
cortafuegos que se encuentran frente a ellas). Estos hosts pueden no ser
confiables y enviar respuestas destinadas a confundir o engañar a Nmap.
Mucho más comunes son los hosts que no cumplen con RFC y que no
responden como deberían a los sondeos de Nmap. Los análisis FIN, NULL y
Xmas son particularmente susceptibles a este problema. Estos problemas son
específicos de ciertos tipos de análisis y, por lo tanto, se analizan en las
entradas de cada tipo de análisis.
Esta sección documenta las aproximadamente doce técnicas de escaneo de
puertos admitidas por Nmap. Solo se puede utilizar un método a la vez,
excepto que el escaneo UDP ( -sU) y cualquiera de los tipos de escaneo SCTP ( -
sY, -sZ) se pueden combinar con cualquiera de los tipos de escaneo TCP. Como
ayuda de memoria, las opciones de tipo de escaneo de puerto tienen el
formato , donde es un carácter destacado en el nombre del escaneo,
normalmente el primero. La única excepción a esto es el escaneo de rebote FTP
obsoleto ( ). De forma predeterminada, Nmap realiza un escaneo SYN, aunque
sustituye un escaneo de conexión si el usuario no tiene los privilegios
adecuados para enviar paquetes sin procesar (requiere acceso root en Unix).
De los escaneos enumerados en esta sección, los usuarios sin privilegios solo
pueden ejecutar escaneos de conexión y de rebote FTP.-s<C><C>-b
-sS(Escaneo TCP SYN)
El escaneo SYN es la opción de escaneo predeterminada y más popular por
buenas razones. Se puede realizar rápidamente, escaneando miles de puertos
por segundo en una red rápida que no esté obstaculizada por firewalls
restrictivos. También es relativamente discreto y sigiloso, ya que nunca
completa conexiones TCP. El escaneo SYN funciona contra cualquier pila TCP
compatible en lugar de depender de idiosincrasias de plataformas específicas
como lo hacen los escaneos FIN/NULL/Xmas, Maimon y idle de Nmap. También
permite una diferenciación clara y confiable entre los openestados closed,
y filtered .
Esta técnica se conoce a menudo como escaneo semiabierto, porque no se
abre una conexión TCP completa. Se envía un paquete SYN, como si se fuera a
abrir una conexión real y luego se espera una respuesta. Un SYN/ACK indica
que el puerto está escuchando (abierto), mientras que un RST (reinicio) es
indicativo de que no está escuchando. Si no se recibe respuesta después de
varias retransmisiones, el puerto se marca como filtrado. El puerto también se
marca como filtrado si se recibe un error ICMP inalcanzable (tipo 3, código 0, 1,
2, 3, 9, 10 o 13). El puerto también se considera abierto si se recibe un paquete
SYN (sin el indicador ACK) en respuesta. Esto puede deberse a una
característica TCP extremadamente rara conocida como conexión de protocolo
de enlace abierto o dividido simultáneo (consulte[Link]
[Link] ).
-sT(Escaneo de conexión TCP)
El escaneo de conexión TCP es el tipo de escaneo TCP predeterminado cuando
el escaneo SYN no es una opción. Este es el caso cuando un usuario no tiene
privilegios de paquetes sin procesar. En lugar de escribir paquetes sin procesar
como lo hacen la mayoría de los otros tipos de escaneo, Nmap le pide al
sistema operativo subyacente que establezca una conexión con la máquina y el
puerto de destino mediante la emisión de la connectllamada del sistema. Esta
es la misma llamada del sistema de alto nivel que los navegadores web, los
clientes P2P y la mayoría de las demás aplicaciones habilitadas para la red
utilizan para establecer una conexión. Es parte de una interfaz de
programación conocida como la API de Berkeley Sockets. En lugar de leer
respuestas de paquetes sin procesar desde la red, Nmap utiliza esta API para
obtener información de estado en cada intento de conexión.
Cuando el escaneo SYN está disponible, suele ser una mejor opción. Nmap
tiene menos control sobre la connectllamada de alto nivel que con los paquetes
sin procesar, lo que lo hace menos eficiente. La llamada del sistema completa
las conexiones para abrir los puertos de destino en lugar de realizar el reinicio
de apertura parcial que hace el escaneo SYN. No solo lleva más tiempo y
requiere más paquetes para obtener la misma información, sino que es más
probable que las máquinas de destino registren la conexión. Un IDS decente
detectará cualquiera de los dos, pero la mayoría de las máquinas no tienen un
sistema de alarma de este tipo. Muchos servicios en un sistema Unix promedio
agregarán una nota a syslog y, a veces, un mensaje de error críptico, cuando
Nmap se conecta y luego cierra la conexión sin enviar datos. Los servicios
verdaderamente patéticos se bloquean cuando esto sucede, aunque eso es
poco común. Un administrador que ve un montón de intentos de conexión en
sus registros desde un solo sistema debe saber que ha sido escaneado para
conectarse.
-sU(Escaneos UDP)
Aunque la mayoría de los servicios más populares de Internet se ejecutan
sobre el protocolo TCP, los servicios UDP están ampliamente implementados.
DNS, SNMP y DHCP (puertos registrados 53, 161/162 y 67/68) son tres de los
más comunes. Debido a que el escaneo UDP es generalmente más lento y más
difícil que el TCP, algunos auditores de seguridad ignoran estos puertos. Esto
es un error, ya que los servicios UDP explotables son bastante comunes y los
atacantes ciertamente no ignoran todo el protocolo. Afortunadamente, Nmap
puede ayudar a inventariar los puertos UDP.
El escaneo UDP se activa con la -sUopción . Se puede combinar con un tipo de
escaneo TCP como el escaneo SYN ( -sS) para verificar ambos protocolos
durante la misma ejecución.
El escaneo UDP funciona enviando un paquete UDP a cada puerto de destino.
Para algunos puertos comunes como 53 y 161, se envía una carga útil
específica del protocolo para aumentar la tasa de respuesta, pero para la
mayoría de los puertos el paquete está vacío a menos que se especifiquen las
opciones --data, --data-stringo --data-length . Si se devuelve un error ICMP de
puerto inalcanzable (tipo 3, código 3), el puerto es closed. Otros errores ICMP
inalcanzables (tipo 3, códigos 0, 1, 2, 9, 10 o 13) marcan el puerto
como filtered. Ocasionalmente, un servicio responderá con un paquete UDP, lo
que demuestra que es open. Si no se recibe respuesta después de las
retransmisiones, el puerto se clasifica como open|filtered. Esto significa que el
puerto podría estar abierto o quizás los filtros de paquetes están bloqueando la
comunicación. La detección de versiones ( -sV) se puede utilizar para ayudar a
diferenciar los puertos realmente abiertos de los filtrados.
Un gran desafío con el escaneo UDP es hacerlo rápidamente. Los puertos
abiertos y filtrados rara vez envían una respuesta, lo que hace que Nmap se
quede sin tiempo y luego realice retransmisiones en caso de que se pierda la
sonda o la respuesta. Los puertos cerrados suelen ser un problema aún mayor.
Por lo general, envían un error de puerto ICMP inalcanzable. Pero a diferencia
de los paquetes RST enviados por puertos TCP cerrados en respuesta a un
escaneo SYN o de conexión, muchos hosts limitan la velocidad de los mensajes
de puerto ICMP inalcanzable de forma predeterminada. Linux y Solaris son
particularmente estrictos al respecto. Por ejemplo, el kernel Linux 2.4.20 limita
los mensajes de destino inalcanzable a uno por segundo (en net/ipv4/icmp.c).
Nmap detecta la limitación de velocidad y reduce la velocidad en consecuencia
para evitar inundar la red con paquetes inútiles que la máquina de destino
descartará. Desafortunadamente, un límite al estilo Linux de un paquete por
segundo hace que un escaneo de 65.536 puertos tarde más de 18 horas.
Algunas ideas para acelerar los escaneos UDP incluyen escanear más hosts en
paralelo, hacer un escaneo rápido de solo los puertos populares primero,
escanear desde detrás del firewall y usar --host-timeoutpara omitir los hosts
lentos.
-sY(Escaneo SCTP INIT)
SCTP es una alternativa relativamente nueva a los protocolos TCP y UDP, que
combina la mayoría de las características de TCP y UDP y también añade
nuevas funciones como multihoming y multistreaming. Se utiliza
principalmente para servicios relacionados con SS7/SIGTRAN, pero también
tiene el potencial de utilizarse para otras aplicaciones. El escaneo INIT de SCTP
es el equivalente SCTP de un escaneo SYN de TCP. Se puede realizar
rápidamente, escaneando miles de puertos por segundo en una red rápida que
no esté obstaculizada por firewalls restrictivos. Al igual que el escaneo SYN, el
escaneo INIT es relativamente discreto y sigiloso, ya que nunca completa las
asociaciones SCTP. También permite una diferenciación clara y confiable entre
los openestados , closedy .filtered
Esta técnica se conoce a menudo como escaneo semiabierto, porque no se
abre una asociación SCTP completa. Se envía un fragmento INIT, como si se
fuera a abrir una asociación real y luego se espera una respuesta. Un
fragmento INIT-ACK indica que el puerto está escuchando (abierto), mientras
que un fragmento ABORT indica que no está escuchando. Si no se recibe
respuesta después de varias retransmisiones, el puerto se marca como filtrado.
El puerto también se marca como filtrado si se recibe un error ICMP
inalcanzable (tipo 3, código 0, 1, 2, 3, 9, 10 o 13).
-sN; -sF; -sX(Escaneos TCP NULL, FIN y Xmas)
Estos tres tipos de escaneo (se pueden hacer incluso más con la --
scanflagsopción descrita en la siguiente sección) explotan una sutil laguna en
el RFC TCP para diferenciar entre puertos openy closedpuertos. La página 65
del RFC 793 dice que “ si el estado del puerto [de destino] está CERRADO... un
segmento entrante que no contenga un RST hace que se envíe un RST en
respuesta ” . Luego, la página siguiente analiza los paquetes enviados a
puertos abiertos sin los bits SYN, RST o ACK establecidos, y afirma que: “ es
poco probable que llegue aquí, pero si lo hace, elimine el segmento y
regrese ” .
Al escanear sistemas que cumplen con este texto RFC, cualquier paquete que
no contenga los bits SYN, RST o ACK dará como resultado un RST devuelto si el
puerto está cerrado y ninguna respuesta si el puerto está abierto. Mientras no
se incluya ninguno de esos tres bits, cualquier combinación de los otros tres
(FIN, PSH y URG) es válida. Nmap aprovecha esto con tres tipos de escaneo:
Escaneo nulo ( -sN)
No establece ningún bit (el encabezado del indicador TCP es 0)
Escaneo FIN ( -sF)
Establece sólo el bit TCP FIN.
Escaneo de Navidad ( -sX)
Establece los indicadores FIN, PSH y URG, iluminando el paquete como un árbol
de Navidad.
Estos tres tipos de escaneo tienen exactamente el mismo comportamiento,
excepto por los indicadores TCP establecidos en los paquetes de sondeo. Si se
recibe un paquete RST, el puerto se considera closed, mientras que si no hay
respuesta, significa que es open|filtered. El puerto se marca filteredsi se recibe
un error ICMP inaccesible (tipo 3, código 0, 1, 2, 3, 9, 10 o 13).
La principal ventaja de estos tipos de escaneo es que pueden atravesar ciertos
firewalls sin estado y enrutadores de filtrado de paquetes. Otra ventaja es que
estos tipos de escaneo son un poco más sigilosos que incluso un escaneo SYN.
Sin embargo, no cuente con esto: la mayoría de los productos IDS modernos se
pueden configurar para detectarlos. La gran desventaja es que no todos los
sistemas siguen RFC 793 al pie de la letra. Varios sistemas envían respuestas
RST a las sondas independientemente de si el puerto está abierto o no. Esto
hace que todos los puertos se etiqueten como closed. Los principales sistemas
operativos que hacen esto son Microsoft Windows, muchos dispositivos Cisco,
BSDI e IBM OS/400. Sin embargo, este escaneo funciona contra la mayoría de
los sistemas basados en Unix. Otra desventaja de estos escaneos es que no
pueden distinguir openlos puertos de ciertos filteredpuertos, lo que le deja con
la respuesta open|filtered.
-sA(Escaneo TCP ACK)
Este análisis es diferente de los otros que hemos analizado hasta ahora en el
sentido de que nunca determina open(ni siquiera determina open|filtered) los
puertos. Se utiliza para trazar conjuntos de reglas de firewall, determinar si
tienen estado o no y qué puertos se filtran.
El paquete de sondeo de escaneo ACK solo tiene el indicador ACK activado (a
menos que utilice --scanflags). Al escanear sistemas sin filtrar, los
puertos openy closeddevolverán un paquete RST. Nmap los etiqueta
como unfiltered, lo que significa que son alcanzables por el paquete ACK, pero
no se determina si lo son openo closedno. Los puertos que no responden o
envían ciertos mensajes de error ICMP (tipo 3, código 0, 1, 2, 3, 9, 10 o 13) se
etiquetan como filtered.
-sW(Escaneo de ventana TCP)
El escaneo de ventana es exactamente igual que el escaneo ACK, excepto que
explota un detalle de implementación de ciertos sistemas para diferenciar los
puertos abiertos de los cerrados, en lugar de imprimir
siempre unfilteredcuando se devuelve un RST. Lo hace examinando el campo
Ventana TCP de los paquetes RST devueltos. En algunos sistemas, los puertos
abiertos usan un tamaño de ventana positivo (incluso para paquetes RST)
mientras que los cerrados tienen una ventana cero. Por lo tanto, en lugar de
enumerar siempre un puerto como unfilteredcuando recibe un RST de vuelta, el
escaneo de ventana enumera el puerto como openo closedsi el valor de
Ventana TCP en ese reinicio es positivo o cero, respectivamente.
Este análisis se basa en un detalle de implementación de una minoría de
sistemas en Internet, por lo que no siempre se puede confiar en él. Los
sistemas que no lo admiten normalmente devolverán todos los puertos closed.
Por supuesto, es posible que la máquina realmente no tenga puertos abiertos.
Si la mayoría de los puertos analizados son closedpero algunos números de
puerto comunes (como 22, 25, 53) son filtered, es muy probable que el sistema
sea susceptible. Ocasionalmente, los sistemas incluso mostrarán el
comportamiento exactamente opuesto. Si su análisis muestra 1000 puertos
abiertos y tres puertos cerrados o filtrados, entonces esos tres pueden muy
bien ser los realmente abiertos.
-sM(Escaneo TCP Maimon)
El escaneo Maimon recibe su nombre de su descubridor, Uriel Maimon, quien
describió la técnica en el número 49 de la revista Phrack (noviembre de 1996).
Nmap, que incluía esta técnica, se publicó dos números después. Esta técnica
es exactamente la misma que los escaneos NULL, FIN y Xmas, excepto que la
sonda es FIN/ACK. Según RFC 793 (TCP), se debe generar un paquete RST en
respuesta a dicha sonda, ya sea que el puerto esté abierto o cerrado. Sin
embargo, Uriel notó que muchos sistemas derivados de BSD simplemente
descartan el paquete si el puerto está abierto.
--scanflags(Escaneo TCP personalizado)
Los usuarios verdaderamente avanzados de Nmap no necesitan limitarse a los
tipos de análisis predefinidos que se ofrecen. La --scanflagsopción le permite
diseñar su propio análisis especificando indicadores TCP arbitrarios. Deje fluir
su creatividad mientras evita los sistemas de detección de intrusiones cuyos
proveedores simplemente hojearon la página del manual de Nmap y agregaron
reglas específicas.
El --scanflagsargumento puede ser un valor numérico de bandera como 9 (PSH
y FIN), pero es más fácil usar nombres simbólicos. Simplemente combine
cualquier combinación de URG, ACK, PSH, RST, SYNy FIN. Por ejemplo, --
scanflags URGACKPSHRSTSYNFINestablece todo, aunque no es muy útil para
escanear. El orden en que se especifican es irrelevante.
Además de especificar los indicadores deseados, puede especificar un tipo de
escaneo TCP (como -sAo -sF). Ese tipo base le indica a Nmap cómo interpretar
las respuestas. Por ejemplo, un escaneo SYN considera que la falta de
respuesta indica un filteredpuerto, mientras que un escaneo FIN trata lo mismo
que open|filtered. Nmap se comportará de la misma manera que lo hace para
el tipo de escaneo base, excepto que utilizará los indicadores TCP que
especifique en su lugar. Si no especifica un tipo base, se utiliza el escaneo SYN.
-sZ(Escaneo de eco de cookie SCTP)
El escaneo SCTP COOKIE ECHO es un escaneo SCTP más avanzado. Aprovecha
el hecho de que las implementaciones SCTP deben descartar silenciosamente
los paquetes que contienen fragmentos COOKIE ECHO en los puertos abiertos,
pero enviar un ABORT si el puerto está cerrado. La ventaja de este tipo de
escaneo es que no es un escaneo de puerto tan obvio como un escaneo INIT.
Además, puede haber conjuntos de reglas de firewall sin estado que bloqueen
los fragmentos INIT, pero no los fragmentos COOKIE ECHO. No se deje engañar
pensando que esto hará que un escaneo de puerto sea invisible; un buen IDS
también podrá detectar escaneos SCTP COOKIE ECHO. La desventaja es que los
escaneos SCTP COOKIE ECHO no pueden diferenciar entre
puertos openy filtered puertos, dejándolo con el estado open|filtered en ambos
casos.
-sI <zombie host>[:<probeport>](escaneo inactivo)
Este método de escaneo avanzado permite un escaneo de puerto TCP
verdaderamente ciego del objetivo (lo que significa que no se envían paquetes
al objetivo desde su dirección IP real). En cambio, un ataque de canal lateral
único explota la generación de secuencias de identificación de fragmentación
de IP predecibles en el host zombi para obtener información sobre los puertos
abiertos en el objetivo. Los sistemas IDS mostrarán el escaneo como si viniera
de la máquina zombi que especifique (que debe estar activa y cumplir con
ciertos criterios). Los detalles completos de este fascinante tipo de escaneo se
encuentran en la sección llamada "Escaneo inactivo de TCP ( -sI)" .
Además de ser extraordinariamente sigiloso (debido a su naturaleza ciega),
este tipo de escaneo permite mapear relaciones de confianza basadas en IP
entre máquinas. La lista de puertos muestra los puertos abiertos desde la
perspectiva del host zombi. Por lo tanto, puede intentar escanear un objetivo
utilizando varios zombis en los que crea que podrían confiar (a través de reglas
de filtrado de paquetes/enrutador).
Puede agregar dos puntos seguidos de un número de puerto al host zombie si
desea sondear un puerto en particular en el zombie para detectar cambios de
ID de IP. De lo contrario, Nmap usará el puerto que usa de manera
predeterminada para los pings TCP (80).
-sO(Escaneo de protocolo IP)
El escaneo de protocolos IP le permite determinar qué protocolos IP (TCP, ICMP,
IGMP, etc.) son compatibles con las máquinas de destino. Técnicamente, no se
trata de un escaneo de puertos, ya que recorre los números de protocolo IP en
lugar de los números de puerto TCP o UDP. Sin embargo, sigue utilizando la -
popción de seleccionar los números de protocolo escaneados, informa sus
resultados dentro del formato de tabla de puertos normal e incluso utiliza el
mismo motor de escaneo subyacente que los métodos de escaneo de puertos
reales. Por lo tanto, se parece lo suficiente a un escaneo de puertos como para
que pertenezca a esta categoría.
Además de ser útil por sí mismo, el escaneo de protocolos demuestra el poder
del software de código abierto. Si bien la idea fundamental es bastante simple,
no había pensado en agregarla ni había recibido ninguna solicitud para dicha
funcionalidad. Luego, en el verano de 2000, Gerhard Rieger concibió la idea,
escribió un excelente parche para implementarla y lo envió a la lista de
correo de anuncios (en ese entonces llamada nmap-hackers ). Incorporé ese
parche al árbol de Nmap y publiqué una nueva versión al día siguiente. ¡Pocas
piezas de software comercial tienen usuarios lo suficientemente entusiastas
como para diseñar y contribuir con sus propias mejoras!
El escaneo de protocolo funciona de manera similar al escaneo UDP. En lugar
de iterar a través del campo de número de puerto de un paquete UDP, envía
encabezados de paquete IP e itera a través del campo de protocolo IP de ocho
bits. Los encabezados suelen estar vacíos, no contienen datos y ni siquiera el
encabezado adecuado para el protocolo reclamado. Las excepciones son TCP,
UDP, ICMP, SCTP e IGMP. Se incluye un encabezado de protocolo adecuado para
ellos, ya que algunos sistemas no los enviarán de otra manera y porque Nmap
ya tiene funciones para crearlos. En lugar de buscar mensajes ICMP de puerto
inalcanzable, el escaneo de protocolo busca mensajes ICMP de
protocolo inalcanzable. Si Nmap recibe alguna respuesta en cualquier protocolo
del host de destino, Nmap marca ese protocolo como open. Un error de
protocolo ICMP inalcanzable (tipo 3, código 2) hace que el protocolo se marque
como closedmientras que puerto inalcanzable (tipo 3, código 3) marca el
protocolo como open. Otros errores ICMP inaccesibles (tipo 3, código 0, 1, 9, 10
o 13) hacen que el protocolo se marque filtered(aunque al mismo tiempo
demuestran que ICMP lo está open). Si no se recibe respuesta después de las
retransmisiones, el protocolo se marca open|filtered
-b <FTP relay host>(Escaneo de rebote de FTP)
Una característica interesante del protocolo FTP ( RFC 959 ) es el soporte para
las llamadas conexiones FTP proxy. Esto permite a un usuario conectarse a un
servidor FTP y luego solicitar que se envíen archivos a un servidor de terceros.
Esta característica es propensa al abuso en muchos niveles, por lo que la
mayoría de los servidores han dejado de admitirla. Uno de los abusos que
permite esta característica es hacer que el servidor FTP escanee los puertos de
otros hosts. Simplemente pídale al servidor FTP que envíe un archivo a cada
puerto interesante de un host de destino por turno. El mensaje de error
describirá si el puerto está abierto o no. Esta es una buena forma de evitar los
firewalls porque los servidores FTP de las organizaciones a menudo se colocan
donde tienen más acceso a otros hosts internos que cualquier host de Internet
antiguo. Nmap admite el escaneo de rebote de FTP con la -bopción. Toma un
argumento de la
forma <username>: <password>@ <server>: <port>. <Server>es el nombre
o la dirección IP de un servidor FTP vulnerable. Al igual que con una URL
normal, puede omitir <username>: , en cuyo caso se
utilizan <password>credenciales de inicio de sesión anónimas
(usuario: anonymouscontraseña: ). -wwwuser@También se puede omitir el
número de puerto (y los dos puntos precedentes), en cuyo caso <server>se
utiliza el puerto FTP predeterminado (21).
Esta vulnerabilidad era muy común en 1997, cuando se lanzó Nmap, pero se
ha solucionado en gran medida. Todavía hay servidores vulnerables, por lo que
vale la pena intentarlo cuando todo lo demás falla. Si su objetivo es eludir un
cortafuegos, escanee la red de destino en busca del puerto 21 (o incluso de
cualquier servicio FTP si escanea todos los puertos con detección de versiones)
y utilice el ftp-bounce script NSE. Nmap le dirá si el host es vulnerable o no. Si
solo está tratando de cubrir sus huellas, no necesita (y, de hecho, no debería)
limitarse a los hosts de la red de destino. Antes de comenzar a escanear
direcciones de Internet al azar en busca de servidores FTP vulnerables,
considere que los administradores de sistemas pueden no apreciar que abuse
de sus servidores de esta manera.
Especificación de puerto y orden de escaneo
Además de todos los métodos de escaneo que se han analizado anteriormente,
Nmap ofrece opciones para especificar qué puertos se escanean y si el orden
de escaneo es aleatorio o secuencial. De manera predeterminada, Nmap
escanea los 1000 puertos más comunes para cada protocolo.
-p <port ranges>(Escanear solo los puertos especificados)
Esta opción especifica qué puertos desea escanear y anula el valor
predeterminado. Se aceptan números de puerto individuales, al igual que
rangos separados por un guión (por ejemplo, 1-1023). Se pueden omitir los
valores iniciales y/o finales de un rango, lo que hace que Nmap use 1 y 65535,
respectivamente. Por lo tanto, puede especificar -p-que se escaneen los
puertos del 1 al 65535. Se permite escanear el puerto cero si lo especifica
explícitamente. Para el escaneo de protocolos IP ( -sO), esta opción especifica
los números de protocolo que desea escanear (0–255).
Al escanear una combinación de protocolos (por ejemplo, TCP y UDP), puede
especificar un protocolo en particular anteponiendo a los números de puerto el
símbolo T:para TCP, U:para UDP, S:para SCTP o P:para el protocolo IP. El
calificador dura hasta que especifique otro calificador. Por ejemplo, el
argumento -p U:53,111,137,T:21-25,80,139,8080escanearía los puertos UDP
53, 111 y 137, así como los puertos TCP enumerados. Tenga en cuenta que
para escanear tanto UDP como TCP, debe especificar -sUy al menos un tipo de
escaneo TCP (como -sS, -sFo -sT). Si no se proporciona ningún calificador de
protocolo, los números de puerto se agregan a todas las listas de protocolos.
Los puertos también se pueden especificar por nombre según a qué se hace
referencia al puerto en el nmap-services. Incluso puede utilizar los
comodines *y ?con los nombres. Por ejemplo, para escanear FTP y todos los
puertos cuyos nombres comiencen con “ http ” , utilice -p ftp,http*. Tenga
cuidado con las expansiones de shell y cite el argumento a -psi no está seguro.
Los rangos de puertos se pueden encerrar entre corchetes para indicar los
puertos dentro de ese rango que aparecen en nmap-services. Por ejemplo, lo
siguiente escaneará todos los puertos con nmap-services un número igual o
inferior a 1024: -p [-1024]. Tenga cuidado con las expansiones de shell y cite el
argumento -psi no está seguro.
--exclude-ports <port ranges>(Excluir los puertos especificados del escaneo)
Esta opción especifica qué puertos desea que Nmap excluya del análisis. <port
ranges> Se especifican de forma similar a -p. Para el análisis de protocolos IP
( -sO), esta opción especifica los números de protocolo que desea excluir (0–
255).
Cuando se solicita la exclusión de puertos, se excluyen de todos los tipos de
análisis (es decir, no se analizarán bajo ninguna circunstancia). Esto también
incluye la fase de descubrimiento.
-F(Escaneo rápido (puerto limitado))
Especifica que desea escanear menos puertos que los predeterminados.
Normalmente, Nmap escanea los 1000 puertos más comunes para cada
protocolo escaneado. Con -F, esto se reduce a 100.
Nmap necesita un nmap-servicesarchivo con información de frecuencia para
saber qué puertos son los más comunes (consulte la sección denominada
“Lista de puertos conocidos: nmap-services” para obtener más información
sobre frecuencias de puertos). Si la información de frecuencia de puerto no
está disponible, tal vez debido al uso de un nmap-servicesarchivo
personalizado, Nmap escanea todos los puertos nombrados más los puertos 1
a 1024. En ese caso, -Fsignifica escanear solo los puertos que están nombrados
en el archivo de servicios.
-r(No aleatorice los puertos)
De forma predeterminada, Nmap ordena aleatoriamente los puertos
escaneados (excepto que ciertos puertos comúnmente accesibles se mueven
cerca del comienzo por razones de eficiencia). Esta aleatorización normalmente
es deseable, pero puede especificar -rque el escaneo de puertos sea secuencial
(ordenado del más bajo al más alto).
--port-ratio <ratio><decimal number between 0 and 1>
Escanea todos los puertos del nmap-servicesarchivo con una proporción mayor
que la dada. <ratio>Debe estar entre 0,0 y 1,0.
--top-ports <n>
Escanea los <n>puertos con la proporción más alta encontrados en nmap-
servicesel archivo después de excluir todos los puertos especificados por --
exclude-ports. <n>debe ser 1 o mayor.
Detección de servicios y versiones
Apunte Nmap a una máquina remota y podría decirle que los
puertos 25/tcp, 80/tcpy 53/udpestán abiertos. nmap-services base de datos de
aproximadamente 2.200 servicios conocidos, Nmap informará que esos puertos
probablemente corresponden a un servidor de correo (SMTP), un servidor web
(HTTP) y un servidor de nombres (DNS) respectivamente. Esta búsqueda suele
ser precisa: la gran mayoría de los daemons que escuchan en el puerto TCP 25
son, de hecho, servidores de correo. Sin embargo, ¡no debería apostar su
seguridad por esto! Las personas pueden ejecutar y ejecutan servicios en
puertos extraños.
Incluso si Nmap está en lo cierto y el servidor hipotético anterior está
ejecutando servidores SMTP, HTTP y DNS, no se trata de mucha información.
Cuando se realizan evaluaciones de vulnerabilidad (o incluso inventarios de red
simples) de sus empresas o clientes, lo que realmente desea es saber qué
servidores de correo y DNS y qué versiones están en funcionamiento. Tener un
número de versión preciso ayuda enormemente a determinar a qué
vulnerabilidades es vulnerable un servidor. La detección de versiones le ayuda
a obtener esta información.
Después de que se descubren los puertos TCP y/o UDP mediante uno de los
otros métodos de escaneo, la detección de versiones interroga esos puertos
para determinar más sobre lo que realmente se está ejecutando. nmap-service-
probes La base de datos contiene sondas para consultar varios servicios y
expresiones de coincidencia para reconocer y analizar respuestas. Nmap
intenta determinar el protocolo del servicio (por ejemplo, FTP, SSH, Telnet,
HTTP), el nombre de la aplicación (por ejemplo, ISC BIND, Apache httpd, Solaris
telnetd), el número de versión, el nombre de host, el tipo de dispositivo (por
ejemplo, impresora, enrutador), la familia del sistema operativo (por ejemplo,
Windows, Linux). Cuando es posible, Nmap también obtiene la Enumeración de
plataforma común (CPE) Representación de esta información. A veces, se
encuentran disponibles detalles diversos, como si un servidor X está abierto a
conexiones, la versión del protocolo SSH o el nombre de usuario de KaZaA. Por
supuesto, la mayoría de los servicios no proporcionan toda esta información. Si
Nmap se compiló con soporte para OpenSSL, se conectará a servidores SSL
para deducir el servicio que escucha detrás de esa capa de cifrado. Algunos
puertos UDP se dejan en ese open|filteredestado después de que un escaneo
de puertos UDP no pueda determinar si el puerto está abierto o filtrado. La
detección de versiones intentará obtener una respuesta de estos puertos (tal
como lo hace con los puertos abiertos) y cambiará el estado a abierto si tiene
éxito. open|filteredLos puertos TCP se tratan de la misma manera. Tenga en
cuenta que la -Aopción Nmap habilita la detección de versiones, entre otras
cosas. La detección de versiones se describe en detalle en el Capítulo
7, Detección de versiones de servicios y aplicaciones .
Cuando se descubren servicios RPC, el triturador de RPC de Nmap se utiliza
automáticamente para determinar el programa RPC y los números de versión.
Toma todos los puertos TCP/UDP detectados como RPC y los inunda con
comandos NULL del programa SunRPC en un intento de determinar si son
puertos RPC y, de ser así, qué programa y número de versión sirven. De este
modo, puede obtener efectivamente la misma información que rpcinfo -
p incluso si el mapeador de puertos del objetivo está detrás de un cortafuegos
(o protegido por envoltorios TCP). Los señuelos no funcionan actualmente con
el escaneo RPC.
Cuando Nmap recibe respuestas de un servicio pero no puede hacerlas
coincidir con su base de datos, imprime una huella digital especial y una URL
para que la envíes si sabes con seguridad qué se está ejecutando en el puerto.
Tómate un par de minutos para enviar la información de modo que tu hallazgo
sea beneficioso para todos. Gracias a estos envíos, Nmap tiene alrededor de
6.500 coincidencias de patrones para más de 650 protocolos como SMTP, FTP,
HTTP, etc.
La detección de versiones está habilitada y controlada con las siguientes
opciones:
-sV(Detección de versión)
Habilita la detección de versiones, como se explicó anteriormente.
Alternativamente, puede utilizar -A, que habilita la detección de versiones,
entre otras cosas.
-sR es un alias para -sV. Antes de marzo de 2011, se utilizaba para activar el
procesador RPC por separado de la detección de versiones, pero ahora estas
opciones siempre se combinan.
--allports(No excluya ningún puerto de la detección de versiones)
De manera predeterminada, la detección de la versión de Nmap omite el
puerto TCP 9100 porque algunas impresoras simplemente imprimen cualquier
cosa que se envíe a ese puerto, lo que genera docenas de páginas de
solicitudes HTTP GET, solicitudes de sesión SSL binarias, etc. Este
comportamiento se puede cambiar modificando o eliminando
la Exclude directiva en nmap-service-probes, o puede especificar --allportsque
se escaneen todos los puertos independientemente de
cualquier Exclude directiva.
--version-intensity <intensity>(Establecer la intensidad del escaneo de la
versión)
Al realizar un escaneo de versiones ( -sV), Nmap envía una serie de sondas, a
cada una de las cuales se le asigna un valor de rareza entre uno y nueve. Las
sondas con números más bajos son efectivas contra una amplia variedad de
servicios comunes, mientras que las de números más altos rara vez son útiles.
El nivel de intensidad especifica qué sondas se deben aplicar. Cuanto mayor
sea el número, más probable es que el servicio se identifique correctamente.
Sin embargo, los escaneos de alta intensidad toman más tiempo. La intensidad
debe estar entre 0 y 9. El valor predeterminado es 7. Cuando una sonda se
registra en el puerto de destino mediante la nmap-service-
probes portsdirectiva, esa sonda se intenta independientemente del nivel de
intensidad. Esto garantiza que las sondas DNS siempre se intentarán contra
cualquier puerto abierto 53, la sonda SSL se realizará contra 443, etc.
--version-light(Habilitar modo claro)
Este es un alias de conveniencia para --version-intensity 2. Este modo ligero
hace que el escaneo de versiones sea mucho más rápido, pero es ligeramente
menos probable que identifique servicios.
--version-all(Pruebe cada sonda individualmente)
Un alias para --version-intensity 9, que garantiza que cada sonda se intente en
cada puerto.
--version-trace(Actividad de escaneo de versiones de seguimiento)
Esto hace que Nmap imprima información de depuración extensa sobre lo que
está haciendo el escaneo de versiones. Es un subconjunto de lo que se obtiene
con --packet-trace.
Detección del sistema operativo
Una de las características más conocidas de Nmap es la detección remota de
sistemas operativos mediante la identificación de la pila TCP/IP. Nmap envía
una serie de paquetes TCP y UDP al host remoto y examina prácticamente cada
bit de las respuestas. Después de realizar docenas de pruebas, como el
muestreo de ISN TCP, el soporte y ordenamiento de opciones TCP, el muestreo
de ID de IP y la comprobación del tamaño de la ventana inicial, Nmap compara
los resultados con sus nmap-os-db Base de datos de más de 2600 huellas de
SO conocidas e imprime los detalles del SO si hay una coincidencia. Cada
huella incluye una descripción textual del SO en formato libre y una
clasificación que proporciona el nombre del proveedor (por ejemplo, Sun), el SO
subyacente (por ejemplo, Solaris), la generación del SO (por ejemplo, 10) y el
tipo de dispositivo (propósito general, enrutador, conmutador, consola de
juegos, etc.). La mayoría de las huellas también tienen una Enumeración de
plataforma común (CPE) representación, como cpe:/o:linux:linux_kernel:2.6.
Si Nmap no puede adivinar el sistema operativo de una máquina y las
condiciones son buenas (por ejemplo, se encontró al menos un puerto abierto y
uno cerrado), Nmap proporcionará una URL que puede utilizar para enviar la
huella digital si conoce (con seguridad) el sistema operativo que se ejecuta en
la máquina. Al hacer esto, contribuye al grupo de sistemas operativos
conocidos por Nmap y, por lo tanto, será más preciso para todos.
La detección del sistema operativo permite otras pruebas que utilizan
información que se recopila durante el proceso de todos modos. Una de ellas
es la clasificación de predictibilidad de secuencia TCP. Esta mide
aproximadamente lo difícil que es establecer una conexión TCP falsificada
contra el host remoto. Es útil para explotar relaciones de confianza basadas en
IP de origen (rlogin, filtros de firewall, etc.) o para ocultar la fuente de un
ataque. Este tipo de suplantación rara vez se realiza en la actualidad, pero
muchas máquinas aún son vulnerables a ella. El número de dificultad real se
basa en un muestreo estadístico y puede fluctuar. Por lo general, es mejor
utilizar la clasificación en inglés, como " desafío digno " o " broma trivial " .
Esto solo se informa en la salida normal en -vmodo verbose ( ). Cuando se
habilita el modo verbose junto con -O, también se informa la generación de
secuencia de ID de IP. La mayoría de las máquinas están en la
clase " incremental " , lo que significa que incrementan el campo de ID en el
encabezado de IP para cada paquete que envían. Esto las hace vulnerables a
varios ataques avanzados de recopilación de información y suplantación.
Otra información adicional que permite la detección del sistema operativo es
una estimación del tiempo de actividad de un objetivo. Esta opción utiliza la
opción de marca de tiempo TCP ( RFC 1323 ) para calcular cuándo se reinició
una máquina por última vez. La estimación puede ser inexacta debido a que el
contador de marca de tiempo no se inicializa a cero o el contador se desborda
y se reinicia, por lo que se imprime solo en modo detallado.
La detección del sistema operativo se trata en el Capítulo 8, Detección remota
del sistema operativo .
La detección del sistema operativo está habilitada y controlada con las
siguientes opciones:
-O(Habilitar detección de SO)
Habilita la detección del sistema operativo, como se explicó anteriormente.
También puedes usar -Apara habilitar la detección del sistema operativo junto
con otras funciones.
--osscan-limit(Limita la detección del sistema operativo a objetivos
prometedores)
La detección del sistema operativo es mucho más eficaz si se encuentran al
menos un puerto TCP abierto y uno cerrado. Configure esta opción y Nmap ni
siquiera intentará la detección del sistema operativo en hosts que no cumplan
con este criterio. Esto puede ahorrar tiempo sustancial, especialmente en -
Pnanálisis en muchos hosts. Solo importa cuando se solicita la detección del
sistema operativo con -Oo -A.
--osscan-guess; --fuzzy(Resultados de detección del sistema operativo)
Cuando Nmap no puede detectar una coincidencia perfecta del sistema
operativo, a veces ofrece coincidencias cercanas como posibilidades. La
coincidencia debe ser muy cercana para que Nmap haga esto de forma
predeterminada. Cualquiera de estas opciones (equivalentes) hace que Nmap
realice suposiciones de forma más agresiva. Nmap seguirá avisándote cuando
se imprima una coincidencia imperfecta y mostrará su nivel de confianza
(porcentaje) para cada suposición.
--max-os-tries(Establecer el número máximo de intentos de detección del
sistema operativo contra un objetivo)
Cuando Nmap realiza una detección del sistema operativo en un objetivo y no
encuentra una coincidencia perfecta, normalmente repite el intento. De forma
predeterminada, Nmap lo intenta cinco veces si las condiciones son favorables
para el envío de la huella del sistema operativo, y dos veces cuando las
condiciones no son tan buenas. Especificar un --max-os-triesvalor más bajo
(como 1) acelera Nmap, aunque se pierden reintentos que podrían identificar el
sistema operativo. Alternativamente, se puede establecer un valor alto para
permitir incluso más reintentos cuando las condiciones son favorables. Esto
rara vez se hace, excepto para generar mejores huellas para el envío y la
integración en la base de datos del sistema operativo de Nmap.
Motor de secuencias de comandos Nmap (NSE)
El motor de scripts de Nmap (NSE) es una de las funciones más potentes y
flexibles de Nmap. Permite a los usuarios escribir (y compartir) scripts simples
(utilizando el lenguaje de programación Lua) ) para automatizar una amplia
variedad de tareas de red. Esos scripts se ejecutan en paralelo con la velocidad
y la eficiencia que espera de Nmap. Los usuarios pueden confiar en el creciente
y diverso conjunto de scripts distribuidos con Nmap, o escribir los suyos
propios para satisfacer necesidades personalizadas.
Las tareas que teníamos en mente al crear el sistema incluyen el
descubrimiento de redes, la detección de versiones más sofisticadas y la
detección de vulnerabilidades. NSE puede incluso utilizarse para la explotación
de vulnerabilidades.
Para reflejar esos diferentes usos y simplificar la elección de los scripts que se
van a ejecutar, cada script contiene un campo que lo asocia con una o más
categorías. Las categorías definidas actualmente
son auth, broadcast, default. discovery, dos, exploit, external, fuzzer, intrusive,
malware, safe, version, y vuln. Todas ellas se describen en la sección
denominada “Categorías de scripts” .
Los scripts no se ejecutan en un entorno aislado y, por lo tanto, podrían dañar
su sistema o invadir su privacidad de forma accidental o maliciosa. Nunca
ejecute scripts de terceros a menos que confíe en los autores o haya auditado
cuidadosamente los scripts usted mismo.
El motor de scripts de Nmap se describe en detalle en el Capítulo 9, Motor de
scripts de Nmap y está controlado por las siguientes opciones:
-sC
Realiza un análisis de scripts utilizando el conjunto de scripts predeterminado.
Es equivalente a --script=default. Algunos de los scripts de esta categoría se
consideran intrusivos y no se deben ejecutar en una red de destino sin
permiso.
--script <filename>|<category>|<directory>/|<expression>[,...]
Ejecuta un análisis de scripts utilizando una lista separada por comas de
nombres de archivos, categorías de scripts y directorios. Cada elemento de la
lista también puede ser una expresión booleana que describe un conjunto más
complejo de scripts. Cada elemento se interpreta primero como una expresión,
luego como una categoría y, por último, como un nombre de archivo o
directorio.
Hay dos características especiales solo para usuarios avanzados. Una es
anteponer el nombre de los scripts y las expresiones con +para forzar su
ejecución incluso si normalmente no lo harían (por ejemplo, no se detectó el
servicio relevante en el puerto de destino). La otra es que el
argumento allpuede usarse para especificar cada script en la base de datos de
Nmap. Tenga cuidado con esto porque NSE contiene scripts peligrosos como
exploits, crackers de autenticación por fuerza bruta y ataques de denegación
de servicio.
Los nombres de archivos y directorios pueden ser relativos o absolutos. Los
nombres absolutos se utilizan directamente. Las rutas relativas se buscan en el
de scriptscada uno de los siguientes lugares hasta encontrarlas:
--datadir
$NMAPDIR
~/.nmap(no buscado en Windows)
<APPDATA>\nmap(sólo en Windows)
el directorio que contiene el nmap ejecutable
el directorio que contiene el nmap ejecutable, seguido
de ../share/nmap(no buscado en Windows)
NMAPDATADIR(no buscado en Windows)
el directorio actual.
Cuando se proporciona un nombre de directorio que termina en /, Nmap carga
todos los archivos del directorio cuyo nombre termina en .nse. Todos los demás
archivos se ignoran y los directorios no se buscan de forma recursiva. Cuando
se proporciona un nombre de archivo, no es necesario que tenga
la .nseextensión; se agregará automáticamente si es necesario.
Los scripts de Nmap se almacenan en un scripts subdirectorio del directorio de
datos de Nmap de forma predeterminada (consulte el Capítulo 14, Descripción
y personalización de los archivos de datos de Nmap ). Para mayor eficiencia,
los scripts se indexan en una base de datos almacenada
en scripts/[Link], que enumera la categoría o categorías a las que pertenece
cada script.
Al hacer referencia a scripts [Link] nombre, puede utilizar el *comodín ' '
de estilo shell.
nmap --script "http-*"
Carga todos los scripts cuyo nombre comienza con http-, como http-authy http-
open-proxy. El argumento a --scripttenía que estar entre comillas para proteger
el comodín del shell.
Se puede realizar una selección de scripts más complicada utilizando los
operadores and, ory notpara crear expresiones booleanas. Los operadores
tienen la misma precedencia que en Lua: notes el más alto, seguido de andy
luego or. Puede modificar la precedencia utilizando paréntesis. Debido a que
las expresiones contienen caracteres de espacio, es necesario entrecomillarlas.
nmap --script "no intrusivo"
Carga todos los scripts excepto aquellos de la intrusivecategoría.
nmap --script "predeterminado o seguro"
Esto es funcionalmente equivalente a nmap --script "default,safe" . Carga
todos los scripts que están en la defaultcategoría o en la safecategoría o en
ambas.
nmap --script "predeterminado y seguro"
Carga aquellos scripts que están en las categorías defaulty safe.
nmap --script "(predeterminado o seguro o intrusivo) y no http-*"
Carga scripts en las categorías default, safe, o intrusive , excepto aquellos
cuyos nombres comienzan con http-.
--script-args <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}
name=valueLe permite proporcionar argumentos a scripts NSE. Los
argumentos son una lista de pares separados por comas . Los nombres y
valores pueden ser cadenas que no contengan espacios en blanco o los
caracteres ' {', ' }', ' =' o ' ,'. Para incluir uno de estos caracteres en una
cadena, encierre la cadena entre comillas simples o dobles. Dentro de una
cadena entre comillas, ' \' escapa una comilla. Una barra invertida solo se usa
para escapar comillas en este caso especial; en todos los demás casos, una
barra invertida se interpreta literalmente. Los valores también pueden ser
tablas encerradas en {}, al igual que en Lua. Una tabla puede contener valores
de cadena simples o más pares nombre-valor, incluidas las tablas anidadas.
Muchos scripts califican sus argumentos con el nombre del script, como
en xmpp-info.server_name. Puede usar esa versión completa calificada para
afectar solo al script especificado, o puede pasar la versión no calificada
( server_nameen este caso) para afectar a todos los scripts que usen ese
nombre de argumento. Un script primero verificará su nombre de argumento
completamente calificado (el nombre especificado en su documentación) antes
de aceptar un nombre de argumento no calificado. Un ejemplo complejo de
argumentos de script es --script-args 'user=foo,pass=",
{}=bar",whois={whodb=nofollow+ripe},xmpp-info.server_name=localhost'. El
portal de documentación de NSE en línea en[Link] enumera
los argumentos que acepta cada script.
--script-args-file <filename>
Permite cargar argumentos a scripts NSE desde un archivo. Cualquier
argumento en la línea de comandos reemplaza a los del archivo. El archivo
puede ser una ruta absoluta o una ruta relativa a la ruta de búsqueda habitual
de Nmap (NMAPDIR, etc.). Los argumentos pueden estar separados por comas
o por líneas nuevas, pero por lo demás siguen las mismas reglas que para --
script-args, sin necesidad de comillas especiales ni escapes, ya que el shell no
los analiza.
--script-help <filename>|<category>|<directory>|<expression>|all[,...]
Muestra ayuda sobre scripts. Para cada script que coincida con la
especificación dada, Nmap imprime el nombre del script, sus categorías y su
descripción. Las especificaciones son las mismas que las aceptadas por --
script; por lo tanto, por ejemplo, si desea ayuda sobre el ftp-anonscript, deberá
ejecutar nmap --script-help ftp-anon . Además de obtener ayuda para
scripts individuales, puede usar esto como una vista previa de qué scripts se
ejecutarán para una especificación, por ejemplo, con nmap --script-help
default .
--script-trace
Esta opción hace lo mismo --packet-trace, pero una capa ISO más arriba. Si se
especifica esta opción, se imprimen todas las comunicaciones entrantes y
salientes realizadas por un script. La información mostrada incluye el protocolo
de comunicación, la fuente, el destino y los datos transmitidos. Si más del 5 %
de todos los datos transmitidos no se pueden imprimir, la salida del rastreo se
presenta en formato de volcado hexadecimal. Al especificarla, --packet-
tracetambién se habilita el rastreo del script.
--script-updatedb
Esta opción actualiza la base de datos de scripts que se encuentra
en scripts/[Link] que Nmap determina los scripts y categorías
predeterminados disponibles. Solo es necesario actualizar la base de datos si
ha añadido o eliminado scripts de NSE del scriptsdirectorio predeterminado o si
ha cambiado las categorías de algún script. Esta opción generalmente se utiliza
sola: nmap --script-updatedb .
Tiempo y rendimiento
Una de mis mayores prioridades en el desarrollo de Nmap siempre ha sido el
rendimiento. Un escaneo predeterminado ( nmap <hostname> ) de un host
en mi red local toma una quinta parte de un segundo. Ese tiempo apenas es
suficiente para parpadear, pero se suma cuando se escanean cientos o miles
de hosts. Además, ciertas opciones de escaneo, como el escaneo UDP y la
detección de versiones, pueden aumentar los tiempos de escaneo
sustancialmente. También lo pueden hacer ciertas configuraciones de firewall,
particularmente la limitación de la velocidad de respuesta. Si bien Nmap utiliza
paralelismo y muchos algoritmos avanzados para acelerar estos escaneos, el
usuario tiene el control final sobre cómo se ejecuta Nmap. Los usuarios
expertos elaboran cuidadosamente los comandos de Nmap para obtener solo
la información que les interesa y cumplir con sus limitaciones de tiempo.
Las técnicas para mejorar los tiempos de escaneo incluyen omitir pruebas no
críticas y actualizar a la última versión de Nmap (las mejoras de rendimiento se
realizan con frecuencia). Optimizar los parámetros de tiempo también puede
marcar una diferencia sustancial. Esas opciones se enumeran a continuación.
Algunas opciones aceptan un timeparámetro. Este se especifica en segundos
de forma predeterminada, aunque puedes agregar "ms", "s", "m" o "h" al valor
para especificar milisegundos, segundos, minutos u horas. Por lo tanto, los --
host-timeoutargumentos 900000ms, 900, 900sy 15mhacen lo mismo.
--min-hostgroup <numhosts>; (Ajustar el tamaño de los grupos de escaneo
paralelo) --max-hostgroup <numhosts>
Nmap tiene la capacidad de escanear puertos o versiones de varios hosts en
paralelo. Nmap hace esto dividiendo el espacio de IP de destino en grupos y
luego escaneando un grupo a la vez. En general, los grupos más grandes son
más eficientes. La desventaja es que los resultados de host no se pueden
proporcionar hasta que se haya completado todo el grupo. Por lo tanto, si
Nmap comenzó con un tamaño de grupo de 50, el usuario no recibiría ningún
informe (excepto las actualizaciones ofrecidas en modo detallado) hasta que se
completaran los primeros 50 hosts.
De forma predeterminada, Nmap adopta un enfoque de compromiso para este
conflicto. Comienza con un tamaño de grupo de tan solo cinco para que los
primeros resultados lleguen rápidamente y luego aumenta el tamaño del grupo
hasta 1024. Los números predeterminados exactos dependen de las opciones
proporcionadas. Por razones de eficiencia, Nmap utiliza tamaños de grupo más
grandes para escaneos UDP o TCP de pocos puertos.
Cuando se especifica un tamaño máximo de grupo con --max-hostgroup, Nmap
nunca superará ese tamaño. Especifique un tamaño mínimo con --min-
hostgroupy Nmap intentará mantener los tamaños de grupo por encima de ese
nivel. Nmap puede tener que utilizar grupos más pequeños que los
especificados si no quedan suficientes hosts de destino en una interfaz
determinada para cumplir con el mínimo especificado. Ambos pueden
configurarse para mantener el tamaño del grupo dentro de un rango específico,
aunque esto rara vez se desea.
Estas opciones no tienen efecto durante la fase de detección de host de un
análisis. Esto incluye los análisis de ping simples ( -sn). La detección de host
siempre funciona en grupos grandes de hosts para mejorar la velocidad y la
precisión.
El uso principal de estas opciones es especificar un tamaño de grupo mínimo
grande para que el análisis completo se ejecute más rápidamente. Una opción
común es 256 para analizar una red en fragmentos de tamaño /24. Para un
análisis con muchos puertos, es poco probable que superar ese número ayude
mucho. Para análisis de solo unos pocos números de puerto, los tamaños de
grupo de host de 2048 o más pueden ser útiles.
--min-parallelism <numprobes>; (Ajustar la paralelización de la sonda) --max-
parallelism <numprobes>
Estas opciones controlan el número total de sondeos que pueden estar
pendientes para un grupo de hosts. Se utilizan para escanear puertos y
descubrir hosts. De forma predeterminada, Nmap calcula un paralelismo ideal
en constante cambio basado en el rendimiento de la red. Si se descartan
paquetes, Nmap reduce la velocidad y permite menos sondeos pendientes. El
número ideal de sondeos aumenta lentamente a medida que la red demuestra
su valía. Estas opciones establecen límites mínimos o máximos para esa
variable. De forma predeterminada, el paralelismo ideal puede disminuir a uno
si la red demuestra no ser confiable y aumentar a varios cientos en condiciones
perfectas.
El uso más común es establecer --min-parallelismun número mayor que uno
para acelerar los análisis de hosts o redes con bajo rendimiento. Esta es una
opción riesgosa, ya que establecerla demasiado alta puede afectar la precisión.
Establecer esto también reduce la capacidad de Nmap para controlar el
paralelismo de forma dinámica en función de las condiciones de la red. Un
valor de 10 podría ser razonable, aunque solo lo ajusto como último recurso.
A veces, la --max-parallelismopción se establece en uno para evitar que Nmap
envíe más de una sonda a la vez a los hosts. La --scan-delayopción, que se
analiza más adelante, es otra forma de hacerlo.
--min-rtt-timeout <time>, , (Ajustar los tiempos de espera de la sonda) --max-
rtt-timeout <time>--initial-rtt-timeout <time>
Nmap mantiene un valor de tiempo de espera en ejecución para determinar
cuánto tiempo esperará una respuesta de sondeo antes de abandonar o
retransmitir la sonda. Esto se calcula en función de los tiempos de respuesta de
las sondas anteriores. La fórmula exacta se proporciona en la sección
denominada “Código de escaneo y algoritmos” . Si la latencia de la red se
muestra significativa y variable, este tiempo de espera puede aumentar hasta
varios segundos. También comienza en un nivel conservador (alto) y puede
permanecer así durante un tiempo cuando Nmap escanea hosts que no
responden.
Si se especifica un valor menor --max-rtt-timeoutque --initial-rtt-timeoutel valor
predeterminado, se pueden reducir significativamente los tiempos de escaneo.
Esto es particularmente cierto para -Pnescaneos sin ping ( ) y aquellos contra
redes con filtros muy fuertes. Sin embargo, no se debe ser demasiado agresivo.
El escaneo puede terminar tomando más tiempo si se especifica un valor tan
bajo que muchas sondas agoten el tiempo de espera y retransmitan mientras
la respuesta está en tránsito.
Si todos los hosts están en una red local, 100 milisegundos ( --max-rtt-timeout
100ms) es un valor agresivo razonable. Si hay enrutamiento involucrado,
primero haga ping a un host en la red con la utilidad de ping ICMP o con un
generador de paquetes personalizado como Nping que tiene más
probabilidades de atravesar un firewall. Observe el tiempo máximo de ida y
vuelta de aproximadamente diez paquetes. Es posible que desee duplicarlo
para el --initial-rtt-timeouty triplicarlo o cuadriplicarlo para el --max-rtt-timeout.
Por lo general, no establezco el RTT máximo por debajo de 100 ms, sin
importar cuáles sean los tiempos de ping. Tampoco excedo los 1000 ms.
--min-rtt-timeoutes una opción que se utiliza con poca frecuencia y que puede
resultar útil cuando una red es tan poco fiable que incluso la opción
predeterminada de Nmap es demasiado agresiva. Dado que Nmap solo reduce
el tiempo de espera al mínimo cuando la red parece fiable, esta necesidad es
poco habitual y debería informarse como un error en la lista de correo nmap-
dev .
--max-retries <numtries>(Especifique el número máximo de retransmisiones
de la sonda de escaneo de puertos)
Cuando Nmap no recibe respuesta a una prueba de escaneo de puertos, podría
significar que el puerto está filtrado. O tal vez la prueba o la respuesta
simplemente se perdieron en la red. También es posible que el host de destino
tenga habilitada la limitación de velocidad que bloqueó temporalmente la
respuesta. Por lo tanto, Nmap intenta nuevamente retransmitiendo la prueba
inicial. Si Nmap detecta una confiabilidad deficiente de la red, puede intentarlo
muchas veces más antes de darse por vencido en un puerto. Si bien esto
mejora la precisión, también alarga los tiempos de escaneo. Cuando el
rendimiento es crítico, los escaneos se pueden acelerar limitando la cantidad
de retransmisiones permitidas. Incluso puede especificar --max-retries 0que se
eviten las retransmisiones, aunque eso solo se recomienda para situaciones
como encuestas informales donde es aceptable perder puertos y hosts
ocasionalmente.
El valor predeterminado (sin -Tplantilla) es permitir diez retransmisiones. Si una
red parece confiable y los hosts de destino no tienen una limitación de
velocidad, Nmap generalmente solo realiza una retransmisión. Por lo tanto, la
mayoría de los escaneos de destino ni siquiera se ven afectados por la
reducción --max-retriesa un valor bajo, como tres. Dichos valores pueden
acelerar sustancialmente los escaneos de hosts lentos (con velocidad limitada).
Por lo general, se pierde algo de información cuando Nmap abandona los
puertos antes de tiempo, aunque eso puede ser preferible a dejar que --host-
timeoutcaduquen y perder toda la información sobre el destino.
--host-timeout <time>(Renunciar a los hosts objetivo lentos)
Algunos hosts simplemente tardan mucho en analizarse. Esto puede deberse a
un hardware o software de red de bajo rendimiento o poco fiable, a una
limitación de la velocidad de los paquetes o a un cortafuegos restrictivo. El
pequeño porcentaje más lento de los hosts analizados puede consumir la
mayor parte del tiempo de análisis. A veces es mejor reducir las pérdidas y
omitir esos hosts inicialmente. Especifique --host-timeoutla cantidad máxima
de tiempo que está dispuesto a esperar. Por ejemplo, especifique 30mque se
asegure de que Nmap no pierda más de media hora en un solo host. Tenga en
cuenta que Nmap puede estar analizando otros hosts al mismo tiempo durante
esa media hora, por lo que no es una pérdida total. Un host que agota el
tiempo de espera se omite. No se imprimen resultados de detección de tabla
de puertos, detección de SO o detección de versión para ese host.
El valor especial 0se puede usar para significar “ sin tiempo de espera ” , lo
que se puede utilizar para anular la T5 plantilla de tiempo, que establece el
tiempo de espera del host en 15 minutos.
--script-timeout <time>
Mientras que algunos scripts se completan en fracciones de segundo, otros
pueden tardar horas o más dependiendo de la naturaleza del script, los
argumentos pasados, las condiciones de la red y de la aplicación, y más. La --
script-timeout opción establece un límite en el tiempo de ejecución del script.
Cualquier instancia de script que exceda ese tiempo será finalizada y no se
mostrará ninguna salida. Si la depuración ( -d) está habilitada, Nmap informará
sobre cada tiempo de espera. Para los scripts de host y de servicio, una
instancia de script solo escanea un único host o puerto de destino y el período
de tiempo de espera se restablecerá para la siguiente instancia.
El valor especial 0se puede usar para significar “ sin tiempo de espera ” , lo
que se puede utilizar para anular la T5 plantilla de tiempo, que establece el
tiempo de espera del script en 10 minutos.
--scan-delay <time>; (Ajustar el retardo entre sondas) --max-scan-
delay <time>
Esta opción hace que Nmap espere al menos la cantidad de tiempo indicada
entre cada sondeo que envía a un host determinado. Esto es particularmente
útil en el caso de limitación de velocidad. Las máquinas Solaris (entre muchas
otras) normalmente responderán a los paquetes de sondeo de escaneo UDP
con solo un mensaje ICMP por segundo. Cualquier envío de más de lo que envía
Nmap será un desperdicio. Una --scan-delayopción de 1smantendrá a Nmap a
esa velocidad lenta. Nmap intenta detectar la limitación de velocidad y ajustar
el retraso del escaneo en consecuencia, pero no está de más especificarlo
explícitamente si ya sabe qué velocidad funciona mejor.
Cuando Nmap ajusta el retraso de escaneo hacia arriba para hacer frente a la
limitación de velocidad, el escaneo se ralentiza drásticamente. La --max-scan-
delayopción especifica el retraso máximo que Nmap permitirá. Un valor bajo --
max-scan-delay puede acelerar Nmap, pero es riesgoso. Establecer este valor
demasiado bajo puede provocar retransmisiones de paquetes inútiles y
posibles puertos perdidos cuando el destino implementa una limitación de
velocidad estricta.
Otro uso --scan-delayes el de evadir los sistemas de detección y prevención de
intrusiones basados en umbrales (IDS/IPS). Esta técnica se utiliza en la sección
denominada “Un ejemplo práctico: eludir las reglas predeterminadas de Snort
2.2.0” para vencer el detector de escaneo de puertos predeterminado en Snort
IDS. La mayoría de los demás sistemas de detección de intrusiones se pueden
vencer de la misma manera.
--min-rate <number>; (Controla directamente la velocidad de escaneo) --max-
rate <number>
La sincronización dinámica de Nmap es muy útil para encontrar la velocidad
adecuada para escanear. Sin embargo, a veces puede que conozca una
velocidad de escaneo adecuada para una red, o puede que tenga que
garantizar que un escaneo terminará en un tiempo determinado. O tal vez
deba evitar que Nmap escanee demasiado rápido. Las opciones --min-ratey --
max-rateestán diseñadas para estas situaciones.
Cuando --min-ratese da la opción, Nmap hará todo lo posible para enviar
paquetes a la misma velocidad o más rápido que la indicada. El argumento es
un número real positivo que representa una velocidad de paquetes en
paquetes por segundo. Por ejemplo, especificar --min-rate 300significa que
Nmap intentará mantener la velocidad de envío en 300 paquetes por segundo
o más. Especificar una velocidad mínima no impide que Nmap vaya más rápido
si las condiciones lo justifican.
Del mismo modo, --max-ratelimita la velocidad de envío de un escaneo a un
máximo determinado. Utilice --max-rate 100, por ejemplo, para limitar el envío
a 100 paquetes por segundo en una red rápida. Utilice --max-rate 0.1para un
escaneo lento de un paquete cada diez segundos. Utilice --min-ratey --max-
rate juntos para mantener la velocidad dentro de un rango determinado.
Estas dos opciones son globales y afectan a todo el análisis, no a los hosts
individuales. Solo afectan a los análisis de puertos y a los análisis de detección
de host. Otras funciones, como la detección del sistema operativo,
implementan su propia sincronización.
Existen dos situaciones en las que la velocidad de escaneo real puede caer por
debajo del mínimo solicitado. La primera es si el mínimo es más rápido que la
velocidad más rápida a la que Nmap puede enviar, lo que depende del
hardware. En este caso, Nmap simplemente enviará paquetes lo más rápido
posible, pero tenga en cuenta que es probable que velocidades tan altas
provoquen una pérdida de precisión. El segundo caso es cuando Nmap no tiene
nada que enviar, por ejemplo, al final de un escaneo cuando se han enviado las
últimas sondas y Nmap está esperando a que se agote el tiempo de espera o a
que se responda a ellas. Es normal ver que la velocidad de escaneo cae al final
de un escaneo o entre grupos de hosts. La velocidad de envío puede exceder
temporalmente el máximo para compensar retrasos impredecibles, pero en
promedio la velocidad se mantendrá en el máximo o por debajo de él.
La especificación de una velocidad mínima debe hacerse con cuidado.
Escanear más rápido de lo que una red puede soportar puede provocar una
pérdida de precisión. En algunos casos, usar una velocidad más rápida puede
hacer que un escaneo tome más tiempo que con una velocidad más lenta. Esto
se debe a que la retransmisión adaptativa de Nmap Los algoritmos detectarán
la congestión de la red causada por una tasa de escaneo excesiva y
aumentarán la cantidad de retransmisiones para mejorar la precisión. De modo
que, aunque los paquetes se envíen a una tasa más alta, se enviarán más
paquetes en general. Limite la cantidad de retransmisiones con la --max-
retriesopción si necesita establecer un límite superior para el tiempo total de
escaneo.
--defeat-rst-ratelimit
Muchos hosts han utilizado durante mucho tiempo la limitación de
velocidad para reducir la cantidad de mensajes de error ICMP (como errores de
puerto inalcanzable) que envían. Algunos sistemas ahora aplican límites de
velocidad similares a los paquetes RST (reinicio) que generan. Esto puede
ralentizar drásticamente a Nmap, ya que ajusta su tiempo para reflejar esos
límites de velocidad. Puede indicarle a Nmap que ignore esos límites de
velocidad (para escaneos de puertos como el escaneo SYN que no trata los
puertos que no responden como open) especificando --defeat-rst-ratelimit.
El uso de esta opción puede reducir la precisión, ya que algunos puertos
parecerán no responder porque Nmap no esperó lo suficiente para recibir una
respuesta RST con velocidad limitada. Con un escaneo SYN, la falta de
respuesta hace que se etiquete el puerto filtereden lugar del estado que vemos
cuando se reciben los paquetes RST. Esta opción es útil cuando solo te
interesan los puertos abiertos y no vale la pena dedicar tiempo
adicional closed a distinguir entre puertos closedy [Link]
--defeat-icmp-ratelimit
De manera similar a --defeat-rst-ratelimit, la --defeat-icmp-ratelimitopción
intercambia precisión por velocidad, lo que aumenta la velocidad de escaneo
UDP contra hosts que limitan la velocidad de los mensajes de error ICMP.
Debido a que esta opción hace que Nmap no se demore para recibir los
mensajes de puerto inalcanzable, se etiquetará un puerto que no
responde closed|filtereden lugar del valor predeterminado open|filtered. Esto
tiene el efecto de tratar solo los puertos que realmente responden a través de
UDP como open. Dado que muchos servicios UDP no responden de esta
manera, la posibilidad de inexactitud es mayor con esta opción que con --
defeat-rst-ratelimit.
--nsock-engine iocp|epoll|kqueue|poll|select
Imponer el uso de un motor de multiplexación de E/S de nsock
determinado. select(2)Se garantiza que solo el motor de reserva basado en
nsock esté disponible en su sistema. Los motores reciben su nombre del
recurso de gestión de E/S que utilizan. Los motores implementados
actualmente son epoll, kqueue, poll, y select, pero no todos estarán presentes
en ninguna plataforma. De forma predeterminada, Nmap utilizará el "mejor"
motor, es decir, el primero de esta lista que sea compatible. Utilice nmap -
V para ver qué motores son compatibles con su plataforma.
-T paranoid|sneaky|polite|normal|aggressive|insane (Establecer una plantilla de
tiempo)
Aunque los controles de tiempo de grano fino discutidos en la sección anterior
son poderosos y efectivos, algunas personas los encuentran confusos. Además,
elegir los valores apropiados a veces puede llevar más tiempo que el escaneo
que está tratando de optimizar. Afortunadamente, Nmap ofrece un enfoque
más simple, con seis plantillas de tiempo. Puede especificarlas con la -Topción y
su número (0–5) o su nombre. Los nombres de las plantillas
son paranoid ( 0), sneaky ( 1), polite ( 2), normal ( 3), aggressive ( 4)
y insane ( 5). Los primeros dos son para evadir IDS. El modo educado ralentiza
el escaneo para usar menos ancho de banda y recursos de la máquina de
destino. El modo normal es el predeterminado y, por lo tanto, -T3no hace nada.
El modo agresivo acelera los escaneos al asumir que está en una red
razonablemente rápida y confiable. Finalmente, el modo insano asume que
está en una red extraordinariamente rápida o que está dispuesto a sacrificar
algo de precisión por velocidad.
Estas plantillas permiten al usuario especificar qué tan agresivo desea ser,
mientras que Nmap elige los valores de tiempo exactos. Las plantillas también
realizan algunos ajustes de velocidad menores para los cuales no existen
opciones de control de grano fino actualmente. Por ejemplo, -T4 prohíbe que el
retraso de escaneo dinámico exceda los 10 ms para los puertos TCP y -T5limita
ese valor a 5 ms. Las plantillas se pueden usar en combinación con controles
de grano fino, y los controles de grano fino que especifique tendrán prioridad
sobre la plantilla de tiempo predeterminada para ese parámetro. Recomiendo
usarla -T4cuando se escanean redes razonablemente modernas y confiables.
Mantenga esa opción incluso cuando agregue controles de grano fino para que
se beneficie de esas optimizaciones menores adicionales que permite.
Si tiene una conexión Ethernet o de banda ancha decente, le recomendaría que
siempre use -T4. A algunas personas les encanta, -T5aunque es demasiado
agresivo para mi gusto. A veces, las personas lo especifican -T2porque piensan
que es menos probable que bloquee los hosts o porque se consideran
educados en general. A menudo, no se dan cuenta de lo lento -T polite que es
realmente. Su análisis puede tardar diez veces más que un análisis
predeterminado. Los bloqueos de la máquina y los problemas de ancho de
banda son poco frecuentes con las opciones de tiempo predeterminadas ( -T3)
y, por lo tanto, normalmente lo recomiendo para los escáneres cautelosos.
Omitir la detección de versiones es mucho más efectivo que jugar con los
valores de tiempo para reducir estos problemas.
Si bien -T0 y -T1 pueden resultar útiles para evitar alertas de IDS, tardarán
muchísimo tiempo en analizar miles de máquinas o puertos. Para un análisis
tan largo, es posible que prefieras establecer los valores de tiempo exactos que
necesitas en lugar de confiar en los valores -T0y predeterminados -T1 .
Los principales efectos de T0son la serialización del escaneo de modo que solo
se escanee un puerto a la vez y esperar cinco minutos entre el envío de cada
sonda. T1y T2son similares, pero solo esperan 15 segundos y 0,4 segundos,
respectivamente, entre sondas. T3es el comportamiento predeterminado de
Nmap, que incluye la paralelización. -T4 hace el equivalente de --max-rtt-
timeout 1250ms --min-rtt-timeout 100ms --initial-rtt-timeout 500ms --max-
retries 6 y establece el retraso máximo de escaneo TCP y SCTP a 10
ms. T5 hace el equivalente de --max-rtt-timeout 300ms --min-rtt-timeout 50ms
--initial-rtt-timeout 250ms --max-retries 2 --host-timeout 15m --script-timeout
10m así como también establece el retraso máximo de escaneo TCP y SCTP a 5
ms. El retraso máximo de escaneo UDP no se establece con T4o T5, pero se
puede establecer con la --max-scan-delayopción.

También podría gustarte