Dit is de laatste in een serie berichten die we “QOMPLX Kennis” noemen. Deze berichten zijn bedoeld om basisinformatie en inzichten te verschaffen over de aanvalsactiviteit en -trends die kwaadaardige campagnes aansturen en die QOMPLX-onderzoekers tegenkomen in ons forensisch werk met klanten.
Om cross-forest vertrouwensrelaties in Active Directory te begrijpen, moet u eerst de logische structuur van Active Directory begrijpen zoals die door Microsoft is voorgeschreven. Active Directory volgt een duidelijke hiërarchie, van boven naar beneden. In die hiërarchie zijn: bossen, bomen, en domeinen.
- Bossen vertegenwoordigen de volledige Active Directory-instantie, en zijn logische containers die bestaan uit domeinbomen, domeinen, en organisatorische eenheden.
- Bomen zijn verzamelingen van domeinen binnen dezelfde DNS-naamruimte; deze omvatten kinddomeinen.
- Domeinen zijn logische groeperingen van netwerkobjecten, zoals computers, gebruikers, toepassingen en apparaten op het netwerk, zoals printers.
De domeinobjecten die een forest vormen, delen veel cruciale structurele elementen. Deze omvatten schema’s en configuraties en een twee-weg transitieve vertrouwensrelatie die automatisch wordt opgezet zodra objecten toetreden tot een domein in Active Directory. In deze transitieve relaties wordt vertrouwen uitgebreid tussen ouder- en kindobjecten in een domein en tussen kinddomeinen en objecten die door die domeinen worden vertrouwd. Deze vertrouwensrelaties zijn automatisch en reflexief.
Een cross-forest trust is een Windows Server-functie waarmee vertrouwen kan worden beheerd tussen de hoogste groepering-Active Directory-bossen-binnen en buiten uw organisatie.
Kernpunten
- Cross-forest trusts zijn vertrouwensrelaties tussen Active Directory-wouden, -bomen en -domeinen
- Trusts zijn transitief of niet-transitief, en een- of tweerichtings
- Standaard-trusts die automatisch binnen Active Directory worden ingesteld, zijn Tree-Root- en Parent-Child-trusts
- Andere trusts, zoals externe, realm, snelkoppeling en forest trusts, moeten worden bepaald door een bevoorrechte beheerder
Trust Relationships Across AD Forests
Trust relaties tussen domeinen in Active Directory-bossen moeten aanwezig zijn voordat gebruikers toegang kunnen krijgen tot netwerkbronnen binnen de bedrijfsperimeter, of externe bronnen buiten de netwerkperimeter. Dit vertrouwen is een bouwsteen van identiteits- en toegangsbeheer. Dit geldt met name naarmate bedrijven groeien door fusies en overnames en naarmate het personeelsbestand steeds vaker thuis of op andere externe locaties werkt. Domeinoverstijgend vertrouwen is ook belangrijk nu bedrijven meer vertrouwen op relaties met leveranciers en partners om hun bedrijf te laten groeien.
Forests fungeren in wezen als een beveiligingsgrens voor de structuur die Active Directory vormt, maar sommige experts waarschuwen dat deze aanpak zijn nadelen kan hebben.
“Een Active Directory forest kan worden ontworpen met meerdere domeinen om bepaalde beveiligingsproblemen te verminderen, maar zal ze niet daadwerkelijk verminderen als gevolg van de manier waarop domeintrusts in het forest werken,” waarschuwt Sean Metcalf, die de Active Directory Security website beheert. “Als een groep beveiligingseisen heeft voor hun eigen domein vanwege veiligheidsredenen, is het waarschijnlijk dat ze echt hun eigen forest nodig hebben,” schreef hij.
Hoewel er veel verschillende manieren zijn om Active Directory aan te vallen, kunnen bedreigingsactoren er ook voor kiezen om de vertrouwensrelaties van domeinen te misbruiken. Door informatie over vertrouwensrelaties te verzamelen tijdens verkenningsactiviteiten zodra een aanvaller voet aan de grond heeft gekregen in het netwerk, kunnen ze mogelijk paden identificeren waar zijwaartse bewegingen mogelijk zijn. Aangezien de vertrouwensrelaties tussen domeinen gebruikers authenticeren op de respectieve domeincontrollers en de respectieve vertrouwensrelaties gebruikers toegang geven tot bronnen, kunnen aanvallers ook deze routes volgen.
Aanvallers zouden een gemeenschappelijke strategie kunnen volgen waarbij eerst de vertrouwensrelaties tussen bossen, bomen en domeinen worden opgesomd, waarmee een kaart wordt gemaakt van het potentiële bereik dat een aanvaller zou kunnen hebben. Een aantal Windows-methoden en API-aanroepen kunnen worden gebruikt om de vertrouwensrelaties op te sommen, waaronder NLtest en dsquery, of open-source hulpprogramma’s van derden zoals Empire, PowerSploit of PoshC2.
Dezelfde aanpak kan worden gevolgd om gebruikers, groepen of servers op te sommen die soortgelijke vertrouwensrelaties hebben die kunnen worden misbruikt als een brug tussen domeinen. Een bedreiger kan dan genoeg informatie hebben om te beslissen op welke accounts hij zich kan richten met bekende tools en aanvallen zoals Pass the Ticket of Kerberoasting waarbij servicetickets of credential hashes uit het geheugen worden gestolen en worden gebruikt voor privilege-escalatie en laterale verplaatsing, of worden gekraakt in offline aanvallen en worden gebruikt om andere aanvallen mogelijk te maken.
Ondernemingsbeheerders van Active Directory kunnen deze aanvallen beperken door vertrouwensrelaties tussen bossen en domeinen te auditen en in kaart te brengen, waarbij het aantal waar mogelijk wordt geminimaliseerd. Een andere best practice is het segmenteren van gevoelige domeinen op het netwerk, waardoor het aanvalsoppervlak voor bedreigingsactoren kleiner wordt.
Types of Trusts in Active Directory
In de tussentijd wordt, zoals hierboven vermeld, vertrouwen in een Active Directory-bos automatisch tot stand gebracht als bidirectioneel en transitief. Dit betekent dat ouder- en kinddomeinen – tree en root – elkaar inherent vertrouwen. Dat betekent dat Active Directory objecten worden vertrouwd om toegang te krijgen tot bronnen in die domeinen. Bovendien: als nieuwe kinddomeinen worden gemaakt, erven ze vertrouwen van het ouder-domein en kunnen ze ook bronnen delen.
Niet-transitief vertrouwen is dus een vertrouwen dat ophoudt bij de domeinen waarmee het is gemaakt. In een dergelijk scenario kunnen de domeinen A en B elkaar vertrouwen, en kunnen B en C elkaar vertrouwen, maar dat vertrouwen strekt zich niet uit tussen A en C zonder dat er een aparte eenrichtings-trust tussen A en C wordt gecreëerd.
Trust kan intussen ook slechts eenrichtingsverkeer zijn. Het ene domein wordt bijvoorbeeld beschouwd als een vertrouwend domein, en het andere wordt vertrouwd, zodat vertrouwen ofwel in een uitgaande of in een inkomende richting tot stand wordt gebracht.
Een glossarium op hoog niveau van trusts binnen Active Directory ziet er als volgt uit:
- Tree-Root Trust: Dit type trust wordt aangemaakt wanneer nieuwe root domains worden toegevoegd aan een Active Directory forest. Dit zijn twee-weg transitieve trusts en alleen domeinen aan de top van elke boom maken deel uit van dit trusttype.
- Parent-Child Trust: Wanneer nieuwe kinddomeinen worden toegevoegd, wordt door Active Directory automatisch een bidirectionele transitieve trust tot stand gebracht tussen het kinddomein en zijn ouder. Parent-Child en Tree-Root trusts zijn standaard trusts die automatisch door Active Directory worden ingesteld.
- Forest Trust: Forest trusts moeten worden aangemaakt door een geprivilegieerde beheerder. Hiermee wordt een vertrouwensrelatie tussen twee AD-bossen tot stand gebracht, waardoor domeinen in elk bos elkaar kunnen vertrouwen. De beheerder kan bepalen of de trust tweerichtings- of eenrichtingsverkeer is.
- Realm Trust: Dit type wordt gebruikt om tweerichtings- of eenrichtingsvertrouwensrelaties tot stand te brengen tussen een Active Directory-bos en een niet-Windows Kerberos-omgeving, zoals UNIX, Linux of UNIX-achtige besturingssystemen.
- Externe trust: Externe trusts zijn niet-transitieve trusts die worden gemaakt tussen Active Directory-domeinen en domeinen die zich in een ander forest bevinden, of tussen een AD forest en een pre-Windows Server 2000-domein zoals Windows NT.
- Shortcut Trust: Een shortcut trust stelt handmatig een vertrouwensrelatie in tussen domeinen in grote Active Directory-bossen waarmee authenticatietijden kunnen worden verbeterd door het vertrouwenspad tussen domeinen te verkorten.
De mogelijkheid om een bosoverschrijdende vertrouwensrelatie te maken, is beperkt tot die bevoorrechte gebruikers die deel uitmaken van de beveiligingsgroep Domain Admins of Enterprise Admins en die privileges hebben voor het maken van vertrouwensrelaties. Beheerders kunnen ondertussen ook de toegang tot bronnen beperken tot bepaalde identiteiten binnen een forest, indien nodig. Microsoft biedt ook een snap-in voor AD-domeinen en trusts die het vertrouwen tussen bossen, bomen of domeinen verifieert.
Trustrelaties tussen bossen, bomen en domeinen leggen een pad vast waar gebruikers toegang kunnen krijgen tot bronnen die ze nodig hebben. Zoals beschreven, worden sommige van deze relaties automatisch tot stand gebracht door Active Directory en maken ze tweerichtings transitief vertrouwen mogelijk. Cross-forest trusts vereisen echter een zorgvuldige afweging van relaties tussen gebruikers en objecten binnen domeinen, en het vertrouwen dat moet worden gevestigd om gemakkelijk toegang te krijgen tot bronnen aan beide zijden van de relatie.
Aanvullend lezen
Hier zijn de vorige items in onze QOMPLX Knowledge-serie; kijk uit naar meer in onze QOMPLX Knowledge-serie in de komende dagen en weken:
QOMPLX Knowledge: Golden Ticket Uitleg over Aanvallen
QOMPLX Kennis: Silver Ticket Uitleg over Aanvallen
QOMPLX Kennis: Reageren op Golden Ticket-aanvallen
QOMPLX Kennis: DCSync Uitleg over DCSync-aanvallen
QOMPLX Kennis: DCShadow Uitleg over DCShadow
QOMPLX Kennis: Pass-the-Ticket Aanvallen Uitgelegd
QOMPLX Kennis: Kerberos Delegatie Aanvallen Uitgelegd
QOMPLX Kennis: Kerberos Delegatie Aanvallen Uitgelegd
Andere links:
MSMVP’s: Active Directory Trusts
TechGenix: Beheer van Active Directory Trusts in Windows Server 2016
Microsoft: Beveiligingsoverwegingen voor Trusts
Microsoft: What are Domains and Forests
TechTarget: How to Create a Cross-Forest Trust in AD
Mitre ATT&CK: Domain Trust Discovery
Harmj0y: Een gids voor het aanvallen van domeintrusts