El escaneo de Nmap TCP disminuye el porcentaje de progreso

1

Estoy realizando una exploración de TCP en una red y noté que nmap disminuyó el porcentaje del progreso.

El comando es: nmap -A -sT 10.0.0.1-254 -oG scan.txt

Entre los resultados que encontré:

Stats: 0:13:37 elapsed; 211 hosts completed (43 up), 43 undergoing Connect Scan
Connect Scan Timing: About 98.48% done; ETC: 04:04 (0:00:13 remaining)
Stats: 0:17:53 elapsed; 211 hosts completed (43 up), 43 undergoing Connect Scan
Connect Scan Timing: About 98.47% done; ETC: 04:09 (0:00:17 remaining)

¿Se puede ignorar esto como una fluctuación, o hay algo más acerca de la exploración que se está realizando, no sé?

    
pregunta SaAtomic 02.11.2016 - 09:15
fuente

3 respuestas

3

Las estadísticas de porcentaje de finalización de Nmap se basan en la cantidad de cosas completadas dividida por la cantidad de cosas intentadas más la cantidad de cosas que quedan por hacer. Durante una exploración de puertos, las "cosas" son sondas que se envían. Si Nmap hubiera completado 94 de 100 sondas, el porcentaje sería del 94%. Si luego envía una nueva sonda, la parte completada sigue siendo 94/100, pero la parte intentada es 0/1. La fracción total sería 94/101, o 93%.

Esto puede parecer una mala manera de hacerlo, pero funciona bastante bien dado que Nmap envía muchas sondas a la vez y puede cambiar la cantidad de sondas que intenta probar en cualquier momento, según la respuesta del objetivo.

    
respondido por el bonsaiviking 02.11.2016 - 15:05
fuente
2

La fracción de finalización por host se calcula ( scan_engine.cc UltraScanInfo::getCompletionFraction() ) como :

 ports_finished * ( maxtries - 1 ) + probes_sent
 _______________________________________________
             maxtries * numprobes

El porcentaje de finalización total se calcula a partir de esto en todos los hosts. En un escaneo TCP ( -sT ) el número de sondas numprobes se fija al número de puertos ( scan_engine.cc UltraScanInfo::numProbesPerHost() ) y nunca cambia después de la inicialización, por lo que maxtries es el término interesante del cálculo. ports_finished y probes_sent son contadores incrementales, lo anterior funciona en 1.0 cuando ports_finished == probes_sent == numprobes . numprobes será 1000, el número predeterminado de sondas TCP en el ejemplo que dio.

Si maxtries aumenta (debido al tiempo de espera y al reintento), la cantidad estimada de trabajo que queda por hacer aumenta y, por lo tanto, la fracción del trabajo completado disminuye. ( --max-retries puede controlar esto, aunque con un -sT para la conexión TCP por la pila IP del sistema operativo connect() algunos de los otros parámetros de tiempo de espera / reintento que admite NMAP son ineficaces).

El recuento de maxtries no es ingenuo, es la marca de agua más alta de los reintentos (+1) para un puerto de sondeo exitosamente en la exploración hasta el momento. Si agrega -d (depuración), verá el mensaje "Incrementando max_successful_tryno para 1.2.3.4 a 1 (caída de paquete)". Este no es el mismo mensaje que "Incrementando el retraso de envío ...". Es probable que vea ambos mensajes cuando haya una pérdida de paquetes durante una exploración.

Lo que ha visto es una prueba TCP exitosa para un host, pero requirió un reintento, se produjo al final del análisis y logró aumentar el límite superior de la estimación de trabajo. Probablemente revisó la finalización más de un 1%, y la pérdida de paquetes probablemente cause que los tiempos de espera aumenten, disminuyendo la velocidad de escaneo. Aproximadamente 4 minutos transcurrieron entre las dos líneas de estado, por lo que la caída en la finalización no fue simplemente del 0,01%.

La sincronización de la exploración del servicio es un cálculo separado.

    
respondido por el mr.spuratic 07.11.2016 - 19:32
fuente
0

Recomiendo compilar la última versión de Nmap desde la fuente y probarlo.

Si aún persiste, informe al autor con la línea de comandos completa.

    
respondido por el user129397 02.11.2016 - 10:56
fuente

Lea otras preguntas en las etiquetas