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-4438Zatim 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.clientZatim 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čanU 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 = IstinaKonač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