Blog: Historien om den skjulte Domain Admin

Jeg har tidligere skrevet et indlæg, som reflekterede over hvor mange administratorer, der egentlig findes i et givent Active Directory (AD). Jeg vil nu udvide med endnu et par kreative eksempler på hvordan en kompetent angriber, kan skjule sig i mængden – steder hvor den almindelige IT-revision aldrig kigger.

Misbrug af Kerberos

I hverdagslivet kender vi til mange eksempler på, at der forfalskes billetter til koncerter, festivaler og lignende arrangementer. Sagen er, at det med lidt snilde også er muligt at udstede falske Kerberos tickets til sig selv (eller andre).

Konceptet er kendt som “Golden Tickets” (og senest “Silver Tickets”) og er for nylig implementeret i det populære værktøj, Mimikatz. En angriber kan eksempelvis udnytte, at have opnået adgang til password hash-værdien for “krbtgt” kontoen, f.eks. efter at have stjålet en kopi af NTDS.dit filen.

En sådan udstedt “billet” kan indeholde medlemskab af en hvilken som helst AD gruppe, og omgår eksempelvis tjek for om brugeren er deaktiveret, logon-hours og lignende. Man kan således nemt danne en Kerberos ticket, som giver fuld adgang til AD og tilknyttede resourcer, i eksempelvis 10 år. Et relativt skræmmende scenarie for de fleste.

I Mimikatz ser operationen således ud:

Angreb som disse er vældig svære at opdage og standse. De opdages kun hvis man har helt styr på hvem der logger ind, hvorfra, hvortil, og hvornår i ens miljø – og sammenstiller denne information med det forventede og almindelige adfærdsmønster. De standses ved at foretage en nøje planlagt “nulstillingsprocedure” for Active Directory (bl.a. “krbtgt”-kontoen, men få professionel vejledning inden), med mindre man hellere vil starte helt forfra.

Misbrug af SIDHistory

En anden yderst interessant tilgang er at skjule Security IDentifier (SID) værdier for højt priviligerede brugere eller grupper i en AD brugerkontos SID-historie, som ellers typisk kun bruges i migreringsscenarier.

Nedenfor ser vi brugeren “Sidney Sneaky”, som tydeligvis ikke er medlem af andre grupper end “Domain Users”. Han ser altså umiddelbart helt almindelig ud ved første øjekast – og i IT-revisionens AD-udtræk.

Problemet er, at Sidney faktisk er administrator på domænet. I hans SIDHistory er indlagt SID-værdien for bade “Domain Admins” gruppen og “Administrator” kontoen. Sidney er dermed i praksis medlem af “Domain Admins” (SID 512), og kan udgøre sig for at være Administrator brugeren (SID 500).

Med Mimikatz er operationen ganske enkel og smertefri, idet værktøjet går udenom Microsoft standard API’er, som ikke tillader en sådan skrivning til AD brugerkonti.

Dette angreb er relativt enkelt at opdage – hvis man altså kigger efter det aktivt. En SIDHistory værdi bør nemlig aldrig indeholde SID-værdien for det domæne hvori brugerkontoen befinder sig. SIDHistory populeres normalt fra fremmede domæner under AD migrering.

Den metode jeg vil foreslå, er et PowerShell script alla nedenstående. Scriptet kan omskrives, så det rapporterer via mail eller lignende:

Get-ADUser -Filter ‘SIDHistory -Like “*”‘ -Properties SIDHistory | Where {$_.SIDHistory -Like “$((Get-ADDomain).DomainSID.Value)-*”} | Select SamAccountName, SID, SIDHistory

Som det ses ovenfor, har scriptet identificeret en mistænkelig konto i det givne domæne.

Så nu spørger jeg igen: Hvor mange administratorer findes der egentlig på dit domæne?

Husk: Én gang Domain Admin, altid Domain Admin!

Henvisninger

Posted in computer.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>