Brutalt styrkeangrep

Innholdsfortegnelse

I denne opplæringen vil brute force -angrepet bli diskutert, og noen verktøy for å utføre dette angrepet vil bli nevnt. Først og fremst er det å si hva brute force handler om, selv om man ved navnet kan forestille seg det.

Det er en teknikk som er basert på prøving og feiling, den brukes til å skaffe passord eller dekryptere data, denne metoden søker ikke etter en intelligent strategi, men tester heller alle mulige kombinasjoner til den finner nøkkelen.

Er det mulig å få et passord eller dekryptere en fil? Hvis vår tid sannsynligvis var uendelig, men siden det ikke er det, er svaret nei, passord eller lange taster og med forskjellige faktorer (store, små, tall, spesialtegn), ville det ta lang tid å få dem ut av dette metode (i løpet av livet vil vi ikke oppnå det).

Vi kan bruke denne metoden for å kontrollere sikkerheten til passordene våre eller kryptering mot denne typen angrep. Hvis du vil vite hvordan lage et sterkt passord, Anbefaler jeg å lese denne opplæringen. En krypteringsalgoritme som er sårbar for denne typen angrep er DES, det motsatte er tilfellet med AES, som ikke er sårbar for brutal kraft. Det er best å forstå kryptografifeltet godt.

Kryptografiens verden

Å ha et sterkt passord er det første trinnet, men du kan også legge til et ekstra beskyttelseslag ved å bruke dobbeltfaktorautentisering I kontoene dine (i det minste de mest verdifulle), er det i dag allerede tjenester som tilbyr det integrert og gratis, for eksempel Google, Twitter og Linkedin. Disse systemene sender vanligvis en melding til din mobil med en kode når du har angitt riktig passord, så før du skriver inn koden, kan du ikke angi kontoen din.

Spesielt brute force er ofte kombinert med ordbokangrepDette angrepet består i å ha en fil med mer typiske passord (folk bruker vanligvis kjente ord for passordene sine, så de husker dem bedre) og prøver dem alle, til de finner nøkkelen eller avslutter passordene uten å lykkes. Angrepet generelt er mer effektivt, men hvis vi bruker flere faktorer i passordet vårt, reduseres sjansene for suksess betraktelig.

Brute force verktøy

John ripper

Den er åpen kildekode og gratis, du vil vanligvis finne den distribuert i kildekoden.Hovedmålet er å finne svake passord i UNIX -operativsystemer.

THC Hydra

Dette verktøyet lar deg bruke grov kraft til eksterne autentiseringstjenester. Du kan utføre ordbokangrep mot mer enn 50 protokoller.

manet

Det er et modulært verktøy, det fungerer parallelt med brute force -pålogginger. Kompatibel med protokoller som FTP, HTTP, IMAP, SSH, etc.

Ncrack

Det er et verktøy for å knekke nettverksautentiseringer, det fungerer raskt. Du kan utvide verktøyet ved å lage dine egne moduler.

Cain & Abel

Det er et verktøy som er beregnet på gjenoppretting av passord i Windows, for å knekke det lar deg bruke brute force, men også ordbokangrep og angrep ved hjelp av regnbue -tabeller (Rainbow Table).

Jeg kommer til å sette under en kode i Python som får passord som bare inneholder tall fra en webside, opptil 5 sifre, det kan også gjøres med bokstaver, større lengde, etc. Først forlater jeg deg kode som serverer postforespørsler i PHP:

 
Vi ser at vi ikke har begrensninger for forsøk, at brukeren og passordet er definert akkurat der (for å unngå databaser og komplikasjoner til koden), hvis brukeren og passordet er riktig, returnerer vi en kode 200 og hvis ikke en 403.

Deretter forlater jeg Python -koden som er ansvarlig for å sende forespørsler til den forrige koden.

 import http.client, urllib.parsefrom time import target time = "/bruteForce/index.php"headers = {" Content-type ":" application / x-www-form-urlencoded "," Accept ":" application / xhtml + xml, text / html; q = 0,9, text / plain; ",} found = Falsepassword = 0home = time () mens passord <= 99999 og ikke funnet: parameters = urllib.parse.urlencode ({'user': ' josue ',' pass ': password}) connection = http.client.HTTPConnection ("localhost") connection.request ("POST", target, parameters, headers) response = connection.getresponse () if (response.status == 200): print ("Passord funnet for bruker josue, es", passord) print ("Det tok tid: {0: .2f} s" .format ((time () - start))) found = True else: print (passord) tilkobling. lukk () passord + = 1hvis ikke funnet: print ("Ingen passord funnet for josue")
Denne koden gjør innleggsforespørslene, i hvert pass til løkken er alt vi gjør å endre passordet og legge til 1 i det, så vi vil prøve alle mulige passord fra 0 til 99999 (hvis vi ikke finner det før). Mal alle tallene du finner, fordi det var slik jeg ville ha det for eksempel, du kan fjerne det, for dette eliminerer du det andre. La oss kjøre denne koden for å se om den finner passordene.

Det første eksemplet vi skal lansere for å finne passordet 2087, nedenfor er bildet, du kan se at det ikke tar meg 18 sekunder å få det.

Hvis jeg fjerner det andre slik at det ikke maler på skjermen, tar hvert tall mye kortere tid, her kan du se et skjermbilde:

Nå for det andre og siste forsøket satte jeg passordet 20870, for å se hvor lang tid det tar denne gangen.

Du kan se forskjellen når du legger til et tegn til i passordet, men selv om det er en tid vi kan vente uten problemer, også hvis vi legger inn tråder, reduseres tiden. Det er derfor vi bruker sterke passord og robust autentisering i applikasjonene våre, som ikke kan automatisere dette angrepet.

Hvis du vil se et praktisk eksempel der passordet til en zip eller en rar er ødelagt, kan du besøke følgende opplæring:

Bryt .rar eller .zip passord

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