Kerberos – Authentication
https://www.root-me.org/en/Challenges/Network/Kerberos-Authentication
Máme k dispozícii zachytenú sieťovú prevádzku (.pcapng súbor) z doménového prostredia spoločnosti Cat Corporation. Našim cieľom je získať citlivé údaje, konkrétne heslo niektorého z používateľov prostrednictvom analýzy autentifikačného protokolu Kerberos.
Krok 1: Inicializácia a prieskum prostredia
Po otvorení PCAP súboru v analytickom nástroji (Wireshark alebo tshark) najskôr zistím, aké protokoly sa v sieti nachádzajú. Keďže cieľom je Kerberos, primárne nás zaujíma port 88 alebo priamo filtrovanie samotného protokolu.
- Použil som základný filter
kerberos, prípadne sledovanie správ prebiehajúcich medzi klientmi a radičom domény (DC). - V dátach sa nachádza štandardná doménová komunikacia, vrátane výmeny lístkov (TGS), ale aj požiadaviek na počiatočnú autentifikáciu (AS).

Krok 2: Identifikácia vektora útokov (AS-REP Roasting / Pre-Auth)
V Kerberose existujú dva hlavné typy tiketov zaujímavé pre offline lomenie: Service Tikety (Kerberoasting) a Autentifikačné požiadavky (AS-REQ/AS-REP). Service tikety sú však šifrované pomocou hesla samotného počítačového účtu (service accountu), ktoré má desiatky náhodných znakov a nedá sa prelomiť. Preto musíme cielene hľadať proces AS-REQ.
Pre lepšie pochopenie:
https://tryhackme.com/room/attackingkerberos
https://tryhackme.com/room/krbticketattacks
https://www.hackthebox.com/blog/what-is-kerberos-authentication
- Zadal som filter na zobrazenie správ
kerberos.msg_type == 10(čo zodpovedáAS-REQ). - V komunikácii som našiel paket, kde klient posiela požiadavku na vydanie Ticket Granting Ticket (TGT). Všimol som si nasledujúce atribúty:
- CNameString:
william.dupond(identifikácia používateľa) - Realm:
CATCORP.LOCAL(názov domény) - Typ šifrovania (etype):
eTYPE-AES256-CTS-HMAC-SHA1-96 (18)
- CNameString:

Krok 3: Extrakcia šifrovacieho materiálu (PA-ENC-TIMESTAMP)
Aby sme mohli heslo prelomiť offline (bez toho, aby sme sa dopytovali reálneho radiča domény), potrebujeme získať tzv. PA-ENC-TIMESTAMP. Ide o časovú pečiatku zašifrovanú privátnym kľúčom odvodeným z hesla používateľa.
- V detaile požiadavky
AS-REQsom rozklikol štruktúrupadata->PA-ENC-TIMESTAMP->cipher. - Extrahoval som surový hexadecimálny reťazec šifry:
fc8bbe22b2c967b222ed73dd7616ea71b2ae0c1b0c3688bfff7fecffdebd4054471350cb6e36d3b55ba3420be6c0210b2d978d3f51d1eb4f
Krok 4: Konštrukcia hashu pre Hashcat
Nástroje na lomenie hesiel (ako Hashcat) nevedia čítať surovú šifru priamo z Wiresharku, ale vyžadujú špecifický formát pre daný typ šifrovania.
- Pre mód
19900(Kerberos 5 PA-ENC-TIMESTAMP s etype 18) predpisuje Hashcat presnú štruktúru oddelenú znakom doláru ($). - Spojil som identifikátor módu, typ šifry, meno používateľa, doménu a samotnú extrahovanú šifru do finálnej podoby:
$krb5pa$18$william.dupond$CATCORP.LOCAL$fc8bbe22b2c967b222ed73dd7616ea71b2ae0c1b0c3688bfff7fecffdebd4054471350cb6e36d3b55ba3420be6c0210b2d978d3f51d1eb4f
Krok 5: Offline lomenie hesla a finalizácia
- Pripravený hash som vložil do textového súboru a spustili slovníkový útok (
hashcat -m 19900 -a 0 hash.txt rockyou.txt). - Hashcat úspešne porovnal hashe slovníkových slov s naším zachyteným materiálom a našiel čisté textové heslo
- Podľa zadania som meno používateľa dal na malé písmená, priradil heslo a vytvoril finálny reťazec
RM{william.dupond@catcorp.local:*******}.
