Hvordan knekke passord

Et kort notat - denne artikkelen handler om teorien om hvordan du knekker passord. Å forstå hvordan nettkriminelle utfører angrep er ekstremt viktig for å forstå hvordan man kan sikre systemer mot slike angrep.

Forsøk på å hacke et system du ikke eier er sannsynligvis ulovlig i din jurisdiksjon (pluss å hacke dine egne systemer kan [og ofte bryter] enhver garanti for det produktet).

La oss starte med det grunnleggende. Hva er et brutalt styrkeangrep?

Denne typen angrep innebærer gjentatte ganger å prøve å logge inn som bruker ved å prøve alle mulige bokstav-, tall- og tegnkombinasjoner (ved hjelp av automatiserte verktøy).

Dette kan gjøres enten online (så i sanntid, ved kontinuerlig å prøve forskjellige brukernavn / passordkombinasjoner på kontoer som sosiale medier eller banksider) eller offline (for eksempel hvis du har fått et sett med hashpassord og prøver å knekke dem offline).

Frakoblet er ikke alltid mulig (det kan være vanskelig å skaffe et sett med hashpassord), men det er mye mindre støyende. Dette er fordi et sikkerhetsteam sannsynligvis vil legge merke til mange, mange mislykkede påloggingskontoer fra samme konto, men hvis du kan knekke passordet offline, vil du ikke ha oversikt over mislykkede påloggingsforsøk.

Dette er relativt enkelt med et kort passord. Det blir eksponentielt vanskeligere med et lengre passord på grunn av det store antallet muligheter.

Hvis du for eksempel vet at noen bruker et passord på 5 tegn, som bare består av små bokstaver, er det totale antallet mulige passord 26 ^ 5 (26 mulige bokstaver å velge mellom for første bokstav, 26 mulige valg for den andre brev osv.), eller 11 881 376 mulige kombinasjoner.

Men hvis noen bruker et passord på 11 tegn, bare med små bokstaver, er det totale antallet mulige passord 26 ^ 11 eller 3,670,344,486,987,776 mulige passord.

Når du legger til store bokstaver, spesialtegn og tall, blir dette enda vanskeligere og tidkrevende å knekke. Jo flere mulige passord det er, jo vanskeligere er det for noen å lykkes med å logge inn med et brutalt styrkeangrep.

Hvordan beskytte deg selv

Denne typen angrep kan forsvares mot på et par forskjellige måter. Først kan du bruke tilstrekkelig lange, komplekse passord (minst 15 tegn). Du kan også bruke unike passord for hver konto (bruk en passordbehandling!) For å redusere faren fra datainnbrudd.

Et sikkerhetsteam kan låse ut en konto etter et visst antall mislykkede påloggingsforsøk. De kan også tvinge en sekundær verifiseringsmetode som Captcha, eller bruke 2-faktor autentisering (2FA) som krever en andre kode (SMS eller e-post, app-basert eller maskinvarenøkkelbasert).

Her er en artikkel om hvordan du utfører et brute force-angrep.

Hvordan kan du knekke passord raskere?

Et ordbokangrep innebærer å prøve å logge inn gjentatte ganger ved å prøve et antall kombinasjoner som er inkludert i en forhåndskompilert 'ordbok', eller en liste over kombinasjoner.

Dette er vanligvis raskere enn et brute force-angrep fordi kombinasjonene av bokstaver og tall allerede er beregnet, noe som sparer deg tid og datakraft.

Men hvis passordet er tilstrekkelig komplisert (for eksempel 1098324ukjbfnsdfsnej) og ikke vises i 'ordboken' (den forhåndskompilerte listen over kombinasjoner du jobber med), vil ikke angrepet fungere.

Det lykkes ofte fordi ofte når folk velger passord, velger de vanlige ord eller variasjoner på disse ordene (for eksempel 'passord' eller 'p @ SSword').

En hacker kan også bruke denne typen angrep når de kjenner til eller gjetter en del av passordet (for eksempel en hunds navn, fødselsdager til barn eller et jubileum - informasjon en hacker kan finne på sosiale medier eller andre ressurser med åpen kildekode).

Lignende beskyttelsestiltak som beskrevet ovenfor mot voldsomme angrep kan forhindre at disse typer angrep lykkes.

Hva om du allerede har en liste over hashed-passord?

Passord lagres i / etc / shadow-filen for Linux og C: \ Windows \ System32 \ config-fil for Windows (som ikke er tilgjengelig mens operativsystemet startes opp).

Hvis du har klart å skaffe denne filen, eller hvis du har fått en passordhash på en annen måte, for eksempel å snuse trafikk på nettverket, kan du prøve å slå passord uten nett.

Mens angrepene ovenfor krever at du prøver å logge inn gjentatte ganger, kan du prøve å knekke dem på maskinen din, uten å motta varsler generert av gjentatte mislykkede påloggingsforsøk. Deretter prøver du bare å logge på en gang, etter at du har knekt passordet (og derfor er det ikke noe mislykket påloggingsforsøk).

Du kan bruke brute force-angrep eller ordbokangrep mot hash-filene, og kan lykkes avhengig av hvor sterk hash er.

