Knekke passordhasher med Hashcat: Enkle steg-for-steg guide

Ved etisk hacking og penetrasjonstesting er det avgjørende å knekke passord for å oppnå tilgang til et system eller en server.

I systemer og databaser er det sjelden at passord lagres i klartekst.

Passord blir alltid kryptert (hashet) før de lagres i databasen. Under verifiseringsprosessen sammenlignes den hashede versjonen.

Ulike systemer lagrer passordhasher på forskjellige måter, avhengig av hvilken krypteringsmetode som brukes. Hvis du har tilgang til hash-verdier, kan du i teorien knekke ethvert passord.

I denne artikkelen skal vi undersøke hvordan man kan knekke passordhasher ved hjelp av det nyttige kommandolinjeverktøyet Hashcat.

La oss begynne.

Men først…

Hva er en hashfunksjon?

Hashing er en prosess der vanlig tekst konverteres til en tekststreng med fast lengde, ved hjelp av en matematisk funksjon kalt en hashfunksjon. Enhver tekst, uansett lengde, kan gjøres om til en tilfeldig kombinasjon av tall og bokstaver ved hjelp av en algoritme.

  • Inndata refererer til meldingen som skal hashes.
  • Hashfunksjonen er selve krypteringsalgoritmen, som for eksempel MD5 eller SHA-256, som konverterer strengen til en hashverdi.
  • Hashverdien er selve resultatet av hashfunksjonen.

Hva er Hashcat?

Hashcat er et av de raskeste verktøyene for passordgjenoppretting. Det er designet for å bryte komplekse passord på kort tid, og kan utføre både ordlisteangrep og brute-force-angrep.

Hashcat finnes i to varianter: CPU-basert og GPU-basert (Graphical Processing Unit). Den GPU-baserte versjonen kan knekke hasher betydelig raskere enn CPU-versjonen. Du kan finne informasjon om GPU-driverkrav på den offisielle nettsiden.

Funksjoner

  • Gratis og åpen kildekode
  • Støtter over 200 forskjellige hash-typer
  • Kompatibel med flere operativsystemer, som Linux, Windows og macOS
  • Støtter både CPU og GPU
  • Kan knekke flere hasher samtidig
  • Støtter hex-salt og hex-charset-filer, med automatisk ytelsesjustering
  • Innebygd benchmarking-system
  • Kan støtte distribuerte crack-nettverk ved hjelp av overlegg

Du kan finne enda flere funksjoner på deres nettside.

Installasjon av Hashcat

Først må du sikre at Linux-systemet ditt er oppdatert med de nyeste programmene og verktøyene.

Dette gjøres ved å åpne en terminal og skrive inn følgende:

$ sudo apt update && sudo apt upgrade

Hashcat er vanligvis forhåndsinstallert i Kali Linux. Du finner verktøyet i seksjonen for passordknekking. Men dersom du trenger å installere det manuelt på en hvilken som helst Linux-distribusjon, bruker du denne kommandoen i terminalen:

$ sudo apt-get install hashcat

Bruk av verktøyet

For å begynne å bruke Hashcat, trenger vi noen passordhasher. Hvis du ikke har noen tilgjengelige, kan vi opprette noen først.

Du kan lage hashene ved hjelp av kommandolinjen, ved å bruke følgende format:

echo -n "input" | algorithm | tr -d "-">>outputfiename

For eksempel kan du se nedenfor hvordan jeg har konvertert noen ord til hasher ved hjelp av MD5-algoritmen.

┌──(root💀kali)-[/home/writer/Desktop]
└─# echo -n "tipsbilk.net" | md5sum | tr -d "-">>crackhash.txt
echo -n "password123" | md5sum | tr -d "-">>crackhash.txt
echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt
echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt
echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt

Resultatene vil lagres i filen crackhash.txt.

Nå skal vi se på hashene som ble lagret i filen:

┌──(root💀kali)-[/home/writer/Desktop]
└─# cat crackhash.txt

066d45208667198296e0688629e28b14
482c811da5d5b4bcd497ffeaa98491e3
72a2bc267579aae943326d17e14a8048
2192d208d304b75bcd00b29bc8de5024
caae8dd682acb088ed63e2d492fe1e13

Som du ser har vi nå noen hasher klare for knekking. Dette er metoden for å generere hasher ved hjelp av den algoritmen du ønsker.

Neste trinn er å starte Hashcat-verktøyet på Linux-maskinen din. Bare bruk denne kommandoen for å starte Hashcat:

$ hashcat --help

Dette vil vise alle alternativene du trenger å vite for å bruke verktøyet. Du vil finne alle angreps- og hash-modusene i terminalen.

Den generelle formen for kommandoen er:

$ hashcat -a num -m num hashfile wordlistfile

Her representerer «num» et spesifikt angrep og hash-modus som skal brukes. I terminalen kan du finne de eksakte tallene for hver angrepsmetode og hash-modus. For eksempel er tallet 0 for md4, mens tallet 1740 representerer SHA256-algoritmen.

Ordlisten jeg skal bruke, er rockyou-ordlisten. Den kan du finne i mappen /usr/share/wordlists.

Du kan også bruke locate-kommandoen for å finne stien til ordlisten.

┌──(root💀kali)-[/home/writer]
└─# locate rockyou.txt

Til slutt bruker du denne kommandoen for å knekke hashen ved hjelp av ordlistefilen:

$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt

Etter å ha kjørt denne kommandoen, kan du få en kjøretidsfeil (Token length exception error) som er enkel å fikse.

For å løse dette må du lagre hver hash separat i en egen fil. Feilen oppstår hvis du har lav CPU- eller GPU-hastighet. Hvis datamaskinen din har en rask prosessor, kan du knekke alle hashene samtidig i en enkelt fil.

Etter å ha fikset feilen og gjort alt riktig, ser resultatet slik ut:

┌──(root💀kali)-[/home/writer/Desktop]
└─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt
hashcat (v6.1.1) starting...

OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
=============================================================================================================================
* Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Dictionary cache built:
* Filename..: rockyou.txt
* Passwords.: 14344405
* Bytes.....: 139921671
* Keyspace..: 14344398
* Runtime...: 1 sec

8276b0e763d7c9044d255e025fe0c212: [email protected]
                                                 
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 8276b0e763d7c9044d255e025fe0c212
Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs)
Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs)
Guess.Base.......: File (rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4096/14344398 (0.03%)
Rejected.........: 0/4096 (0.00%)
Restore.Point....: 0/14344398 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: 123456 -> pampam

Started: Sun Dec 12 08:06:13 2021
Stopped: Sun Dec 12 08:06:16 2021

Som du ser i resultatet ovenfor, etter detaljene om ordliste-cachen, kan du se at hashen ble knekt og passordet ble avslørt.

Konklusjon

Jeg håper du har fått en bedre forståelse av hvordan man bruker Hashcat for å knekke passord.

Du kan også være interessert i å vite mer om de forskjellige brute-force-verktøyene for penetrasjonstesting, samt noen av de beste verktøyene for penetrasjonstesting generelt.