V predchádzajúcich článkoch sme si rozobrali čo vlastne dark web je a aké dáta tam vieme nájsť. Teraz sa pozrieme na to, ako by reálny útočník mohol postupovať len na základe získaných údajov organizácie. Údaje, ktoré sa predávajú na dark webe väčšinou pochádzajú z útokov na organizácie, kde bol použitý ransomvér a tieto organizácie odmietli zaplatiť „výkupné“. To malo za následok zverejnenie údajov, ktoré sa môžu dostať do rúk útočníkom, ktorí ich vedia zneužiť.
1. Ako taký útok začína ?
Iniciálnym vektorom útoku vo väčšine prípadov je phishingová alebo cielená spear-phishingová kampaň. Neraz sa však o úvodný prienik útočníci pokúsili cez kúpené prihlasovacie údaje, ako napríklad prístupy do pracovných staníc cez protokol RDP či prípadne vďaka získaným certifikátom a prihlasovacím údajom do VPN. Ak zlyhala aj táto možnosť, stále má útočník možnosť zaútočiť na zastaralé či zraniteľné verzie softvérových komponentov, operačných systémov a pod. Predsa len súbory o organizáciách obsahujú veľakrát detailný prehľad o ich systémoch nachádzajúcich sa nielen v internej sieti.
Ako príklad si môžeme uviesť aktívne zneužívanú zraniteľnosť nachádzajúcu sa v SSL VPN FortiGate (CVE-2018-13379) či Pulse Connect Secure (CVE-2019-11510). Prvá uvedená zraniteľnosť Path Traversal/Arbitrary File Read¹ umožňuje útočníkovi bez prihlásenia stiahnuť FortiOS systémové súbory pomocou špeciálnych HTTP požiadaviek. Získaním prístupu k súboru “sslvpn_websession” má útočník k dispozícii prihlasovacie údaje, pričom heslá sú uložené vo forme plaintextu.
2. Ako útočník postupuje ?
V tejto fáze sa počíta s tým, že útočníkovi sa podarilo úspešne preniknúť do siete alebo systému, z ktorého môže postupovať ďalej, hovoríme o tzv. lateral movement (laterálnym pohybom naprieč infraštruktúrou). Na základe jeho motivácie, sa dá predpokladať že bude chcieť pristúpiť na čo najväčší počet systémov vrátane doménového radiča, získať citlivé údaje, detaily infraštruktúry, nakoniec tieto systémy zašifrovať a donútiť organizáciu zaplatiť výkupné.
V prípade, že sa jedná o stroje, na ktorých sa nachádza operačný systém Windows, útočník vie použiť len pred pár dňami zverejnený funkčný POC exploit pre zraniteľnosť “PrintNightmare” s označením CVE-2021-1675. Z bežného užívateľského účtu je možné vykonať škodlivý kód na vzdialenom serveri, kde beží služba Windows Print Spooler service, ktorá je predvolene spustená. Taktiež doplňme, že spomenutá zraniteľnosť sa netýka len pracovných staníc kde beží ako operačný systém Windows, ale aj Windows Server, t. zn. doménové radiče sú taktiež zraniteľné.
V prípade, že by boli systémy aktualizované a služba Windows Print Spooler vypnutá, útočník môže skúsiť enumerovať Active Directory prostredie, používateľov, skupiny, zariadenia, intra-forest a inter-forest trusty či ďalšie užitočné informácie pre vytvorenie funkčného vektoru útoku. Na takúto enumeráciu využíva útočník často PowerShell a priamo vstavané príkazy v module s názvom “Active Directory module for Windows PowerShell”.
Zopár užitočných príkazov:
-
Enumerácia doménových radičov:
Get-ADDomainController
-
Enumerácia počítačov v doméne:
Get-ADComputer -Filter * -Properties *
-
Enumerácia AppLocker politiky:
Get-AppLockerPolicy -Effective | select -ExpandProperty RuleCollections
-
Enumerácia Forest trustov:
Get-ADTrust -Filter *
,Get-ADTrust -Identity <názov domény>
Samozrejme útočník nevyužíva len manuálnu enumeráciu, ale aj automatizovanú pomocou nástrojov ako je BloodHound². Už s jedným získaným užívateľom môže útočník získať prístup na doménový radič, ak je toto prostredie nedostatočne nakonfigurované alebo má užívateľ väčšie práva ako je potrebné. BloodHound používa teóriu grafov na odhalenie skrytých vzťahov a útočných ciest v prostredí služby Active Directory.
Užitočné príkazy pre získanie dát na analýzu pomocou BloodHound-u:
V prípade, že je zbieranie dát cez SharpHound iniciované s prepínačom stealth
, výsledky sú značne obmedzené, pretože SharpHound limituje počet systémov, na ktoré pristúpi.
SharpHound.exe --CollectionMethod Session --Stealth
CollectionMethod
prepínač označuje systémy, ktoré budú zacielené. Ďalšie možnosti sú: Default
, All
, DCOnly
, ComputerOnly
, Session
, LoggedOn
, GPOLocalGroup
, LocalAdmin
, LocalGroup
, RDP
, DCOM
, Group
, Trusts
, LoggedOn
, ACL
, ObjectProps
a PSRemote
.
Pri zvolení možnosti Session
, sa odporúča použiť aj ďalší prepínač loop
, v prípade, že sa nejedná o zbieranie dát iniciované s prepínačom Stealth
. Skenovanie siete, so zameraním na relácie používateľov nám väčšinou umožní získať len niečo medzi 5 až 15 percentami aktuálnych relácií. Práve na to slúži tento prepínač, ktorý zabezpečuje, aby získavanie bežalo v cykle, pričom je možné určiť aj dĺžku trvania tohto zberu dát, použitím ďalšieho prepínača Loopduration
.
Okrem spustiteľného súboru existuje aj PowerShell variant
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod all -Stealth
V prípade, že by zber dát v Active Directory prebiehal zo systému, ktorý nie je pripojený v doméne, je možné takýto zber docieliť nakonfigurovaním systémového DNS servera, tak aby smeroval na IP adresu doménového radiča v cieľovej doméne a spustením príkazového riadku (cmd.exe) ako doménový používateľ cez runas
.
Ukážka
runas /netonly /user:TEST.LOCAL\John cmd.exe
SharpHound.exe -d TEST.local
Po úspešne vykonanom zbere dát, útočník využije možnosti BloodHound na ich analýzu a odhalenie zlých konfigurácií. Ako môžeme vidieť na obrázku nižšie, vstavané možnosti tohto nástroja sú veľmi rozsiahle. Okrem vstavaných dopytov je možné vykonať aj vlastný dopyt v spodnej časti tohto nástroja, kliknutím na Raw Query.
Informácie o importovanej databáze sú zobrazené na obrázku nižšie. Obsahuje 509 relácií, 501 užívateľov, 508 skupín, 501 počítačov v rámci 1 domény TEST.LOCAL.
V tomto bode má útočník väčšinu podstatných informácií o doméne pokope a môžeme sa presunúť na vykonávanie dopytov a ďalší postup útoku.
Na obrázku nižšie môžeme vidieť výsledok dopytu “Find Principals with DCSync Rights”. Avšak na úvod si priblížime čo sú to DCSync práva a čo si pod DCSync útokom môžeme predstaviť. DCSync je v skutočnosti škodlivá replikácia adresárových služieb. Replikácia služby Active Directory je proces, pri ktorom sa zmeny vykonané na jednom radiči domény synchronizujú so všetkými ostatnými radičmi domény. S potrebnými oprávneniami môžu útočníci iniciovať žiadosť o replikáciu, ktorá im umožní načítať dáta uložené v službe Active Directory, vrátane hesiel (hašov). Jedná sa o oprávnenia “Replicating Directory Changes” a “Replicating Directory Changes All”, v BloodHound ich môžeme vidieť ako GetChanges a GetChangesAll.
Na vykonanie tohto útoku sú potrebné dostatočné privilégiá, ktoré majú poväčšine iba administrátori, doménoví administrátori či enterprise administrátori alebo členovia skupiny Replicator. Práve preto sa jedná o útok, na ktorý štandardne potrebuje útočník viac času, avšak je dobré spomenúť aj iné možnosti, ktoré vie útočník využiť skôr.
[email protected] je členom DOMAIN CONTROLLERS a ENTERPRISE DOMAIN CONTROLLERS, pričom má oprávnenia GetChanges a GetChangesAll.
Na ďalší z možných útokov narazí útočník už v rámci enumerácie v Active Directory prostredí, kedy sa opäť zameria na práva, konkrétne na neobmedzené delegovanie (unconstrained delegation³). Delegovanie je funkcia služby Active Directory, ktorá umožňuje používateľovi alebo počítaču vydávať sa za iný účet. Neobmedzené delegovanie je povolené správcami domény a používateľmi, ktorí majú právo SeEnableDelegationPrivilege, a to začiarknutím políčka „Trust this computer for delegation to any service (Kerberos only)“ na karte Delegovanie v účtoch počítačov v správe používateľov a počítačov (ADUC) služby Active Directory.
Existuje viacero útokov spojených s neobmedzeným delegovaním. V jednom z najznámejších scenárov útočník v prvom kroku získa prístup na počítač s menšími právami, a následne všetky tickety z počítača pomocou Mimikatz príkazu “sekurlsa::tickets /export”, z ktorých aspoň jeden obsahuje vyššie práva ako napríklad administrátor či doménový administrátor. Ako je to možné? V prípade, že má počítač povolené neobmedzené delegovanie a pristúpi naň doménový administrátor napríklad cez CIFS (Common Internet File System) k zdieľanému priečinku, TGT tiket zostane uložený v pamäti. Tento TGT tiket je potom možné veľmi ľahko získať a následne zneužiť, pre získanie privilegovaného prístupu.
3. Perzistencia
Akonáhle má útočník pod kontrolou viacero systémov a má vyššie privilégia, potrebuje dosiahnuť perzistenciu. Tá mu umožní exfiltrovať dáta pomalšie a taktiež zvýši šance o udržanie získaného prístupu do infraštruktúry. Je viacero spôsobov ako sa dá perzistencia získať, záleží to najmä od možností, ktoré útočník má k dispozícii. To znamená napríklad, v akej veľkej infraštruktúre sa nachádza, na aký čas potrebuje zabezpečiť prístup, aké ochrany sú nasadené a ďalšie.
Zlatý tiket (Golden Ticket) – tento tiket umožňuje v rámci Active Directory získať neobmedzený prístup. Celý tento prístup stoji na hesle (haš) používateľa krbtgt. Akonáhle získa útočník kontrolu nad doménovým Key Distribution Service účtom (krbtgt) a má jeho heslo vo forme NTLM hašu, môže vytvoriť zlatý tiket.
Podmienky pre vytvorenie TGT tiketu
-
Názov domény
-
SID
-
NTLM heslo (haš) doménového KRBTGT účtu
Príkazy pre vytvorenie tiketu cez Mimikatz
Vykonanie príkazu na DC
Invoke-Mimikatz -Command ‘”lsadump::lsa /patch”’ -Computername target-dc
Vykonanie príkazu na akomkoľvek stroji
Invoke-Mimikatz -Command ‘”Kerberos::golden /User:nazov_uzivatela /domain:nazov_domeny /sid:hodnota_sid /krbtgt:hash /id:hodnota_id /groups:cislo_skupiny /ptt”’
Medzi ďalšie možnosti získania perzistencie útočníkom môžeme zaradiť:
-
Povolenie RDP protokolu – otvorením RDP získa útočník možnosť pristúpiť na počítač z kdekoľvek, ak je počítač prístupný z internetu.
-
Naplánovaná úloha / škodlivá služba - napríklad pre pridanie používateľa do administrátorskej skupiny
-
Shadow credentials – ak útočník kompromituje účet, ktorý má delegované práva na používateľský účet, môžeme jednoducho resetovať jeho heslo, alebo ak chceme, aby to bolo menej rušivé, môžeme nastaviť SPN alebo deaktivovať Kerberos pre-authentication. Aby to bolo možné vykonať, je potrebné mať účet s delegovanými právami na zápis do atribútu msDS-KeyCredentialLink na účte používateľa alebo stroja, aby išlo požiadať o jeho TGT.
-
Falošný účet radiča domény – útočník si v AD vytvorí „falošný“ účet stroja radiča domény a potom upraví hodnotu userAccountControl na 8192, aby si Active Directory mohlo myslieť, že je to legitímny radič domény. Účty s DS-Install-Replica na koreňovom objekte domény môžu pridať túto hodnotu k účtu stroja.
Záver
Zhrnutie udalostí
Celé to začalo hľadaním dát na dark webe, predovšetkým o organizáciách, ktoré sa stali obeťou hackerských útokov v nedávnej či vzdialenej minulosti. V tomto bode získaval útočník prehľad o ich infraštruktúre, spôsobe akým boli kompromitované a začal si vyberať cieľ. Prvý prienik nastal cez zakúpené prístupy do VPN a pracovných staníc, pričom ďalšie prieniky mohli nastať využitím verejných exploitov na použité zraniteľné verzie VPN koncentrátorov alebo cez spear-phishing kampaň.
Akonáhle útočník získal prístup do siete, začal eskalovať svoje privilégia. Vedel nato využiť aktuálne zraniteľnosti ako napríklad: PrintNightmare, PetitPotam či SeriousSAM (HiveNightmare) a verejne dostupné Proof of Concept exploity. Na eskalovanie privilégií mohol taktiež využiť aj chyby konfigurácie Active Directory prostredia, medzi ktoré patria: rovnaké heslá naprieč systémami (možnosť použitia Pass the Hash útoku), service účty so slabými heslami, otvorené sieťové jednotky, staršie či zastaralé systémy a ďalšie.
Útočník následne udržiaval prístup do siete a zariadení pomocou rôznych možností perzistencie. V tejto fáze rozšíril svoj prístup na ďalšie zariadenia pomocou lateral movement techník. Na záver došlo k exfiltrácií údajov z organizácie a zašifrovaniu všetkých staníc, na ktoré mal útočník prístup.