Hur knäcker man lösenord med Hashcat Tool?

By rik

Inom området etisk hacking och penetrationstester är lösenordsknäckning en väsentlig process för att kunna erhålla tillgång till ett system eller en server.

Lösenord lagras sällan i klartext i system och databaser.

Innan lösenord sparas i en databas genomgår de alltid en hashfunktion, och det resulterande hashvärdet används sedan för jämförelse under autentiseringsprocessen.

Beroende på vilken krypteringsmetod som används lagrar olika system lösenordshashar på olika vis. Med tillgång till hashen är det i teorin möjligt att knäcka vilket lösenord som helst.

I denna artikel utforskar vi metoder för att bryta lösenordshashar med hjälp av ett kraftfullt kommandoradsverktyg, nämligen Hashcat.

Låt oss sätta igång.

Men först, en kort introduktion till…

Vad är en Hashfunktion?

Hashing är en process där en text, oavsett längd, omvandlas till en sträng med en fast storlek genom en matematisk funktion, kallad hashfunktion. Genom algoritmer kan vilken text som helst omvandlas till en slumpartad kombination av siffror och bokstäver.

  • Indata: Själva meddelandet som ska hashas.
  • Hashfunktionen: Den kryptografiska algoritmen, till exempel MD5 eller SHA-256, som omvandlar en sträng till ett hashvärde.
  • Hashvärdet: Det resulterande utfallet av hashfunktionen.

Vad är Hashcat?

Hashcat är ett av de snabbaste verktygen för lösenordsåterställning. Det är skapat för att snabbt kunna bryta komplexa lösenord. Verktyget stöder både ordlistbaserade attacker och brute-force-attacker.

Hashcat finns i två versioner: en CPU-baserad och en GPU-baserad. Den GPU-baserade varianten är i regel betydligt snabbare på att knäcka hashar än den CPU-baserade. Specifikationer gällande GPU-drivrutiner finns på verktygets officiella webbplats.

Funktioner

  • Gratis och öppen källkod.
  • Stöd för över 200 olika typer av hashfunktioner.
  • Fungerar på flera operativsystem, inklusive Linux, Windows och macOS.
  • Stödjer både CPU och GPU.
  • Möjlighet att knäcka flera hashar samtidigt.
  • Stödjer hexadecimala salt- och teckenuppsättningsfiler, med automatisk prestandajustering.
  • Inbyggt system för benchmarking.
  • Möjlighet att stödja distribuerade nätverk genom overlay.

Fler funktioner hittar du på deras webbsida.

Installation av Hashcat

Först, säkerställ att ditt Linux-system är uppdaterat med de senaste programmen och verktygen.

Öppna en terminal och kör kommandot:

$ sudo apt update && sudo apt upgrade

Hashcat brukar vara förinstallerat i Kali Linux, under avsnittet för lösenordsknäckning. Om du behöver installera det manuellt på en annan Linuxdistribution, använd följande kommando i terminalen.

$ sudo apt-get install hashcat

Användning av verktyget

För att börja använda Hashcat behöver vi några lösenordshashar. Om du inte har några hashar att knäcka skapar vi några först.

Följ nedanstående format för att skapa hashar via kommandoraden.

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

Här nedan ser du exempel där jag omvandlat några ord till hashar med hjälp av MD5-algoritmen.

┌──(root💀kali)-[/home/writer/Desktop]
└─# echo -n "adminvista.com" | 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
    

Resultatet sparas i filen ”crackhash.txt”.

Nu kontrollerar vi hasharna som sparades i filen.

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

066d45208667198296e0688629e28b14
482c811da5d5b4bcd497ffeaa98491e3
72a2bc267579aae943326d17e14a8048
2192d208d304b75bcd00b29bc8de5024
caae8dd682acb088ed63e2d492fe1e13

Som du ser har vi nu ett antal hashar att knäcka. Detta är en metod för att skapa hashar med den valda algoritmen.

Nästa steg är att starta Hashcat på din Linuxmaskin. Använd följande kommando för att få en översikt över Hashcat:

$ hashcat --help

Detta visar alla alternativ du behöver för att använda verktyget. I terminalen finner du alla attack- och hash-lägen.

Den generella kommandoformen är:

$ hashcat -a num -m num hashfil wordlistfil

Här representerar ”numret” det specifika attack- och hash-läget. Om du skrollar i terminalen hittar du de exakta numren för varje attack- och hash-läge. Exempelvis är numret för MD4 ”0” och för SHA256-algoritmen är numret ”1740”.

Ordboken jag tänker använda är ”rockyou”-ordlistan. Du hittar den i sökvägen ”/usr/share/wordlists”.

Du kan även använda ”locate”-kommandot för att hitta sökvägen till ordlistan.

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

Använd slutligen följande kommando för att knäcka hasharna med hjälp av ordlistan.

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

När du har kört kommandot kan du eventuellt få ett körtidsfel (”Token length exception error”), som kan lösas relativt enkelt.

För att lösa detta sparar du varje hash i en separat fil. Felet kan uppstå om din CPU eller GPU har en låg hastighet. Med en dator som har en höghastighetsprocessor kan du enkelt knäcka flera hashar från en enda fil.

Efter att felet åtgärdats och allt fungerar som det ska, ser resultatet ut ungefär så här:

┌──(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

I resultatet ovan, efter cache-informationen för ordlistan, ser du att hashen har knäckts och lösenordet är synligt.

Slutsats

Jag hoppas att du nu har fått en djupare förståelse för hur man använder Hashcat för att knäcka lösenord.

Du kanske också är intresserad av att lära dig mer om olika brute-force-verktyg för penetrationstester och några av de bästa penetrationsverktygen som finns.