Brute force angreb

Indholdsfortegnelse

I denne vejledning vil brute force -angrebet blive diskuteret, og nogle værktøjer til at udføre dette angreb vil blive nævnt. Først og fremmest er det at sige, hvad brute force handler om, selvom man ved sit navn kan forestille sig det.

Det er en teknik, der er baseret på forsøg og fejl, den bruges til at opnå adgangskoder eller dekryptere data, denne metode søger ikke en intelligent strategi, men tester snarere alle mulige kombinationer, indtil den finder nøglen.

Er det muligt at få en adgangskode eller dekryptere enhver fil? Hvis vores tid sandsynligvis var uendelig, men da det ikke er det, er svaret nej, adgangskoder eller lange taster og med forskellige faktorer (store, små, tal, specialtegn), ville det tage lang tid at få dem ud af dette metode (i en levetid ville vi ikke opnå det).

Vi kan bruge denne metode til at kontrollere sikkerheden af ​​vores adgangskoder eller kryptering mod denne type angreb. Hvis du vil vide det hvordan man opretter en stærk adgangskode, Anbefaler jeg at læse denne vejledning. En krypteringsalgoritme sårbar over for denne type angreb er DES, det modsatte er tilfældet med AES, som ikke er sårbar over for brutal kraft. Det er bedst at forstå området for kryptografi godt.

Kryptografiens verden

At have en stærk adgangskode er det første trin, men du kan også lægge endnu et beskyttelseslag ved hjælp af dobbeltfaktorautentificering I dine konti (i hvert fald de mest værdifulde) er der i dag allerede tjenester, der tilbyder det integreret og gratis, såsom Google, Twitter og Linkedin. Disse systemer sender normalt en besked til din mobil med en kode, når du har indtastet den korrekte adgangskode, så indtil du indtaster den kode, kan du ikke indtaste din konto.

Især brute force kombineres ofte med ordbogsangrebDette angreb består i at have en fil med mere typiske adgangskoder (folk bruger normalt kendte ord til deres adgangskoder, så de husker dem bedre) og prøver dem alle, indtil de finder nøglen eller afslutter adgangskoderne uden held. Angrebet er generelt mere effektivt, selvom hvis vi bruger flere faktorer i vores kodeord, falder chancerne for succes betydeligt.

Brute kraftværktøjer

John Ripper

Det er open source og gratis, du vil normalt finde det distribueret i kildekode.Hovedformålet er at finde svage adgangskoder i UNIX -operativsystemer.

THC Hydra

Dette værktøj giver dig mulighed for at anvende brutal kraft til fjernautentificeringstjenester. Du kan udføre ordbogsangreb mod mere end 50 protokoller.

vandmand

Det er et modulært værktøj, det fungerer parallelt med brute force -logins. Kompatibel med protokoller som FTP, HTTP, IMAP, SSH osv.

Ncrack

Det er et værktøj til at knække netværksgodkendelser, det fungerer hurtigt. Du kan udvide værktøjet ved at oprette dine egne moduler.

Cain & Abel

Det er et værktøj bestemt til gendannelse af adgangskoder i Windows, for at knække det giver dig mulighed for at bruge brutal kraft, men også ordbogsangreb og angreb ved hjælp af regnbuetabeller (Rainbow Table).

Jeg vil lægge en kode i Python under, der får adgangskoder, der kun indeholder tal fra en webside, op til 5 cifre, det kan også gøres med bogstaver, større længde osv. Først forlader jeg dig kode, der serverer postanmodninger i PHP:

 
Vi ser, at vi ikke har grænser for forsøg, at brugeren og dens adgangskode er defineret lige der (for at undgå databaser og komplikationer til koden), hvis brugeren og adgangskoden er korrekte, returnerer vi en kode 200 og hvis ikke en 403.

Dernæst forlader jeg Python -koden, der er ansvarlig for at sende anmodninger til den tidligere kode.

 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 password <= 99999 og ikke fundet: 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 ("Password fundet til bruger josue, es", password) print ("Det tog tid: {0: .2f} s" .format ((time () - start))) found = True else: print (adgangskode) forbindelse. lukk () adgangskode + = 1hvis ikke fundet: print ("Ingen adgangskode fundet til josue")
Denne kode foretager postanmodninger, i hvert pas til sløjfen er alt, hvad vi gør, at ændre adgangskoden og tilføje 1 til den, så vi vil prøve alle mulige adgangskoder fra 0 til 99999 (hvis vi ikke finder det før). Mal alle de numre, du finder, for det var sådan, jeg ville have det til eksemplet, du kan fjerne det, for dette fjerner du det andet. Lad os køre denne kode for at se, om den finder adgangskoderne.

Det første eksempel, vi skal lancere for at finde adgangskoden 2087, herunder er billedet, du kan se, at det ikke tager mig 18 sekunder at få det.

Hvis jeg fjerner det andet, så det ikke maler på skærmen, tager hvert nummer meget mindre tid, her kan du se et skærmbillede:

Nu for det andet og sidste forsøg satte jeg adgangskoden 20870 for at se, hvor lang tid det tager denne gang.

Du kan se forskellen, når du tilføjer endnu et tegn til adgangskoden, men alligevel er det en tid, hvor vi kan vente uden problemer, også hvis vi lægger tråde, ville tiden falde. Derfor bruger vi stærke adgangskoder og robust godkendelse i vores applikationer, som ikke kan automatisere dette angreb.

Hvis du vil se et praktisk eksempel, hvor adgangskoden til en zip eller en rar er brudt, kan du besøge følgende selvstudium:

Bryde .rar eller .zip adgangskode

Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave