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.
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 hiervoor 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.
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.
We kunnen de verkregen inloggegevens gebruiken om een shell te spawnen met psexec.
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.
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.
Meer weten?
Kasper de Waard helpt je graag verder. Je kunt hem bereiken op: kasper@mydigitals.nl