Trova un server Web vulnerabile, cattura banner in Python

Sommario

In questo tutorial parleremo di Afferrare banner, un tecnica utilizzata per ottenere informazioni sui servizi presenti in rete. Grazie a questo possiamo scoprire macchine sulla rete che hanno servizi in esecuzione con vulnerabilità note, se vogliamo controllare le vulnerabilità possiamo andare alla seguente pagina: CVE.

Per capirne l'uso, procederemo facendo un esempio, proverà a verificare se un server web è vulnerabile (ci concentreremo solo sul web in questo tutorial). Immaginiamo di cercare 2 tipi di vulnerabilità, quindi aggiungiamo le seguenti 2 righe a un file di testo (il mio file si chiamerà vulnerabili.txt):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438
Poi inserisco il codice Pitone, per il versione 3.X, e di seguito viene fornita una spiegazione.
 import http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') vulnerabili = open ("vulnerable.txt", "r") isVulnerable = False per il servizio in vulnerabili: s = service.split ("") if (s [0] nel server): print (host, "ha un servizio", s [0], "con possibile vulnerabilità", s [1]) isVulnerable = True if (not isVulnerable): print (host, "apparentemente non ha server vulnerabile a ciò che stai cercando")
Vedremo ora una spiegazione per parti del codice, prima importiamo la libreria http.cliente che ne avremo bisogno:
 import http.client
Successivamente definiamo il ospite e stabiliamo la connessione, con a tempo scaduto 2 secondi.
 host = "localhost" http = http.client.HTTPConnection (host, timeout = 2)
Il nostro prossimo passo è fare un Richiesta tipo TESTA, che non restituirà il corpo (i dati, ma non ne abbiamo bisogno per questo). E poi otteniamo la risposta.
 http.request ("HEAD", "/") server = http.getresponse (). getheader ('server')
Ora apriremo il nostro file di testo in modalità lettura (R) con le vulnerabilità da cercare, e creiamo una variabile booleana che ci aiuti a sapere se la vulnerabilità è stata trovata (ci aiuterà a mostrare o meno un messaggio alla fine).
 vulnerabili = aperto ("vulnerable.txt", "r") esVulnerable = False
A questo punto effettueremo un ciclo, che passerà attraverso ogni server vulnerabile che abbiamo inserito nel file per verificare se ne viene utilizzato uno nella pagina consultata. Il metodo è usato diviso per interrompere la linea in server e vulnerabilità, come puoi vedere sopra, il file è separato da uno spazio vuoto.
 per il servizio in vulnerabili: s = service.split ("") if (s [0] nel server): print (host, "ha un servizio", s [0], "con possibile vulnerabilità", s [1]) isVulnerable = Vero
Infine, chiudiamo il file che abbiamo aperto e controlliamo se abbiamo riscontrato vulnerabilità, in caso contrario, mostriamo un messaggio all'utente in modo che venga informato.
 vulnerabili.close() if (not isVulnerable): print (host, "apparentemente non ha server vulnerabile a quello che stai cercando") 
Bene, eseguiamolo contro 2 obiettivi, il primo è solvetic.com:

E il secondo e ultimo obiettivo è la mia macchina, ho un server Apache in esecuzione che potrebbe essere vulnerabile, a causa della versione di Apache che utilizza.

Se vogliamo sapere qualcosa sulla vulnerabilità, nella pagina che ho lasciato all'inizio puoi cercare il CVE che puoi vedere nel terminale: CVE-2016-4979. Farete clic su Ricerca e download e inserisci l'identificatore in Copia master di ricerca di CVE, nel riquadro sotto il testo per identificatore CVE e quindi fare clic su Invia.

La vulnerabilità verrà fuori e sarai in grado di vedere una spiegazione, riferimenti, date, ecc.

Qui si conclude il tutorial, questa tecnica può essere applicata per cercare servizi vulnerabili non solo per server web, puoi anche controllare più host contemporaneamente, così da non doverlo lanciare più volte, qui per semplicità è stato indirizzato a un server web e un singolo host. Puoi anche fare Banner Grabbing con l'aiuto di Telnet o Netcat, ecco un'immagine dell'uso di Telnet per rimuovere il server dal mio localhost:

NotaIn Windows Telnet è disabilitato di default, se vuoi attivarlo puoi seguire il seguente tutorial.

Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave