tom@home.htb:~$

Blog o HTB

29 October 2020

Delegovaná práva v AD: DCSync, gMSA, relay, deleted objects

Úvod a kontext

V Active Directory se často hledá jednoduchá hranice: buď je někdo Domain Admin, nebo není. V praxi je to výrazně složitější. Doménová kompromitace často nevzniká z přímého členství v privilegované skupině, ale z méně nápadných práv, která se v prostředí nahromadila kvůli provozu: delegované ACL, možnost relaynout autentizaci do LDAP, právo číst heslo gMSA, přístup k deleted objects nebo synchronizační účet, který drží dešifrovatelné tajemství.

Forest, Intelligence, Cascade, APT a Monteverde ukazují různé varianty stejného problému. Útočník nemusí dostat “admin účet” klasickou cestou. Stačí mu identita nebo servisní kontext, který umí:

Co znamená delegované právo v AD

Delegované právo je prakticky každá schopnost, která není vidět jako přímé členství v silné skupině, ale přesto mění bezpečnostní stav domény. Může jít například o:

To je důležité i metodicky. Když při review sleduješ jen skupiny typu Domain Admins, Enterprise Admins nebo Administrators, velká část reálných cest k převzetí domény zůstane úplně mimo záběr.

Čtyři různé typy moci, které vypadají nenápadně

1. Schopnost získat nebo prosadit DCSync

DCSync je schopnost chovat se vůči řadiči domény jako replikační partner a vyžádat si tajemství účtů. Útočník ji nemusí mít od začátku. Někdy mu stačí jiná delegace, která mu dovolí tato oprávnění získat nebo si je vynutit přes relay.

2. Schopnost číst servisní tajemství

gMSA nebo synchronizační účet nemusí být interaktivní uživatel, ale může být bezpečnostně cennější než běžný admin. Jakmile lze přečíst jeho tajemství, často z něj vznikne další hop k silnější identitě.

3. Schopnost sahat na historické nebo skryté directory artefakty

Deleted objects, staré atributy a pomocná metadata nejsou jen forenzní vrstva. Pokud v nich zůstane heslo nebo jiná citlivá hodnota, je to stále platný vstup do prostředí.

4. Schopnost zneužít důvěru v jinou “technickou” identitu

Machine account, synchronizační služba nebo servisní komponenta často nevypadají jako lidský administrátor. Přesto mohou držet právě ta práva nebo tajemství, která nakonec doménovou kompromitaci rozhodnou.

Forest: delegovaná Exchange práva, relay a DCSync

Forest je čistá ukázka toho, že mezi obyčejným servisním účtem a plným převzetím domény může stát jen několik delegovaných kroků. Po AS-REP roastu vznikne foothold v podobě svc-alfresco, ale ten sám o sobě ještě není doménový admin. Zásadní je až to, co BloodHound ukáže o jeho vztahu ke skupině Exchange Windows Permissions.

Právě tady se hodí přestat myslet v kategoriích “admin / neadmin”. Účet nemá plnou kontrolu nad doménou, ale má dost silnou pozici na to, aby šlo přes PrivExchange vynutit autentizaci a relaynout ji proti LDAP:

ntlmrelayx.py -t ldap://10.10.10.161 --escalate-user svc-alfresco
http://localhost/privexchange

Výsledkem není okamžitě shell. Výsledkem je změna oprávnění v adresáři, která účtu otevře DCSync. Teprve potom přichází:

secretsdump.py htb.local/svc-alfresco:s3rvice@forest.htb.local

Forest je proto důležitý hlavně jako model: delegované provozní oprávnění k Exchange nemusí vypadat dramaticky, ale v kombinaci s relay cestou se z něj stane přímá replikační schopnost.

Intelligence: gMSA jako most k cizí identitě

Intelligence stojí na jiném typu delegace. Účet Tiffany.Molina sám o sobě nepřináší interaktivní shell ani privilegovanou roli, ale dovolí přečíst downdetector.ps1, tedy automatizační skript, který používá Invoke-WebRequest -UseDefaultCredentials. Přes DNS záznam a odchyt autentizace vznikne další účet: Ted.Graves.

Teprve ten otevře nejcennější otázku: kdo smí číst heslo gMSA svc_int$?

gMSADumper.py -u Ted.Graves -p Mr.Teddy -d intelligence.htb -l dc.intelligence.htb
Users or groups who can read password for svc_int$:
 > DC$
 > itsupport

Tady je zásadní pochopit, že gMSA není “jen servisní účet”. Pokud jeho heslo smí číst nevhodná skupina nebo účet, získává útočník silnou služební identitu, která může:

Na Intelligence to vede k tomuto kroku:

impacket-getST intelligence.htb/svc_int$ -spn WWW/dc.intelligence.htb -hashes :c699eaac79b69357d9dabee3379547e6 -impersonate Administrator

Tím se jasně ukazuje rozdíl mezi “mám servisní účet” a “mám nevýznamný účet”. Servisní identita často stojí blíž centru důvěry než běžný uživatel.

Cascade: deleted objects a historická hesla nejsou nevinný archiv

Cascade ukazuje třetí rodinu problémů. Řetězec nezačíná BloodHoundem ani relayem, ale čtením atributu cascadeLegacyPwd, z něhož se získá heslo r.thompson. Následně přibývají další stopy ve sdílených souborech a auditních nástrojích, až se účet ArkSvc dostane k deleted objects.

Právě tam se objeví historický TempAdmin:

Get-ADObject -filter 'isdeleted -eq $true -and name -ne "Deleted Objects"' -includeDeletedObjects -property *

spolu s dalším cascadeLegacyPwd, které po dekódování vydá heslo administrátora.

Cascade je důležitá připomínka, že AD není jen aktuální stav objektů. Pokud v deleted objects, poznámkách nebo historických atributech přežívá skutečné tajemství, je to pořád aktivní bezpečnostní problém. Účet může být smazaný, ale jeho heslo nebo pomocný atribut mohou dál otevřít cestu k jiné identitě.

APT: hodnotná nemusí být jen lidská identita

APT přidává důležitý kontrast. Hlavní řetězec začíná únikem backup.zip, z nějž se offline vytěží doménová tajemství a otevře se účet henry.vinson_adm. Pro doménovou kompromitaci je ale důležité něco jiného: vynucená autentizace účtu stroje APT$.

[SMB] NTLMv1 Username : HTB\APT$

Po cracknutí odpovědi a následném dumpu doménových tajemství je zřejmé, že strojová identita může být pro útok stejně cenná jako uživatelská. Obranně je to zásadní, protože machine accounty bývají podceňované:

APT tak dobře doplňuje zbytek článku: nepřímá cesta k doménovým tajemstvím nemusí vést přes helpdesk admina nebo servisního uživatele. Může vést i přes stroj.

Monteverde: hraniční, ale důležitý případ synchronizační služby

Monteverde není čistý příklad ACL delegace, relaye ani deleted objects. Přesto do stejné rodiny patří. Účet mhope otevře host s Azure AD Connect a ten v sobě drží dešifrovatelné synchronizační tajemství. Z databáze ADSync a přítomné mcrypt.dll pak lze dostat doménové přihlašovací údaje pro administrator.

Tenhle případ je důležitý hlavně jako varování před příliš úzkou definicí delegovaných práv. Někdy nejde o ACL v AD objektu. Jde o to, že vedle domény žije synchronizační komponenta, která v sobě drží plnohodnotné identity tajemství:

Monteverde proto funguje jako rozšíření hlavního modelu: privilegovaný přístup v identitním ekosystému nemusí být vidět jako skupina nebo právo v BloodHoundu. Může být ukrytý v pomocné službě, která synchronizuje identity jinam.

Jak podobné cesty hledat systematicky

Při analýze AD prostředí je užitečné jít po typech schopností, ne po jménech skupin.

Kdo může měnit nebo získat replikační oprávnění

Kdo může číst heslo jiného účtu

Kde přežívají historická tajemství

Které technické identity mají větší dopad, než se zdá

Obrana a hardening

1. Auditovat ACL a delegace, ne jen skupiny

Členství v Domain Admins je jen jedna z mnoha cest. Je potřeba pravidelně reviewovat i delegovaná oprávnění, která mohou přes relay, Exchange nebo jiné workflow vést ke změně adresářových práv.

2. gMSA a servisní tajemství brát jako kritický majetek

Otázka “kdo může číst heslo gMSA” je stejně důležitá jako “kdo je lokální admin na serveru”. Jakmile je odpověď příliš široká, vzniká silný laterální most.

3. Čistit historická a pomocná tajemství

Deleted objects, legacyPwd, auditní DB a staré konfigurace nesmějí obsahovat reálně použitelné heslo. Historie v AD nebo ve sdíleném souboru je pořád součást útokové plochy.

4. Nepodceňovat technické identity

Machine account nebo sync služba nejsou “jen systémové účty”. Pokud drží přístup k replikaci, synchronizaci nebo autentizaci jménem jiných účtů, mají prakticky stejnou váhu jako lidský administrátor.

5. Sledovat pomocné identity systémy kolem AD

Azure AD Connect, Exchange a další přilehlé komponenty je potřeba reviewovat jako součást identity hranice. Ne jako vedlejší infrastrukturu.

Shrnutí klíčových poznatků

Co si odnést do praxe

tags: active-directory - windows - dcsync - gmsa - relay - acl