Active Directory - Waarom is het hardenen van active directory zo belangrijk?

Geschreven door Kasper de Waard op 30 oktober 2021 Leestijd : 5 minuten

Introductie

Iedereen die een beetje thuis is in de wereld van cyber security heeft het wel eens voorbij zien komen, teksten zoals “How I got domain admin in 15 min”, “Domain Admin before lunch” of “Hunting down a sysadmin”. Als je dit lees denk je, is het echt zo makkelijk?

Het antwoord is “Ja”, dit is echt zo makkelijk. Maar voordat we hierop in gaan wil ik iets dieper ingaan op wat Active Directory is en waarom het vaak kwetsbaar is.

Historie

Active directory is ontstaan in 1975 waarbij sommige RFC’s (request for comment) zelfs teruggaat naar 1971, de vorm zoals we deze hedendaags kennen is uitgebracht bij de release van Windows 2000 Server.

Het is daarom ook niet zo gek dat veel bedrijfsnetwerken die al wat langer mee gaan en in het verleden zijn geüpgrade, gemigreerd of zijn overgenomen nog veel legacy protocollen actief heeft.

Het doel van dit stuk is om een inzicht te geven in een van de meest gebruikte hack technieken bij het pentesten van een domein en waarom veel domeinen hiervoor kwetsbaar zijn.

lateral_movement_cycle
Picture 1: Lateral movement cycle (Credits: Microsoft)

Kwetsbaarheid

Als een Windows-client een hostnaam niet kan omzetten via DNS, gebruikt deze het Link-Local Multicast Name Resolution-protocol (LLMNR) om nabijgelegen computers om informatie te vragen.

Als dit niet lukt, wordt NetBIOS Name Service (NBT-NS) gebruikt. NBT-NS is een vergelijkbaar protocol als LLMNR en heeft hetzelfde doel alleen is het belangrijkste verschil dat NBT-NS alleen via IPv4 werkt.

Wanneer LLMNR of NBT-NS gebruikt wordt om een verzoek op te lossen, kan elke host op het netwerk die het IP-adres van de gevraagde host kent, antwoorden. Zelfs als een host op een van deze verzoeken antwoordt met onjuiste informatie, wordt dit nog steeds als legitiem beschouwd.

Door met de juiste tool LLMNR- en NBT-NS-aanvragen af te vangen en te beantwoorden (door zijn eigen IP-adres als bestemming voor elke aanvraag op te geven). Kan er een hoop gevoelige informatie worden afgevangen. Responder, ontwikkeld door Trustwave SpiderLabs, is een van deze tools die we gebruiken om dit te doen.

Situatie

Elk bedrijf waar gasten, klanten of patiënten over de vloer komen heeft vaak een of meerdere openbare ruimte(s). Dit soort ruimtes bevatten veelal onbeheerdere patches. Maar ook als dit niet het geval is kan een aanvaller mee lopen met het personeel middels tailgating of piggybacking om vervolgens een plek te vinden om de aanval uit te voeren.

Aanval

Zoals hierboven al even aangegeven is Responder een tool met verschillende mogelijkheden, maar de meest interessante mogelijkheid is om een malafide samba-server op te zetten en NetNTLM-hashes te stelen.

Om deze taak te kunnen voltooien, is het een goede gewoonte om de responder in analysemodus te starten. Op deze manier krijgen we een analyse van het normale verkeer en kunnen we kijken of er NAC's (Network Access Controls) actief zijn. Vanaf dit punt kunnen we ze gemakkelijk uitsluiten door de Responder.conf te wijzigen en is het ook mogelijk om een specifiek IP-adres te targeten.

Zodra de tool juist is geconfigureerd zijn we klaar om hashes af te vangen. In onderstaand voorbeeld heeft een client een naam probeert op te lossen die niet in de DNS staat en krijgt deze een poisoned response van de responder en deze spoofed het SMB request om NetNTLMv2-hash te verkrijgen.

responder_hashes
Picture 2: Verkregen hash via responder.

Zodra de hash is verkregen, kunnen we twee dingen doen, doorgaan met het kraken ervan of we kunnen het gebruiken in een relay attack. Om hashes te kraken wordt veelal hashcat gebruikt.

hascat
Picture 3: Voorbeeld van een succesvolle match.

We kunnen de verkregen inloggegevens gebruiken om een shell te spawnen met psexec.

shell
Picture 4: Shell via de verkregen credentials.

We kunnen Responder ook gebruiken om een WPAD-verzoek te poisonen. In een bedrijfsnetwerk wordt vaak een proxy gebruikt om verbinding te maken met het internet en zoekt een computer automatisch naar een WPAD-server (Web Proxy Auto Discovery).

Responder is in staat om een nep-WPAD-server te maken en dus reageert het op de client met zijn IP. Wanneer de client vervolgens probeert de wpad.dat op te vragen, maakt de responder een authenticatiescherm aan waarin de client wordt gevraagd de gebruikersnaam en het wachtwoord in te voeren die in het domein worden gebruikt. De inloggegevens worden vervolgens plaintekst getoond in de terminal van de aanvaller.

Detectie

Buiten dat voorkomen beter is dan genezen zijn er gelukkig diverse tools beschikbaar om dit soort aanvallen realtime te detecteren. Wij adviseren vaak Rapid7 InsightIDR omdat dit snel te implementeren is (cloud gebaseerde SIEM) wat is ontworpen om snel geavanceerde aanvallen te detecteren. In het onderstaande voorbeeld is onze bovenstaande aanval gedetecteerd.

detection_siem

Picture 5: Detectie van de SIEM (Rapid 7 Insight IDR)

Conclusie

Dit is slecht een klein voorbeeld van een active directory aanval en zo zijn er legio andere voorbeelden.  Om bovenstaande aanvallen te beperken op uw domein adviseren wij om LLMNR en NBT-NS uit te schakelen. Zoals te zien is in het bovenstaande aanvalsscenario worden deze protocollen alleen gebruikt als er geen DNS-vermeldingen voor de queries waren. Als uw DNS-server de namen gewoon kan resolven, hoeven andere protocollen niet actief te zijn.

Volledige lijst met tips om uw active directory weerbaarder te maken:

  • Schakel LLMNR en NBNS uit
  • Implementeer DHCP snooping om rougue dhcp-servers te blokkeren.
  • Schakel WPAD uit
  • Gebruik unieke veilige beheerderswachtwoorden voor alles (gebruik Local Administrator Password Solution (LAPS))
  • Zet Domain admins en andere kritieke accounts in de groep "Protected Users"
  • Beperk de NTLM-verificatie of, indien mogelijk, verwijder deze volledig.
  • Schakel kerberos RC4-etype uit.
  • Stel SMB-signing in.
  • Schakel DNSSEC in op de DNS Servers.