La forma más eficiente de escanear servidores web

1

Digamos que quiero escanear una gran cantidad de direcciones IP para servidores web que se ejecutan en el puerto 80 (consciente de que hay otros puertos para servidores web, ignorando por ejemplo).

¿Cuál sería la forma más eficiente de hacer esto?

Aquí hay algunas opciones:

1) ejecuta una secuencia de comandos bash / python que ejecuta varias instancias de nmap simultáneamente con solo un puerto que se está escaneando, el comando se vería así:

nmap --append-output -oG output.txt -p 80 -Pn -sS xxx.xxx.xxx.xxx (ip address) &

2) cree una secuencia de comandos de Python que intente una solicitud GET para cada dirección IP (también se ejecutan varias instancias simultáneamente)

Esencialmente, mi (s) pregunta (s) son: ¿alguna de estas opciones es la forma más rápida, o hay una forma más rápida en la que no estoy pensando, además, es eficiente en el uso de los mapas de nafos en comparación con un script de python o hay mucho de gastos generales en términos de solicitudes, huella de memoria, etc.

Bonus Thought

Una idea que se me ocurrió fue ejecutar un script de bash / python haciendo NSLLOKUP en cada dirección IP, aunque esto no me daría servidores web que no tienen DNS configurado, el lado positivo sería escanear sin enviar. cualquier paquete en la red

    
pregunta pzirkind 07.01.2018 - 20:00
fuente

2 respuestas

1

Existen herramientas diseñadas para el escaneo a gran escala que han implementado optimizaciones exactamente para resolver este problema. Una de las opciones más conocidas y desarrolladas es masscan . Puede alcanzar velocidades de 10 MPPS (Millones de paquetes por segundo) y puede escanear todo el Internet IPv4 en aproximadamente 6 minutos. Incluso tiene indicadores que le permiten realizar pruebas comparativas en su red local sin enviar spam a toda la red.

Por supuesto, eso supone una conexión a Internet que puede sostener eso. Si está escaneando desde su casa, no espere nada cerca de ese rendimiento a menos que tenga Internet Gigabit.

    
respondido por el David 07.01.2018 - 21:41
fuente
2

Nmap en sí mismo puede hacer todo lo que usted solicita, de una manera eficiente utilizando scripts NSE simples.

  • Escanee una gran cantidad de servidores para el puerto 80: nmap -p80 -PS80 --open
  • Realice una solicitud GET para cada página raíz: --script http-fetch --script-args 'maxpagecount=1,destination=/tmp/files . Desafortunadamente, no funciona bien para múltiples objetivos a partir de Nmap 7.60, pero no se necesitaría mucho para solucionarlo. hazlo Otros scripts en los que puede estar interesado son enlace o enlace .
  • NSLOOKUP en cada dirección: esto no es específico, pero Nmap puede hacer:
    • Búsqueda inversa de DNS (registro PTR), realizada de manera predeterminada a menos que use -n . Si esto es todo lo que desea, use -sL para "escanear en lista".
    • Búsqueda directa de nombres de host / dominios. Nmap hace esto por necesidad, pero si esto es todo lo que quieres, entonces usa -sL -n .
respondido por el bonsaiviking 08.01.2018 - 18:40
fuente

Lea otras preguntas en las etiquetas