Găsiți server web vulnerabil, Banner Grabbing în Python

Cuprins

În acest tutorial despre care vom vorbi Banner Grabbing, A tehnică utilizată pentru a obține informații despre serviciile găsite în rețea. Mulțumită acestui lucru putem descoperi mașini din rețea care au servicii care rulează cu vulnerabilități cunoscute, dacă dorim să verificăm vulnerabilitățile putem accesa următoarea pagină: CVE.

Pentru a înțelege utilizarea acestuia, vom continua să facem un exemplu, vom încerca să verificăm dacă un server web este vulnerabil (ne vom concentra doar pe web în acest tutorial). Să ne imaginăm că căutăm 2 tipuri de vulnerabilități, așa că adăugăm următoarele 2 linii într-un fișier text (fișierul meu va fi numit vulnerabil.txt):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438
Apoi am introdus codul Piton, pentru versiunea 3.X, iar o explicație este dată mai jos.
 import http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') vulnerabil = open ("vulnerable.txt", "r") isVulnerable = False pentru servicii în vulnerabile: s = service.split ("") if (s [0] în server): print (host, "are service", s [0], "cu posibilă vulnerabilitate", s [1]) isVulnerable = Adevărat dacă (nu isVulnerable): print (gazdă, "aparent nu are niciun server vulnerabil la ceea ce căutați")
Vom vedea acum o explicație pe părți ale codului, mai întâi importăm biblioteca http.client că vom avea nevoie de ea:
 importați http.client
Apoi definim gazdă și stabilim conexiunea, cu un pauză 2 secunde.
 host = "localhost" http = http.client.HTTPConnection (gazdă, timeout = 2)
Următorul nostru pas este să facem un Cerere tip HEAD, care nu va returna corpul (datele, dar nu avem nevoie pentru aceasta). Și apoi primim răspunsul.
 http.request ("HEAD", "/") server = http.getresponse (). getheader ('server')
Acum vom deschide fișierul text în modul de citire (r) cu vulnerabilitățile de căutat și creăm o variabilă booleană care ne ajută să știm dacă a fost găsită vulnerabilitatea (ne va ajuta să afișăm un mesaj sau nu la final).
 vulnerabil = deschis ("vulnerabil.txt", "r") esVulnerable = False
În acest moment vom face o buclă, care va trece prin fiecare server vulnerabil pe care l-am pus în fișier pentru a verifica dacă unul este utilizat în pagina consultată. Se folosește metoda Despică pentru a sparge linia în server și vulnerabilitate, așa cum ați putut vedea mai sus, fișierul este separat cu un spațiu gol.
 pentru service în vulnerabile: s = service.split ("") if (s [0] in server): print (host, "are service", s [0], "with possible vulnerability", s [1]) isVulnerable = Adevărat
În cele din urmă, închidem fișierul pe care îl avem deschis și verificăm dacă am găsit vulnerabilitate, dacă nu, afișăm un mesaj utilizatorului pentru ca acesta să fie informat.
 vulnerable.close () if (not isVulnerable): print (host, „aparent nu are server vulnerabil la ceea ce căutați”) 
Ei bine, hai să-l rulăm împotriva a două ținte, prima este solvetic.com:

Și a doua și ultima țintă este mașina mea, am un server Apache care rulează, care ar putea fi vulnerabil, datorită versiunii de Apache pe care o folosește.

Dacă vrem să știm ceva despre vulnerabilitate, în pagina pe care am lăsat-o la început puteți căuta CVE pe care îl puteți vedea în terminal: CVE-2016-4979. Veți face clic pe Căutare și descărcare și introduceți identificatorul în Căutați o copie master a CVE, în caseta de sub text de identificatorul CVE și apoi faceți clic pe Trimiteți.

Vulnerabilitatea va apărea și veți putea vedea explicații, referințe, date etc.

Aici concluzionează tutorialul, această tehnică poate fi aplicată pentru a căuta servicii vulnerabile nu numai pentru servere web, puteți verifica, de asemenea, mai multe gazde în același timp, pentru a nu fi nevoie să îl lansați de mai multe ori, aici pentru simplitate a fost direcționat către un server web și o singură gazdă. Puteți face, de asemenea, Banner Grabbing cu ajutorul Telnet sau Netcat, aici este o imagine a utilizării Telnet pentru a elimina serverul de la host-ul meu local:

NotăÎn Windows Telnet este dezactivat în mod implicit, dacă doriți să îl activați, puteți urma următorul tutorial.

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave