Vsaka kompromitacija Active Directory sledi predvidljivemu vzorcu. Orodja se spreminjajo, specificne tehnike se razvijajo, a temeljna veriga unicenja ostaja enaka. Kot penetracijski tester hodim po tej poti na vsakem projektu. Kot branilec vam razumevanje vsake stopnje te verige daje priloznost za zaznavanje in prekinitev napada, preden doseze svoj zakljucek.
Zelim vas popeljati skozi celotno verigo unicenja AD, kot jo dozivljam med tipicnim internim penetracijskim testom, in na vsaki stopnji pojasniti, katere obrambne kontrole bi me ustavile ali zaznale.
Stopnja 1: zacetni dostop in izvidovanje
Veriga unicenja se zacne, ko se povezem v interno omrezje. Moja prva dejanja so pasivna: poslusam oddajni promet z uporabo Responderja v analiznem nacinu, identificiram ime domene in IP naslove krmilnikov domene iz odgovorov DNS in DHCP ter preslikam topologijo omrezja iz prometa ARP. V nekaj minutah imam sliko okolja, ne da bi poslal en sam zlonameren paket.
Z nizko privilegiranim racunom domene -- pogosto pridobljenim prek zastrupljanja LLMNR/NBT-NS ali iz kompromitirane delovne postaje -- zacnem aktivno izvidovanje. Poizvedujem LDAP za uporabnike, skupine, racunalnike, GPO-je, zaupanja in organizacijske enote. Pozenem zbiralec SharpHound orodja BloodHound za preslikavo vsake povezave in dovoljenja v domeni. To mi da popoln graf napadnih poti od mojega trenutnega polozaja do Domain Admina.
Obrambne kontrole: Onemogocite LLMNR in NBT-NS prek GPO za preprecitev zastrupljanja razresevanja imen. Uvedite nadzor omreznega dostopa (802.1X) za preprecitev povezovanja nepooblascenih naprav. Spremljajte neobicajne vzorce poizvedb LDAP -- SharpHound ustvari znacilen izbruh poizvedb LDAP, ki ga je mogoce zaznati po obsegu in vzorcu. Implementirajte racune-vabe, ki sprozijo alarme, ko jih poizvede BloodHound.
Stopnja 2: pridobivanje poverilnic
Ko je izvidovanje domene zakljuceno, ciljam poverilnice. Moje primarne tehnike na tej stopnji so Kerberoasting, NTLM relay in razprsevanje gesel. Kerberoasting mi omogoca zahtevanje servisnih vstopnic in razbijanje izven povezave. NTLM relay mi omogoca zajemanje in posredovanje overitve. Razprsevanje gesel mi omogoca ugibanje pogostih gesel na vec racunih.
Preverim tudi racune, ranljive za AS-REP Roasting, gesla LAPS, berljiva za mojega trenutnega uporabnika, gesla, shranjena v nastavitvah skupinskih politik (starejsa tezava, ki se se vedno redno pojavlja), in poverilnice v skriptah SYSVOL. Vsaka od teh tehnik izkorišca drugacno napacno konfiguracijo in vecina okolij je ranljiva za vsaj dve od njih.
Obrambne kontrole: Uvedite gMSA za odpravo ciljev Kerberoastinga. Uveljavite SMB in LDAP podpisovanje za blokado napadov relay. Implementirajte politike zaklepanja racunov, ki so dovolj stroge za omejitev razprsevanja, a ne tako agresivne, da omogocajo zavrnitev storitve. Odstranite gesla iz datotek GPP in skript SYSVOL. Spremljajte dogodek ID 4769 za zahteve vstopnic RC4 in dogodek ID 4625 za porazdeljene neuspehe overitve.
Stopnja 3: bocno premikanje
Ko imam poverilnice, se bocno premikam po okolju. Ce imam zgoscene vrednosti lokalnega administratorja, uporabim pass-the-hash za dostop do drugih delovnih postaj in streznikov. Ce imam gesla v cistopisu ali vstopnice Kerberos, uporabim standardna orodja kot PsExec, WMI ali oddaljeni PowerShell. Moj cilj je najti naprave, kjer imajo visje privilegirani uporabniki aktivne seje ali predpomnjene poverilnice.
V okoljih brez LAPS je bocno premikanje trivialno. Ena zgoscena vrednost lokalnega administratorja mi omogoca dostop do vsake naprave v domeni. Tudi z LAPS, ce ni vecnivojskega administratorskega modela, iscem naprave, kjer so se Domain Admini nedavno prijavili. Vsak skok me pribliza sredstvu nivoja 0.
Obrambne kontrole: Uvedite LAPS, da naredite vsako lokalno administratorsko geslo edinstveno. Implementirajte vecnivojsko administracijo, da preprecite pojavljanje visoko privilegiranih poverilnic na sistemih nizjega nivoja. Omogocite Windows Credential Guard za zascito zgoscenih vrednosti NTLM in vstopnic Kerberos v pomnilniku. Dodajte privilegirane racune v skupino Protected Users za preprecitev predpomnjenja zgoscenih vrednosti NTLM. Spremljajte vzorce bocnega premikanja: dogodek ID 4624 tip prijave 3 iz neobicajnih izvornih IP-jev, namestitve storitev PsExec (dogodek ID 7045) in dogodke ustvarjanja procesov WMI.
Stopnja 4: eskalacija privilegijev
Eskalacija privilegijev v AD obicajno pomeni prehod od navadnega uporabnika domene do Domain Admina. Poti, ki jih najpogosteje uporabljam, vkljucujejo kompromitacijo prevec privilegiranega servisnega racuna prek Kerberoastinga, iskanje predpomnjenih poverilnic Domain Admin na kompromitiranem strezniku, izkoriščanje napacnih konfiguracij ACL, ki mi dajejo pisalni dostop do privilegiranih objektov, in zlorabo delegacije Kerberos za predstavljanje kot privilegirani uporabniki.
BloodHound je tukaj neprecenljiv. Razkrije poti eskalacije, ki jih nobena rocna analiza ne bi nasla: vgnezdena clanstva v skupinah, ki se verizijo skupaj, dovoljenja GenericAll na objektih uporabnikov, ki mi omogocajo ponastavitev gesel, WriteDacl na skupinah, ki mi omogocajo dodajanje sebe, in lastnistvo nad GPO-ji, ki mi omogocajo potiskanje zlonamernih politik.
Obrambne kontrole: Proaktivno poganjajte BloodHound za obrambo, da najdete in odpravite poti eskalacije, preden to storijo napadalci. Revidirajte ACL-je na vseh privilegiranih objektih (skupina Domain Admins, krmilniki domene, vsebnik AdminSDHolder). Odstranite nepotrebne konfiguracije delegacije. Dosledno uveljavljajte nacelo najmanjsih privilegijev -- servisni racuni bi morali imeti samo specificna dovoljenja, ki jih potrebujejo, ne pravic Domain Admin.
Stopnja 5: prevlada nad domeno
Ko imam dostop Domain Admin, vzpostavim obstojnost in prikazem celoten vpliv. Izvedem napad DCSync za replikacijo vseh zgoscenih vrednosti gesel iz domene. Lahko ustvarim zlate vstopnice za trajni dostop. Dostopam do podatkovne baze NTDS.dit na krmilnikih domene. Na tej tocki je vsak racun v domeni kompromitiran in obnova zahteva predpostavko, da so bile vse poverilnice ukradene.
Obrambne kontrole: Spremljajte napade DCSync z opazovanjem dogodka ID 4662 za zahteve replikacije iz ne-DC virov. Alrarmirajte na nove clane, dodane v skupino Domain Admins in druge skupine nivoja 0 (dogodek ID 4728, 4732, 4756). Rotirajte geslo KRBTGT vsakih 180 dni za omejitev zivljenjske dobe zlatih vstopnic. Vzdrzujte varnostne kopije Active Directory brez povezave, ki jih kompromitiran Domain Admin ne more spreminjati.
Prekinjanje verige
Veriga unicenja je mocna le toliko kot njen najsibkejsi clen, a z obrambne perspektive bi morali ciljati na njeno prekinitev na vsaki stopnji. Obramba v globino pomeni, da tudi ce ena kontrola odpove, naslednja ujame napadalca. Nobena posamezna kontrola ne ustavi vsega, a kombinacija pravilnega uveljavljanja podpisovanja, gMSA, LAPS, vecnivojske administracije in aktivnega spremljanja naredi vsak korak dramaticno tezji.
Vsako organizacijo spodbujam, da preslika svojo lastno verigo unicenja. Zacnite s predpostavljeno kompromitacijo ene delovne postaje in sledite potem, ki bi jih napadalec lahko ubral do Domain Admina. Uporabite BloodHound za identifikacijo teh poti, nato jih sistematicno zaprite. Cilj ni narediti kompromitacijo nemogoce, ampak narediti jo dovolj pocasno in dovolj glasno, da jo vasi sistemi za zaznavanje ujamejo, preden doseze prevlado nad domeno.
Zanima vas vec o tej temi? Preberite mojo strokovno stran o Active Directory Security →
Komentarji
Ni se komentarjev. Bodite prvi!
Dodaj komentar