Pronađite ranjivi web poslužitelj, hvatanje bannera u Pythonu

Sadržaj

U ovom vodiču ćemo govoriti o Hvatanje bannera, a tehnika koja se koristi za dobivanje informacija o uslugama koje se nalaze na mreži. Zahvaljujući tome možemo otkriti strojeve na mreži koji imaju usluge pokrenute s poznatim ranjivostima. Ako želimo provjeriti ranjivosti, možemo otići na sljedeću stranicu: CVE.

Da bismo razumjeli njegovu upotrebu, nastavit ćemo s primjerom, pokušat će provjeriti je li web poslužitelj ranjiv (u ovom ćemo se vodiču usredotočiti samo na web). Zamislimo da tražimo 2 vrste ranjivosti pa u tekstualnu datoteku dodamo sljedeća 2 retka (moja će se datoteka zvati ranjivi.txt):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438
Zatim unosim kôd Piton, za verzija 3.X, a objašnjenje je dano u nastavku.
 import http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') ranjiv = otvoren ("vulnerabilni.txt", "r") isVulnerabilni = Netačno za uslugu u ugroženim grupama: s = service.split ("") if (s [0] na poslužitelju): print (host, "has service", s [0], "s mogućom ranjivošću", s [1]) isVulnerable = True if (not isVulnerable): print (host, "očito nema poslužitelj ranjiv na ono što tražite")
Sad ćemo vidjeti objašnjenje po dijelovima koda, prvo uvozimo biblioteku http.client da će nam trebati:
 uvoz http.client
Zatim definiramo domaćin i uspostavljamo vezu, s a pauza 2 sekunde.
 host = "localhost" http = http.client.HTTPConnection (host, timeout = 2)
Naš sljedeći korak je napraviti a Zahtjev tipa HEAD, koji neće vratiti tijelo (podaci, ali nam za to nisu potrebni). I tada dobivamo odgovor.
 http.request ("HEAD", "/") poslužitelj = http.getresponse (). getheader ('poslužitelj')
Sada ćemo otvoriti tekstualnu datoteku u načinu čitanja (r) s ranjivostima koje trebamo potražiti i stvaramo Booleovu varijablu koja nam pomaže da znamo je li ranjivost pronađena (pomoći će nam da prikažemo poruku ili ne na kraju).
 ranjiv = otvoren ("vulnerabilan.txt", "r") esVulnerabilni = Netačan
U ovom trenutku napravit ćemo petlju koja će proći kroz svaki ranjivi poslužitelj koji smo stavili u datoteku kako bismo provjerili koristi li se ona na stranici s savjetima. Metoda se koristi podjela da biste prekinuli red u poslužitelju i ranjivosti, kao što ste mogli vidjeti gore, datoteka je odvojena praznim prostorom.
 za uslugu u ugroženim grupama: s = service.split ("") if (s [0] na poslužitelju): print (host, "has service", s [0], "with possible ranjivost", s [1]) is Ranjiv = Istina
Konačno, zatvaramo datoteku koju smo otvorili i provjeravamo jesmo li otkrili ranjivost, ako ne, prikazujemo poruku korisniku kako bi bio informiran.
 osjetljiv.close () if (not isVulnerabilni): print (host, "očito nema poslužitelj ranjiv na ono što tražite") 
Pa hajdemo ga pokrenuti protiv 2 cilja, prvi je solutiontic.com:

A druga i posljednja meta je moj stroj, imam pokrenut Apache poslužitelj koji bi mogao biti ranjiv, zbog verzije Apachea koju koristi.

Ako želimo znati nešto o ranjivosti, na stranici koju sam ostavio na početku možete potražiti CVE koji možete vidjeti na terminalu: CVE-2016-4979. Kliknuti ćete na Traži i preuzmi i umetnite identifikator u Pretražite glavnu kopiju CVE -a, u okviru ispod teksta pomoću CVE identifikatora a zatim kliknite Pošalji.

Ranjivost će izaći na vidjelo i moći ćete vidjeti objašnjenje, reference, datume itd.

Ovdje tutorial zaključuje, ova se tehnika može primijeniti za traženje ranjivih usluga, ne samo za web poslužitelje, možete provjeriti i nekoliko hostova istovremeno, kako ga ne biste morali pokrenuti nekoliko puta, ovdje je zbog jednostavnosti upućeno na web poslužitelj i jedan host. Možete i uzeti Banner Grabbing uz pomoć Telneta ili Netcata, evo slike korištenja Telneta za uklanjanje poslužitelja s mog lokalnog računara:

BilješkaU sustavu Windows Telnet je prema zadanim postavkama onemogućen. Ako ga želite aktivirati, slijedite sljedeće upute.

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave