Det här är det senaste inlägget i en serie som vi kallar ”QOMPLX-kunskap”. Dessa inlägg är avsedda att ge grundläggande information och insikter om attackaktivitet och trender som driver skadliga kampanjer och som QOMPLX-forskare stöter på i vårt forensiska arbete med kunder.
För att förstå cross-forest trust relationships i Active Directory måste du först förstå Active Directory:s logiska struktur som den föreskrivs av Microsoft. Active Directory följer en tydlig hierarki, från toppen till botten. I den hierarkin finns: skogar, träd och domäner.
- Skogar representerar hela Active Directory-instansen och är logiska behållare som består av domänträd, domäner och organisatoriska enheter.
- Träd är samlingar av domäner inom samma DNS-namnområde; dessa inkluderar underordnade domäner.
- Domäner är logiska grupperingar av nätverksobjekt, t.ex. datorer, användare, program och enheter i nätverket, t.ex. skrivare.
Domänobjekten som utgör en skog delar många viktiga strukturella element. Dessa inkluderar schema och konfigurationer och en dubbelriktad transitiv förtroenderelation som automatiskt upprättas när objekten ansluter sig till en domän i Active Directory. I dessa transitiva relationer utökas förtroendet mellan överordnade och underordnade objekt i en domän och mellan underordnade domäner och objekt som dessa domäner litar på. De här förtroenderelationerna är automatiska och reflexiva.
En förtroenderelation mellan olika skogar är en Windows Server-funktion som gör det möjligt att hantera förtroendet mellan den högsta grupperingen – Active Directory-skogar – inom och utanför din organisation.
Nyckelpunkter
- Cross-forest-förtroenden är förtroenderelationer mellan Active Directory-skogar, träd och domäner
- Förtroenden är antingen transitiva eller icke-transitiva, och antingen en- eller dubbelriktade
- Standardförtroenden som upprättas automatiskt i Active Directory är Tree-Root- och Parent-Child-förtroenden
- Andra förtroenden, till exempel externa, realm-, genvägs- och skogsförtroenden måste fastställas av en privilegierad administratör
Förtroenderelationer mellan AD-skogar
Förtroenderelationer mellan domäner i olika Active Directory-skogar måste finnas på plats innan användarna tillåts få tillgång till nätverksresurser inom företagsgränsen eller till externa resurser utanför nätverksperimetern. Detta förtroende är en byggsten för identitets- och åtkomsthantering. Detta gäller särskilt när företag växer genom sammanslagningar och förvärv och när arbetsstyrkan i allt större utsträckning får tillgång till arbete hemifrån eller från andra avlägsna platser. Förtroende över domängränserna är också viktigt eftersom företagen i större utsträckning förlitar sig på relationer med tredje part, leverantörer och partners för att kunna utveckla sin verksamhet.
Skogar fungerar i huvudsak som en säkerhetsgräns för den struktur som utgör Active Directory, men vissa experter varnar för att det här tillvägagångssättet kan ha sina nackdelar.
”En Active Directory-skog kan utformas med flera domäner för att mildra vissa säkerhetsproblem, men den kommer i själva verket inte att mildra dem på grund av hur domänförtroendena i skogen fungerar”, varnade Sean Metcalf, som driver webbplatsen Active Directory Security. ”Om en grupp har säkerhetskrav på sin egen domän av säkerhetsskäl är det troligt att de verkligen behöver en egen skog”, skrev han.
Som det finns många olika sätt att angripa Active Directory kan hotbildare också välja att missbruka domänförtroenderelationer. Genom att samla in information om förtroenderelationer under rekognosceringsaktiviteter när en angripare har ett fotfäste i nätverket, kan de potentiellt identifiera vägar där sidoförflyttning skulle vara möjlig. Eftersom domänförtroenderelationer autentiserar användare på respektive domänkontrollanter och respektive förtroende ger användarna tillgång till resurser kan angriparna också följa samma vägar.
Anfallare kan följa en gemensam strategi som först innebär att de räknar upp förtroenden mellan skogar, träd och domäner för att skapa en karta över den potentiella räckvidd som en angripare kan ha. Ett antal inhemska Windows-metoder och API-anrop kan användas för att räkna upp förtroenden, några av dem är NLtest och dsquery, eller verktyg från tredje part med öppen källkod som Empire, PowerSploit eller PoshC2.
Samma tillvägagångssätt kan användas för att räkna upp användare, grupper eller servrar som har liknande förtroenderelationer som skulle kunna missbrukas som en brygga mellan domäner. En hotbildare kan då ha tillräckligt med information för att bestämma vilka konton han ska rikta in sig på med kända verktyg och attacker som Pass the Ticket eller Kerberoasting, där tjänstebiljetter eller hasher av autentiseringsuppgifter stjäls från minnet och används för privilegieeskalering och sidoförflyttning, eller knäcks i offline-attacker och används för att möjliggöra andra attacker.
Administratörer av Active Directory på företag kan mildra de här attackerna genom att granska och kartlägga förtroenderelationer mellan skogar och domäner, och minimera antalet av dem när det är möjligt. En annan bästa praxis är att segmentera känsliga domäner i nätverket, vilket minskar angreppsytan som är tillgänglig för hotaktörer.
Typer av förtroenden i Active Directory
Under tiden, som nämnts ovan, etableras förtroendet i en Active Directory-skog automatiskt som dubbelriktad och transitiv. Detta innebär att överordnade och underordnade domäner – träd och rot – har ett naturligt förtroende för varandra. Det innebär att Active Directory-objekt är betrodda när det gäller åtkomst till resurser i dessa domäner. När nya underordnade domäner skapas ärver de dessutom förtroendet från den överordnade domänen och kan också dela resurser.
Non-transitivt förtroende är därför ett förtroende som slutar med de domäner med vilka det skapades. I ett sådant scenario kan domänerna A och B lita på varandra, och B och C kan lita på varandra, men det förtroendet sträcker sig inte mellan A och C utan att ett separat envägsförtroende skapas mellan A och C.
Förtroende, däremot, kan bara vara envägs. Till exempel anses en domän vara en betrodd domän och en annan är betrodd, därför upprättas förtroendet antingen i utgående eller inkommande riktning.
En ordlista på hög nivå över förtroenden inom Active Directory ser ut så här:
- Tree-Root Trust (Trädrotsförtroende): Den här typen av förtroende skapas när nya rotdomäner läggs till i en Active Directory-skog. Dessa är dubbelriktade transitiva förtroenden och endast domäner högst upp i varje träd ingår i denna förtroendetyp.
- Föräldra-barn-förtroende: När nya underordnade domäner läggs till upprättas automatiskt tvåvägs transitivt förtroende av Active Directory mellan den underordnade domänen och dess överordnade domän. Föräldra-barn- och träd-rot-förtroenden är standardförtroenden som upprättas automatiskt av Active Directory.
- Skogsförtroende: Skogsförtroenden måste skapas av en privilegierad administratör. Den upprättar en förtroenderelation mellan två AD-skogar, vilket gör det möjligt för domäner i endera skogen att övergående lita på varandra. Administratören kan bestämma om förtroendet är dubbelriktat eller enkelriktat.
- Realmförtroende: Den här typen används för att upprätta antingen tvåvägs- eller envägsförtroenderelationer mellan en Active Directory-skog och en Kerberos-miljö som inte är en Windows-miljö, t.ex. UNIX, Linux eller UNIX-liknande operativsystem.
- Externt förtroende: Denna typ av förtroende används för att skapa en relation mellan en Active Directory-skog och en Kerberos-miljö som inte är en Windows-miljö: Externa förtroenden är icke-transitiva förtroenden som skapas mellan Active Directory-domäner och domäner i en annan skog, eller mellan en AD-skog och en domän före Windows Server 2000, t.ex. Windows NT.
- Shortcut Trust: Ett genvägsförtroende upprättar manuellt en förtroenderelation mellan domäner i stora Active Directory-skogar som gör det möjligt att förbättra autentiseringstiderna genom att förkorta förtroendestigen mellan domänerna.
Möjligheten att skapa en förtroenderelation över skogsgränserna är begränsad till de privilegierade användare som ingår i säkerhetsgruppen Domain Admins eller Enterprise Admins och som har privilegier för skapande av förtroenden. Administratörer kan också vid behov begränsa åtkomsten till resurser till vissa identiteter inom en skog. Microsoft tillhandahåller också en snapin-modul för AD-domäner och förtroenden som verifierar förtroendet mellan skogar, träd eller domäner.
Förtroenderelationer mellan skogar, träd och domäner upprättar en väg där användarna kan få tillgång till resurser som de behöver. Som beskrivits upprättas vissa av dessa relationer automatiskt av Active Directory och möjliggör tvåvägs transitivt förtroende. Förtroenden mellan skogar kräver dock att man noga överväger relationerna mellan användare och objekt inom domäner och det förtroende som måste etableras för att man enkelt ska kunna få tillgång till resurser på båda sidor av relationen.
Övrig läsning
Här är de tidigare inläggen i vår serie om QOMPLX Knowledge; håll utkik efter fler i vår serie om QOMPLX Knowledge under de kommande dagarna och veckorna:
QOMPLX Knowledge: QOMPLX Knowledge: Golden Ticket Attacks Explained
QOMPLX Knowledge: Silver Ticket Attacks Explained
QOMPLX Knowledge: Svar på attacker med gyllene biljetter
QOMPLX Kunskap: Svar på attacker med gyllene biljetter
QOMPLX Kunskap: DCSync-attacker förklaras
QOMPLX-kunskap: DCShadow-attacker förklarade
QOMPLX-kunskap: Förklarade angrepp med Pass-the-Ticket
QOMPLX Kunskap: Kerberoasting-attacker förklarade
QOMPLX Kunskap: Kerberos Delegation Attacks Explained
Andra länkar:
MSMVPs: Active Directory Trusts
TechGenix: Hantering av Active Directory Trusts i Windows Server 2016
Microsoft: Säkerhetsöverväganden för förtroenden
Microsoft: Vad är domäner och skogar
TechTarget: Hur man skapar en Cross-Forest Trust i AD
Mitre ATT&CK: Upptäckt av domänförtroende
Harmj0y: En guide för angrepp på domänförtroenden