10.4 Útoky na Kerberos (AS-REP a Kerberoasting)

Tyto dva typické a velmi oblíbené typy útoků zneužívají podstatu fungování autentizace Kerberos. Spoléhají se na vyžádání platných lístků, resp. zpráv a jejich částí od řadiče domény a na jejich následné louskání hrubou silou nebo pomocí slovníku mimo doménu (offline), čímž zjišťují nešifrovaná uživatelská hesla.

1. AS-REP Roasting

Při standardním TGT požadavku (AS_REQ) v Kerberosu je aplikována takzvaná Pre-Authentication (Předověření). Ta zaručuje, že žádost je opravdu provedena ze strany uživatele, který zná své heslo (tím, že je připojeno časové razítko zašifrované hashem). Někdy jsou ovšem v doméně z legacy (zpětná kompatibilita) důvodů účty nastaveny tak, že mají toto Předověření vypnuto (Do not require Kerberos preauthentication).

Průběh útoku
  • Útočník identifikuje uživatelské účty, které mají zakázanou předautentizaci.
  • Pošle doménovému řadiči AS_REQ pro tyto účty. Žádné heslo znát nepotřebuje.
  • Řadič mu automaticky vrátí odpověď AS_REP s obsaženým TGT.
  • Součástí zprávy AS_REP je část, která je zašifrována klíčem (hashem) tohoto cílového uživatele.
  • Útočník si takto vrácenou kryptogramovou zprávu uloží a následně se ji snaží prolomit v režimu offline (crackování), aby získal samotné heslo uživatele.
Výhody a nevýhody
Výhody pro útočníka: Není vůbec nutné být na síti jakkoli autentizován (útok nevyžaduje znát platné credencials jakéhokoliv účtu), dá se provést naslepo nebo z vnějšku v momentě přístupu do doménové sítě. Lze také odchytit autentizační požadavky ze sítě metodou Man-in-the-Middle (MitM).

Nevýhody pro útočníka: Musí nejprve odhadnout či znát správná uživatelská jména. V závislosti na nastavení LDAP serveru (jestli dovolí anonymní binds a anonymní dotazování skupinou ANONYMOUS LOGON) může nebo nemusí být schopen přečíst si seznam existujících jmen bez autentizace.

2. Kerberoasting

Zatímco AS-REP se zaměřuje na prvotní tiket (TGT) a k útočení využívá účty se zakázaným předověřením, Kerberoasting funguje na principu krádeže servisních lístků u existujících servisních účtů.

Průběh útoku
  • Útočník musí mít (na rozdíl od AS-REP roasting) kontrolu nad nějakým přihlášeným/autentizovaným uživatelem v doméně (byť málo privilegovaným), přes nějž má k dispozici platný TGT.
  • S využitím protokolu LDAP útočník vyjmenuje doménové uživatele, kteří mají definován atribut ServicePrincipalName (SPN). Často jde o účty na kterých běží aplikace nebo služby (tzv. service accounts). Nevyhledávají se běžné počítačové účty (s `$` na konci), neboť ty mají systémem složitě generovaná hesla, která se velmi těžko dešifrují.
  • Na identifikované služby podá útočník u doménového řadiče TGS_REQ, přičemž vyžaduje servisní lístky.
  • Řadič požadavek schválí a útočník získá TGS_REP a servisní lístek, který obsahuje část zašifrovanou heslem samotného servisního účtu, nikoliv útočníka!
  • Útočník opět tuto zašifrovanou část stáhne k sobě a provede offline cracking hrubou silou či slovníkem. Tím získá plaintextové heslo oběti. Servisní účty mají často historicky nastavená slabá nebo nezměnitelná hesla.