2018-10-26 12:30 | Kirke Kjellberg

1/3 Password cracking med Hashcat

I forbindelse med vores blogpost om TDC routernes sårbarheder, var det nødvendigt at genskabe et password for at kunne få adgang til TDCs homebox indstillinger. Derfor besluttede vi os for at sætte en lille password cracking øvelse op, og dykke ned i, hvordan man kan genskabe et password ud fra dets hashværdi. Denne blogpostserie er en introduktion til emnet, og et resultat af vores erfaringer med password cracking i forbindelse med denne øvelse.

Password cracking er et område indenfor cybersikkerhed, der handler om at genskabe passwords ud fra deres hashværdier. Denne blogpostserie består af tre posts hvor vi vil afdække flere forskellige dele af password cracking. I denne post ser vi indledningsvist på hvad password cracking er, og hvorfor det er et interessant redskab for hackere.

I de følgende posts vil vi give vores anbefaling til et værktøj, der kan bruges, og en kort introduktion af dette. Ligeledes vil vi se på hvilke passwords, samt hashing algoritmer, som disse værktøjer har størst succes med. Efterfølgende gennemgår vi det konkrete eksempel, som var med til at starte vores password cracking eventyr, nemlig passwords fra TDC-routeren. I den sidste post runder vi af og kommer med anbefalinger og råd til, hvordan man som bruger beskytter sig selv bedst.

Hashing af passwords

Når en person opretter en bruger eller konto på en hjemmeside, vil denne konto typisk skulle sikres med et password. Hjemmesiden vil, forhåbentligt, bruge en hashing algoritme til at hashe brugernes passwords inden de uploades til password databasen, således at de ikke ligger i klartekst. En hashing algoritme tager en sekvens af klartekst og omformer den til en streng af en bestemt længde, bestående af bogstaver, symboler og tal, kaldet hashværdien. Eksempelvis vil hashing algoritmen bcrypt hashe passwordet 123456 til hashværdien:

$2b$10$UB7c24jREppIeoA2BlHPX./K/jAVpU9mcGDDjS5X5iXZ2xwo/vg3.

Samme password vil med MD5 algoritmen hashes til hashværdien:

e10adc3949ba59abbe56e057f20f883e

Mange hjemmesider benytter også et såkaldt "salt" til at gøre brugerenes passwords mere tidskrævende at genskabe. Et salt er en tilfældigt genereret streng, som sættes sammen med passwordet inden det hashes, hvorefter saltet gemmes sammen med hashværdien. Ved at bruge et salt undgås det, at to brugere med samme originale password, også har samme hashværdi. Derfor gør det cracking processen langsommere da cracking værktøjerne skal genskabe det samme password flere gange. Brug af salt metoden gør også, at hackere ikke længere bare kan bruge såkaldte rainbow tables til at slå hashværdier op, da disse er lavet uden salts.

I teorien skal alle klartekst sekvenser give en forskellig hashværdi. I praksis er det dog ikke muligt, at alle klartekst sekvenser kan hashes til en forskellig hashværdi med fast længde. Det betyder, at der kan forekomme hash kollisioner, hvor to forskellige klartekst sekvenser har samme hashværdi. Dette medfører, at en hacker ville kunne bruge et andet password, end det brugeren oprindeligt havde lavet, til at logge ind på det ønskede system. At finde en hash kollision er dog som hovedregel meget mere tidskrævende end at bruge et værktøj som Hashcat til at gætte sig frem til det rigtige password.

Ydermere gælder det, at en hashværdi ikke skal kunne bruges til at genskabe sit input af klartekst. Det vil sige, at når en bruger indtaster sit password for at logge på en given hjemmeside, vil hjemmesiden hashe det indtastede password og herefter tjekke om hashværdien for det indtastede password passer med den hashværdi der er gemt i password databasen.

Svage passwords og hurtige hashing algoritmer

Almindelige brugerskabte passwords er uden sammenligning den metode, de fleste applikationer og hjemmesider benytter til at beskytte deres brugere og data. Derfor er det interessant for hackere at kunne genskabe disse. Der findes utallige eksempler på hjemmesider, som har været udsat for hackere, der har stjålet sidernes password databaser og lækket dem på internettet. Nogle få eksempler er LinkedIn, DropBox og Adobe.

Lækkede databaser med e-mailadresser og tilhørende hashværdier fra kompromitteringer kan findes på mange forskellige hjemmesider, eksempelvis raidforums.com, hashes.org og exploit.in. Når først hackeren er i besiddelse af en database med hashede passwords, kan han eller hun benytte et værktøj, som eksempelvis Hashcat, til at forsøge at genskabe passwordene i klartekst. På denne måde er det muligt, at få adgang til brugerkonti på de hjemmesider, hvor de enkelte e-mail og password kombinationer er brugt.

På trods af, at det er hashværdierne, der er blevet stjålet, kan det stadig lykkes at genskabe mange af brugernes passwords til klartekst. Det skyldes, at brugerne ofte benytter passwords, som er både populære og følger et ”normalt” password mønster. De passwords er typisk dem, som hackere vil starte med at kigge efter, og det er desværre også her, at de kan genskabe en stor del. Ligeledes er det langt fra alle hjemmesider, der benytter stærke hashing algoritmer. En stærk hashing algoritme skal som tommelfingerregel være langsom om at hashe en given streng. Det betyder nemlig, at programmer som Hashcat også vil være langsomme om at hashe og derved genskabe passwords hastet med den algoritme. Eksempler på stærke hashing algoritmer er bcrypt og scrypt, hvorimod MD5 og SHA-1 er mindre stærke.

Der findes som nævnt forskellige hashing algoritmer. Nogle er bedre og mere sikre end andre, og derfor også sværere, eller i nogle tilfælde umulige, for cracking værktøjerne at genskabe passwords fra - hvis altså selve passwordet også har en rimelig sværhedsgrad. Succesraten for en hacker afhænger nemlig både af hvor stærke passwordsne er og hvor stærk en hashing algoritme, der brugt til at hashe dem med. Da man som bruger ikke nødvendigvis kan vide sig sikker på hvilken hashing algoritme en hjemmeside benytter, anbefaler vi at man går efter at skabe et password, som vil være svært at genskabe, selv hvis det er hashet med en af de svagere algoritmer.

I de følgende posts ser vi nærmere på, hvordan Hashcat kan bruges til at genskabe et password, hvilke hashing algoritmer der beskytter vores passwords bedst, og hvilke forhåndsregler man bør tage når man skal lave et stærkt password.

Kilder

(1) BBC.co.uk - LinkedIn passwords leaked by hackers

(2) Washingtonpost.com - Hacked Dropbox login data of 68 million users is now for sale on the dark Web

(3) Theverge.com - Over 150 million breached records from Adobe hack surface online.