Pronikání do tajů hashování hesel s Hashcatem
Při etickém hackování a testování průniku je klíčové odhalení hesel pro získání přístupu k systémům a serverům. Většinou se hesla v systémech a databázích neukládají jako prostý text.
Z bezpečnostních důvodů se hesla před uložením do databáze šifrují pomocí hashovací funkce. Během ověřovacího procesu se pak porovnávají hashe. Různé šifrovací metody vedou k různým způsobům ukládání hashů hesel v systémech. S hashem v ruce lze teoreticky prolomit jakékoli heslo.
V tomto článku se podíváme, jak lze prolomit hash hesel pomocí mocného nástroje příkazového řádku, kterým je Hashcat.
Začněme tedy!
Než se ale do toho pustíme, podívejme se na:
Co je hashovací funkce?
Hashování je proces transformace běžného vstupního textu na textový řetězec pevné délky, a to prostřednictvím matematické funkce zvané hashovací funkce. Pomocí algoritmu lze jakýkoli text, bez ohledu na jeho délku, převést na náhodnou kombinaci čísel a písmen.
- Vstupem je zpráva, která má být hashována.
- Hashovací funkce je šifrovací algoritmus, jako je MD5 nebo SHA-256, který transformuje vstup na hash.
- Výsledkem je hash hodnota.
Co je Hashcat?
Hashcat je považován za jeden z nejrychlejších nástrojů pro obnovu hesel. Je navržen tak, aby v krátkém čase zvládl i velmi složitá hesla. Navíc, tento nástroj podporuje útoky hrubou silou i útoky s využitím seznamů slov.
Hashcat existuje ve dvou verzích – pro CPU (centrální procesor) a pro GPU (grafický procesor). Verze pro GPU dokáže hashe prolomit mnohem rychleji než verze pro CPU. Požadavky na ovladače GPU naleznete na oficiálních stránkách nástroje.
Funkce
- Je zdarma a s otevřeným zdrojovým kódem.
- Podporuje více než 200 hashovacích algoritmů.
- Funguje na různých operačních systémech, včetně Linuxu, Windows a macOS.
- Je k dispozici jak pro CPU, tak pro GPU.
- Umožňuje prolomení více hashů najednou.
- Podporuje hex-salt a hex-charset, a také automatické ladění výkonu.
- Má zabudovaný srovnávací systém.
- Podporuje distribuované sítě pro prolomení hesel.
Další funkce si můžete prohlédnout na oficiálních webových stránkách.
Instalace Hashcatu
Nejprve se ujistěte, že máte aktualizovaný systém Linux s nejnovějšími programy a nástroji.
Otevřete terminál a zadejte:
$ sudo apt update && sudo apt upgrade
Hashcat je obvykle předinstalovaný v Kali Linuxu. Najdete jej v sekci pro prolomení hesel. Pokud jej však potřebujete instalovat ručně v jiné distribuci Linuxu, použijte následující příkaz:
$ sudo apt-get install hashcat
Jak Hashcat používat
Pro začátek s Hashcatem budeme potřebovat hashe hesel. Pokud nemáte hash, který byste chtěli prolomit, vytvoříme si je.
Pro vytvoření hashe pomocí příkazového řádku použijte níže uvedený formát:
echo -n "vstup" | algoritmus | tr -d "-">>nazev_vystupniho_souboru
Níže můžete vidět příklad, kde jsem použil algoritmus md5 pro transformaci několika slov na hashe:
┌──(root💀kali)-[/home/writer/Desktop] └─# echo -n "etechblog.cz" | 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
Výstup je uložen v souboru crackhash.txt.
Nyní se podíváme na hashe uložené v tomto souboru:
┌──(root💀kali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13
Jak vidíte, máme hashe připravené k rozlousknutí. Takto se generují hashe pomocí vámi vybraného algoritmu.
Dalším krokem je spuštění Hashcatu ve vašem Linuxu. Pro použití Hashcatu zadejte následující příkaz:
$ hashcat --help
Tímto se vám zobrazí všechny možnosti, které budete potřebovat k ovládání nástroje. V terminálu najdete všechny režimy útoku i hash.
Obecný formát příkazu je následující:
$ hashcat -a číslo -m číslo soubor_hashů seznam_slov
Kde „číslo“ představuje konkrétní útok a hashovací režim. Při rolování terminálu můžete najít přesné číselné hodnoty pro každý typ útoku a hashovacího algoritmu, například pro md4 je to číslo 0 a pro sha256 je to 1740.
Jako seznam slov použiji „rockyou“. Tento seznam se nachází v cestě /usr/share/wordlists.
Cestu k seznamu slov můžete najít také pomocí příkazu locate:
┌──(root💀kali)-[/home/writer] └─# locate rockyou.txt
Nakonec, pro prolomení hashů pomocí seznamu slov použijte tento příkaz:
$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
Po spuštění tohoto příkazu se může objevit chyba (chyba výjimky délky tokenu), kterou lze snadno vyřešit.
Řešením je uložit každý hash do samostatného souboru. Tato chyba se objevuje, pokud máte pomalé CPU nebo GPU. Pokud máte rychlý procesor, můžete snadno prolomit všechny hashe najednou z jednoho souboru.
Po opravě chyby by měl být výsledek podobný následujícímu:
┌──(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
Jak můžete vidět, pod detaily slovníkové cache, hash byl úspěšně prolomen a heslo odhaleno.
Závěr
Doufám, že vám tento článek pomohl lépe pochopit, jak používat Hashcat k prolomení hesel.
Může vás také zajímat, jaké další nástroje pro hrubou sílu existují pro penetrační testování, a které jsou ty nejlepší nástroje pro pentesting.