tom@home.htb:~$

Blog o HTB

12 November 2020

Hashcat

Úvod a kontext

Hashcat je v tomto projektu téměř vždy nástrojem druhé fáze. Samotný hash nebo challenge/response někde vznikne jiným krokem: z Kerberosu, z NTLM odchytu, z databáze nebo z jiné konfigurace. Hashcat pak rozhoduje, jestli se z tohoto materiálu stane skutečně použitelné heslo a další přístup.

Na Sauně a Forestu převádí AS-REP roast do hesla pro WinRM. Na Driveru láme NTLMv2 zachycený přes Responder. Na Delivery, Jarvis nebo Shibboleth zase pracuje s jinými formáty hashů, ale pořád plní stejnou praktickou roli: z mezikroku udělá další pohyb v řetězci.

Co Hashcat v praxi řeší

Hashcat je offline cracking nástroj. Prakticky odpovídá na otázku:

To je zásadní rozdíl oproti online útoku:

Právě proto se v místních rozborech objevuje po AS-REP roastu, po zachycení NTLMv2 nebo po získání hashů z jiných zdrojů.

Nejčastější scénáře využití v tomto projektu

AS-REP roast a Kerberos hashe

Na Forestu a Sauně je Hashcat přirozený pokračující krok po GetNPUsers.py. Jakmile doména vydá roastovatelný materiál, teprve offline cracking rozhodne, jestli z toho bude použitelný účet.

Na Sauně to vypadá takto:

hashcat -m 18200 --force -a 0 Sauna-hashes.asreproast /usr/share/wordlists/rockyou.txt

Výsledek:

Thestrokes23

Prakticky je důležité, že Hashcat tu není “další volitelný krok”. Je to přesně moment, kdy se z kerberové chyby stává reálný přístup. Širší souvislosti této rodiny jsou v článku Kerberos útoky z nulového přístupu.

NTLMv2 nebo jiný zachycený materiál z odchytu

Na Driveru vznikne NTLMv2 hash přes .scf a Responder. Hashcat pak rozhodne, jestli zachycená autentizace otevře skutečné heslo:

hashcat -a 0 -m 5600 hash /usr/share/wordlists/rockyou.txt

Tady je praktická hodnota velmi přímočará:

Databázové a aplikační hashe

Na Jarvis, Delivery, Breadcrumbs, Remote nebo Shibboleth už nejde o Kerberos ani NTLMv2, ale o jiné hash formáty. Přesto je metodika stejná:

Právě to dělá Hashcat praktickým napříč různými řetězci. Nástroj se nemění, mění se jen typ vstupního materiálu.

Co v Hashcatu rozhoduje víc než samotný příkaz

Správný typ materiálu

Nejdřív je potřeba vědět, co vlastně lámete:

Praktická chyba není “špatný wordlist”. Častěji je to špatně zvolený mód nebo špatně pochopený vstup.

Hodnota hesla po cracknutí

V projektu má Hashcat smysl hlavně tam, kde cracknuté heslo otevírá:

Na Sauně a Forestu crack otevře doménový účet. Na Driveru WinRM. Na Jarvis další systémový krok. Praktický dopad tedy neleží v “mám plaintext”, ale v tom, co s ním lze dělat dál.

Kvalita wordlistu a scope

Stejně jako jinde má i tady smysl držet cracking realisticky:

Co Hashcat neumí vyřešit za vás

Hashcat:

Je to velmi silný mezikrok, ale pořád jen mezikrok. Hodnotu mu dává až předchozí enumerace a následné použití hesla.

Nejčastější chyby při použití

Mechanické lámání bez pochopení kontextu

Když hash vznikl z nepodstatného účtu nebo ze slepé stopy, cracknuté heslo nemusí mít žádnou praktickou cenu. V místních rozborech Hashcat funguje právě proto, že už předem existuje důvod věřit, že výsledek povede k:

Záměna offline crackingu za celý útok

Na Driveru samotný cracking ještě neznamená shell. Na Sauně taky ne. Je to jen převod jednoho materiálu na jiný.

Ignorování typu hashe

Prakticky nejdražší chyba bývá špatně zvolený mód nebo špatná interpretace vstupu. Offline cracking je nejúčinnější tehdy, když už přesně víte, co držíte.

Nejčastější praktické scénáře

Kerberos roast vydal crackovatelný materiál

To je Forest a Sauna.

Vynucená autentizace vydala NTLMv2

To je Driver.

Databáze nebo aplikace vydala hash a je potřeba zjistit, zda má dopad mimo aplikaci

To je Jarvis, Delivery, Remote nebo Breadcrumbs.

Související články v projektu

Co si odnést do praxe

Další Související Články V Projektu

HTB Stroje

Techniky

Nástroje

tags: nastroje - hashes - cracking - offline - passwords - kerberos