¿Cómo puedo obtener nmap más rápido al escanear puertos UDP? Este tipo de escaneo es increíblemente más lento que los puertos TCP (al menos 2-3 veces)
es probable que el escaneo UDP sea más lento que TCP debido a las diferencias en cómo funciona el protocolo (es decir, con TCP es más fácil establecer que un puerto está abierto debido al protocolo de enlace de tres vías).
Dicho esto, es posible aumentar la velocidad de las exploraciones UDP de varias maneras. Una cosa a tener en cuenta aquí es que si aplica demasiadas opciones de tiempo, se arriesga a reducir la precisión de su escaneo (es decir, nmap se perderá). Dependiendo de su objetivo, esto puede o no ser un problema.
Uno de los mejores lugares para obtener información sobre estos se encuentra en el calendario & sección de rendimiento de el libro de nmap
A partir de eso, tiendo a usar
--max-rtt-timeout
Esto controla el tiempo que nmap esperará las respuestas y es bastante importante para la velocidad de escaneo. Lo que puede hacer aquí es medir el tiempo típico de ida y vuelta de una solicitud mediante ping o algo similar y usar eso como base para esto.
--max-retries
Como se mencionó en otra respuesta, esto es útil. No establecería 0 o podrías perderte algunas cosas, pero configurar 1 o 2 si estás realmente interesado en ver un aumento de velocidad ayudará
--max-scan-delay
Si nmap dice que un host responde lentamente, comenzará a agregar esto, y realmente puede ralentizar el análisis. Establezca este punto bajo en torno a 10 ms y acelerará las cosas, pero si tiene anfitriones inestables o lentos, es probable que se pierda de vista
--min-hostgroup
Si no estás muy preocupado por obtener resultados sobre la marcha y tienes muchos anfitriones para hacer esto, mejorarás las cosas. Algo como 32 o 64 acelerará el escaneo general.
Otro punto clave que debe recordar es que para UDP probablemente solo obtendrá buenos resultados si usa el escaneo de versiones. esto se debe a que muchos servicios UDP solo responden si el paquete que reciben está en el formato correcto. Sin embargo, el escaneo de la versión hará que las cosas sean más lentas, así que si tienes prisa, haz clic
--version-intensity 0
cuando se usa la exploración de versiones.
Intente usar la opción de línea de comando de tarifa mínima:
Cuando se da la opción --min-rate, Nmap hará todo lo posible para enviar paquetes tan rápido o más rápido que la tasa dada. El argumento es un número real positivo que representa una tasa de paquetes en paquetes por segundo. Por ejemplo, si especifica --min-rate 300 significa que Nmap intentará mantener la velocidad de envío en o por encima de 300 paquetes por segundo.
Ejemplo: nmap -sU --min-rate 5000 <targets>
Además de lo que @Tate Hansen sugirió, considere usar --max-retries 0
. También deberás considerar el objetivo. [Algunos] Linux, por ejemplo, limita las respuestas inaccesibles del puerto ICMP, por lo que no importa lo que haga con su escáner, el objetivo sigue siendo un factor de velocidad. También podría -F
y volver a escanear el rango completo de puertos si lo considera necesario en función de los resultados del -F
scan.
Esperemos que eso ayude.
Hay una razón fundamental por la que las exploraciones UDP son más lentas que las exploraciones TCP: UDP no tiene conexión. Esto significa que Nmap no puede distinguir la diferencia entre un puerto abierto con un programa que se está cargando los paquetes de escaneo, un puerto bloqueado por un firewall que deja caer los paquetes en silencio, o los paquetes que se pierden en tránsito debido a la congestión de la red. En el caso de puerto cerrado, Nmap no puede diferenciar entre un puerto con firewall, un paquete perdido o una limitación de velocidad de los mensajes de ICMP inalcanzables. En consecuencia, a menos que un puerto devuelva datos o un mensaje ICMP inalcanzable, Nmap necesita enviar varios paquetes para eliminar la posibilidad de paquetes limitados o perdidos.
Para empezar, no use algo como 'nmap -sUVC', especialmente cuando escanea un gran rango de puertos. Si lo hace, lo más probable es que el resultado sea que muchos puertos estén marcados como | filtrados, y el nmap los golpeará en cada uno de ellos en el escaneo UDP real y en la detección de la versión del servicio, cada uno hasta el máximo de reintentos varias veces y con el escaneo cada vez más lento de nmap.
En vez de eso, necesitas realizar un escaneo de puertos UDP en dos o más etapas, donde la etapa 1 se ve como
nmap -n -sU -p[...] --max-retries 1 targets
y posiblemente otros parámetros de ajuste como los mencionados por Rory McCune anteriormente.
Si un host muestra que todos los puertos están abiertos | filtrados (o algunos cerrados y casi todos abiertos | filtrados), omita este host.
Si un host muestra muchos puertos cerrados y solo unos pocos que están abiertos o abiertos | filtrados, investigue en esos puertos con nmap -sUV -pLIST target
donde LIST es la lista de puertos (posiblemente) abiertos.
Dependiendo del contexto del escaneo, un barrido rápido en muy pocos puertos como 53, 123, 161 y posiblemente otros es a menudo factible.
Lea otras preguntas en las etiquetas nmap network-scanners