Vent litt - hva er hashing?

35D4FFEF6EF231D998C6046764BB935D

Kjenner du igjen denne meldingen? Det står 'Hei jeg heter megan'

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Denne er første avsnitt i denne artikkelen. Ja, det ser ut som tull, men det er faktisk en "hash".

En hash-funksjon tillater en datamaskin å legge inn en streng (en kombinasjon av bokstaver, tall og symboler), ta den strengen, blande den sammen og sende en streng med fast lengde. Det er grunnen til at begge strengene ovenfor har samme lengde, selv om strengenes innganger var veldig forskjellige lengder.

Hashes kan opprettes fra nesten hvilket som helst digitalt innhold. I utgangspunktet kan alt digitalt innhold reduseres til binært, eller en serie på 0 og 1. Derfor kan alt digitalt innhold (bilder, dokumenter osv.) Hases.

Det er mange forskjellige hashing-funksjoner, hvorav noen er sikrere enn andre. Hashene ovenfor ble generert med MD5 (MD står for "Message Digest"). Ulike funksjoner varierer også i lengden på hasj de produserer.

Det samme innholdet i den samme hash-funksjonen vil alltid produsere den samme hashen. Imidlertid vil selv en liten endring endre hasjen helt. For eksempel,

2FF5E24F6735B7564CAE7020B41C80F1

Er hasjen for 'Hei mitt navn er Megan' Bare å kapitalisere M i Megan endret hasjen fullstendig ovenfra.

Hashes er også enveisfunksjoner (noe som betyr at de ikke kan reverseres). Dette betyr at hashes (unik og enveis) kan brukes som en type digitalt fingeravtrykk for innhold.

Hva er et eksempel på hvordan hashes brukes?

Hashes kan brukes som bekreftelse på at en melding ikke er endret.

Når du for eksempel sender en e-post, kan du hasje hele e-posten og sende hasjen også. Deretter kan mottakeren kjøre den mottatte meldingen gjennom den samme hashfunksjonen for å sjekke om meldingen er blitt manipulert under transport. Hvis de to hasjene stemmer overens, er meldingen ikke endret. Hvis de ikke stemmer overens, er meldingen endret.

Passord blir vanligvis hasjert når de er lagret. Når en bruker skriver inn passordet sitt, beregner datamaskinen hashverdien og sammenligner den med den lagrede hashverdien. På denne måten lagrer ikke datamaskinen passord i klartekst (så en nysgjerrig hacker kan ikke stjele dem!).

Hvis noen er i stand til å stjele passordfilen, er dataene ubrukelige fordi funksjonen ikke kan reverseres (selv om det er måter, for eksempel regnbuetabeller, å finne ut hvilken klartekst som skaper den kjente hasjen).

Hva er problemet med hashes?

Hvis en hash kan ta data av hvilken som helst lengde eller innhold, er det ubegrensede muligheter for data som kan haseres.

Siden en hash konverterer denne teksten til et innhold med fast lengde (for eksempel 32 tegn), er det et endelig antall kombinasjoner for en hash. Det er veldig veldig mange muligheter, men ikke uendelige.

Til slutt vil to forskjellige datasett gi den samme hashverdien. Dette kalles en kollisjon.

Hvis du har en hash og prøver å gå gjennom hver eneste mulige klartekstverdi for å finne klarteksten som samsvarer med hasjen din, vil det være en veldig lang, veldig vanskelig prosess.

Men hva om du ikke bryr deg om hvilke to hashes som kolliderer?

Dette kalles "bursdagsproblemet" i matematikk. I en klasse på 23 studenter er sannsynligheten for at noen har bursdag en bestemt dag rundt 7%, men sannsynligheten for at to personer deler samme bursdag er rundt 50%.

Den samme typen analyse kan brukes på hashfunksjoner for å finne to hashes som samsvarer (i stedet for en spesifikk hash som samsvarer med den andre).

For å unngå dette kan du bruke lengre hashfunksjoner som SHA3, der muligheten for kollisjoner er lavere.

Du kan prøve å generere dine egne hashfunksjoner for SHA3 her og MD5 her.  

Du kan prøve å tøffe hashes, men det tar veldig lang tid. Den raskeste måten å gjøre det på er å bruke forhåndsberegnede regnbuetabeller (som ligner på ordbokangrep).

Det virker veldig enkelt å bli hacket. Bør jeg være bekymret?

Det viktigste å huske på hacking er at ingen ønsker å gjøre mer arbeid enn de må gjøre. For eksempel kan tøffe hashe være ekstremt tidkrevende og vanskelig. Hvis det er en enklere måte å få passordet ditt på, er det sannsynligvis en skum skuespiller som vil prøve først.

Det betyr at det muligens er den enkleste måten å forhindre hacking på å muliggjøre grunnleggende beste praksis for cybersikkerhet. Faktisk rapporterte Microsoft nylig at bare å aktivere 2FA vil ende opp med å blokkere 99,9% av automatiserte angrep.

Ytterligere lesing:

Populære verktøy for passordknusing