Finn sårbar webserver, bannerfangst i Python

Innholdsfortegnelse

I denne opplæringen skal vi snakke om Bannergrep, a teknikk som brukes for å skaffe informasjon om tjenestene som finnes på nettverket. Takket være dette kan vi oppdage maskiner på nettverket som har tjenester som kjører med kjente sårbarheter. Hvis vi vil kontrollere sårbarheter, kan vi gå til følgende side: CVE.

For å forstå bruken, vil vi fortsette med å lage et eksempel, den vil prøve å sjekke om en webserver er sårbar (vi skal bare fokusere på nettet i denne opplæringen). La oss forestille oss at vi leter etter 2 typer sårbarheter, så vi legger til de følgende 2 linjene i en tekstfil (filen min vil bli kalt sårbar.txt):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438
Deretter legger jeg inn koden Python, for versjon 3.X, og en forklaring er gitt nedenfor.
 importer http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') sårbar = open ("vulner.txt", "r") isVulnerable = False for service in sårbare: s = service.split ("") if (s [0] i server): print (host, "has service", s [0], "med mulig sårbarhet", s [1]) isVulnerable = Sant hvis (ikke isVulnerable): print (host, "tilsynelatende har ingen server sårbar for det du leter etter")
Vi kommer til å se en forklaring etter deler av koden, først importerer vi biblioteket http.klient at vi kommer til å trenge det:
 importer http.client
Deretter definerer vi vert og vi etablerer forbindelsen, med en pause 2 sekunder.
 host = "localhost" http = http.client.HTTPConnection (vert, timeout = 2)
Vårt neste trinn er å lage en HEAD type forespørsel, som ikke vil returnere kroppen (dataene, men vi trenger det ikke for dette). Og så får vi svaret.
 http.request ("HEAD", "/") server = http.getresponse (). getheader ('server')
Nå åpner vi tekstfilen i lesemodus (r) med sårbarhetene å se etter, og vi lager en boolsk variabel som hjelper oss å vite om sårbarheten ble funnet (det vil hjelpe oss med å vise en melding eller ikke på slutten).
 sårbar = åpen ("sårbar.txt", "r") esVulnerable = Falsk
I dette øyeblikket vil vi lage en løkke, som vil gå gjennom hver sårbare server som vi har lagt i filen for å sjekke om en brukes på den konsulterte siden. Metoden brukes dele for å bryte linjen i server og sårbarhet, som du kunne se ovenfor, er filen atskilt med et tomt mellomrom.
 for service i sårbare: s = service.split ("") if (s [0] i server): print (host, "has service", s [0], "with possible vulnerability", s [1]) isVulnerable = Sant
Til slutt lukker vi filen vi har åpen og sjekker om vi har funnet sårbarhet, hvis ikke, viser vi en melding til brukeren slik at de blir informert.
 sårbar.steng () hvis (ikke er sårbar): print (vert, "har tilsynelatende ingen server sårbar for det du leter etter") 
La oss kjøre det mot 2 mål, det første er solvetic.com:

Og det andre og siste målet er min maskin, jeg har en Apache -server som kjører som kan være sårbar på grunn av versjonen av Apache den bruker.

Hvis vi vil vite noe om sårbarheten, kan du på siden jeg forlot i begynnelsen søke etter CVE-en som du kan se i terminalen: CVE-2016-4979. Du klikker på Søk og last ned og sett inn identifikatoren i Søk hovedkopi av CVE, i boksen under teksten av CVE Identifier og klikk deretter Send.

Sårbarheten kommer fram, og du vil kunne se en forklaring, referanser, datoer osv.

Her avsluttes opplæringen, denne teknikken kan brukes for å søke etter sårbare tjenester, ikke bare for webservere, du kan også sjekke flere verter samtidig, for ikke å måtte starte den flere ganger, her for enkelhets skyld har den blitt rettet til en webserver og en enkelt vert. Du kan også gjøre Banner Grabbing ved hjelp av Telnet eller Netcat, her er et bilde av bruken av Telnet for å fjerne serveren fra min lokale vert:

MerkI Windows Telnet er deaktivert som standard. Hvis du vil aktivere det, kan du følge følgende opplæring.

Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave