Při etickém hackování a penetračním testování je prolomení hesla zásadní pro získání přístupu k systému nebo serveru.
V systémech a databázích se hesla zřídka ukládají ve formě prostého textu.
Hesla jsou vždy před uložením do databáze hašována a během procesu ověřování je hašování porovnáváno.
V závislosti na použitém šifrování různé systémy ukládají hodnoty hash hesel různými způsoby. A pokud máte hashe, můžete snadno prolomit jakékoli heslo.
A v tomto článku prozkoumáme, jak prolomit hash hesel pomocí šikovného a vynikajícího nástroje příkazového řádku Hashcat.
Pojďme tedy začít.
Ale předtím…
Table of Contents
Co je hashovací funkce?
Hašování je proces převodu normálního vstupního textu na textový řetězec pevné velikosti pomocí nějaké matematické funkce, která je známá jako hashovací funkce. Jakýkoli text, bez ohledu na délku, lze pomocí algoritmu převést na náhodnou kombinaci celých čísel a abeced.
- Vstup odkazuje na zprávu, která bude hashována.
- Hashovací funkce je šifrovací algoritmus jako MD5 a SHA-256, který převádí řetězec na hodnotu hash.
- A nakonec je výsledkem hash hodnota.
Co je Hashcat?
Hashcat je nejrychlejší nástroj pro obnovu hesla. Byl navržen tak, aby prolomil velmi složitá hesla v krátkém čase. A tento nástroj je také schopen útoků se seznamem slov a hrubou silou.
Hashcat má dvě varianty. Na základě CPU a GPU (Graphical Processing Unit). Nástroj založený na GPU dokáže prolomit hashe za kratší dobu než CPU. Požadavky na ovladače GPU si můžete ověřit na jejich oficiálních stránkách.
Funkce
- Zdarma a open-source
- Lze implementovat více než 200 variant typu hash.
- Podporuje více operačních systémů jako Linux, Windows a macOS.
- K dispozici jsou různé platformy, jako je podpora CPU a GPU.
- Najednou lze prolomit více hashů.
- Jsou podporovány soubory Hex-salt a hex-charset spolu s automatickým laděním výkonu.
- K dispozici je vestavěný srovnávací systém.
- Distribuované crackingové sítě mohou být podporovány pomocí překryvů.
A další funkce můžete vidět také na jejich webových stránkách.
Instalace Hashcat
Nejprve se ujistěte, že váš systém Linux je aktuální s nejnovějšími programy a nástroji.
Za tímto účelem otevřete terminál a zadejte:
$ sudo apt update && sudo apt upgrade
Hashcat je obvykle předinstalovaný v Kali Linuxu. Nástroj najdete v sekci prolomení hesla. Pokud jej však potřebujete nainstalovat ručně v jakékoli distribuci Linuxu, zadejte do terminálu následující příkaz.
$ sudo apt-get install hashcat
Použití nástroje
Abychom mohli začít s Hashcat, budeme potřebovat nějaké hash hesla. Pokud nemáte hash k rozlousknutí, nejprve vytvoříme nějaké hash.
Chcete-li vytvořit hash pomocí příkazového řádku, postupujte podle níže uvedeného formátu.
echo -n "input" | algorithm | tr -d "-">>outputfiename
Můžete například vidět, že jsem pomocí níže uvedeného algoritmu md5 přeměnil některá slova 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
A výstup se uloží do souboru crackhash.txt.
Nyní zkontrolujeme hashe, které byly uloženy v daném souboru.
┌──(root💀kali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13
Vidíte, teď máme nějaké hashe k rozluštění. Toto je postup, jak vytvořit hash pomocí algoritmu dle vašeho výběru.
Dalším krokem je spuštění nástroje Hashcat ve vašem počítači se systémem Linux. K použití Hashcat stačí použít následující příkaz.
$ hashcat --help
Zobrazí všechny možnosti, které budete potřebovat ke spuštění nástroje. Na terminálu najdete všechny režimy útoku a hash.
Obecná forma příkazu je
$ hashcat -a num -m num hashfile wordlistfile
Zde ‚num‘ představuje konkrétní útok a režim hash, který se má použít. Pokud posouváte terminál, můžete najít přesná čísla pro každý útok a hashovací režim, jako pro md4 – číslo je 0 a pro algoritmus sha256 – číslo je 1740.
Seznam slov, který použiji, je rockyou wordlist. Tento seznam můžete snadno najít v cestě /usr/share/wordlists.
K nalezení cesty k seznamu slov můžete dokonce použít příkaz locate.
┌──(root💀kali)-[/home/writer] └─# locate rockyou.txt
A nakonec, k prolomení hashů pomocí souboru seznamu slov, použijte následující příkaz.
$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
Po spuštění tohoto příkazu se může zobrazit chyba běhu (chyba výjimky délky tokenu), kterou lze snadno vyřešit.
Chcete-li to vyřešit, uložte každý hash samostatně do jiného souboru. K této chybě dochází, pokud máte nízkou rychlost CPU nebo GPU. Pokud má váš počítač vysokorychlostní procesor, můžete snadno prolomit všechny hashe současně s jedním samotným souborem.
Takže po opravě chyby a všeho bude výsledek takový.
┌──(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
Ve výše uvedeném výsledku si po podrobnostech mezipaměti slovníku můžete všimnout, že hash byl prolomen a heslo bylo odhaleno.
Závěr
Doufám, že jste lépe porozuměli používání Hashcatu k prolomení hesel.
Také by vás mohlo zajímat informace o různých nástrojích hrubou silou pro penetrační testování a o některých nejlepších nástrojích pro pentesting.