Il modo più efficace per eseguire la scansione dei server Web

1

Diciamo che voglio scansionare una grande quantità di indirizzi IP per i server web in esecuzione sulla porta 80 (consapevole che ci sono altre porte per i server web, ignorando ad esempio).

Quale sarebbe il modo più efficiente per farlo?

Ecco alcune opzioni:

1) esegui uno script bash / python che esegue più istanze di nmap contemporaneamente con una sola porta sottoposta a scansione, il comando sarebbe simile a questo:

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

2) crea uno script python che tenta una richiesta GET per ogni indirizzo IP (anche eseguendo più istanze simultaneamente)

Essenzialmente, le mie domande sono: qualcuna di queste opzioni è la più veloce, o c'è un modo più veloce a cui non sto pensando, inoltre è efficiente nmap rispetto a uno script python o c'è molto di sovraccarico in termini di richieste, impronta di memoria ecc.

Pensiero bonus

Un'idea che mi è venuta in mente era di eseguire uno script bash / python facendo NSLLOKUP su ogni indirizzo ip, anche se questo non mi avrebbe dato server web che non avevano il DNS configurato, il lato positivo sarebbe stato scansione senza inviare qualsiasi pacchetto nella rete

    
posta pzirkind 07.01.2018 - 20:00
fonte

2 risposte

1

Esistono strumenti per la scansione su larga scala che hanno implementato le ottimizzazioni esattamente per risolvere questo problema. Una delle opzioni più conosciute e più sviluppate è masscan . Può raggiungere velocità di 10 MPPS (milioni di pacchetti al secondo) e può scansionare l'intero Internet IPv4 in ~ 6 minuti. Ha persino delle bandiere che ti consentono di effettuare il benchmarking sulla tua rete locale senza spamming su Internet.

Ovviamente, presuppone una connessione Internet in grado di sostenerlo. Se stai effettuando la scansione da casa, non aspettarti da nessuna parte vicino a quella performance se non hai Internet Gigabit.

    
risposta data 07.01.2018 - 21:41
fonte
2

Nmap stesso può fare tutto ciò che hai richiesto, in modo efficiente usando semplici script NSE.

  • Scansione di un numero elevato di server per la porta 80: nmap -p80 -PS80 --open
  • Esegui una richiesta di GET per ogni pagina principale: --script http-fetch --script-args 'maxpagecount=1,destination=/tmp/files . Questo sfortunatamente non funziona bene per più target a partire da Nmap 7.60, ma non ci sarebbe voluto molto per risolverlo fare così. Altri script a cui potresti essere interessato sono link o link .
  • NSLOOKUP su ciascun indirizzo: questo non è specifico, ma Nmap può fare:
    • Ricerca DNS inverso (record PTR), eseguita per impostazione predefinita a meno che non si utilizzi -n . Se questo è tutto che vuoi, usa -sL per "lista di scansione".
    • Ricerca diretta di nomi di host / domini. Nmap lo fa per necessità, ma se è tutto ciò che vuoi, usa -sL -n .
risposta data 08.01.2018 - 18:40
fonte

Leggi altre domande sui tag