AD CS Domain Escalation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ovo je sažetak sekcija tehnika eskalacije iz postova:
Prava na upis su dodeljena korisnicima sa niskim privilegijama od strane Enterprise CA.
Odobrenje menadžera nije potrebno.
Nisu potrebni potpisi ovlašćenog osoblja.
Bezbednosni deskriptori na šablonima sertifikata su previše permisivni, omogućavajući korisnicima sa niskim privilegijama da dobiju prava na upis.
Šabloni sertifikata su konfigurisani da definišu EKU-e koje olakšavaju autentifikaciju:
Identifikatori proširene upotrebe ključeva (EKU) kao što su Klijentova autentifikacija (OID 1.3.6.1.5.5.7.3.2), PKINIT Klijentova autentifikacija (1.3.6.1.5.2.3.4), Prijava putem pametne kartice (OID 1.3.6.1.4.1.311.20.2.2), Bilo koja svrha (OID 2.5.29.37.0), ili bez EKU (SubCA) su uključeni.
Mogućnost da podnosioci zahteva uključe subjectAltName u Zahtev za potpisivanje sertifikata (CSR) je dozvoljena šablonom:
Active Directory (AD) prioritizuje subjectAltName (SAN) u sertifikatu za verifikaciju identiteta ako je prisutan. To znači da specificiranjem SAN-a u CSR-u, može se zatražiti sertifikat za impersonaciju bilo kog korisnika (npr. administratora domena). Da li podnosilac zahteva može da specificira SAN je naznačeno u AD objektu šablona sertifikata kroz svojstvo mspki-certificate-name-flag
. Ovo svojstvo je bitmask, a prisustvo CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
zastavice omogućava specificiranje SAN-a od strane podnosioca zahteva.
Konfiguracija opisana omogućava korisnicima sa niskim privilegijama da traže sertifikate sa bilo kojim SAN-om po izboru, omogućavajući autentifikaciju kao bilo koji domen principal putem Kerberos-a ili SChannel-a.
Ova funkcija je ponekad omogućena da podrži generisanje HTTPS ili host sertifikata u hodu od strane proizvoda ili usluga implementacije, ili zbog nedostatka razumevanja.
Napomena je da kreiranje sertifikata sa ovom opcijom pokreće upozorenje, što nije slučaj kada se postojeći šablon sertifikata (kao što je šablon WebServer
, koji ima CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
omogućeno) duplicira i zatim modifikuje da uključuje autentifikacijski OID.
Da biste pronašli ranjive šablone sertifikata možete pokrenuti:
Da bi se zloupotrebila ova ranjivost za oponašanje administratora, može se pokrenuti:
Zatim možete transformisati generisani sertifikat u .pfx
format i koristiti ga za autentifikaciju koristeći Rubeus ili certipy ponovo:
Windows binarni fajlovi "Certreq.exe" i "Certutil.exe" mogu se koristiti za generisanje PFX: https://gist.github.com/b4cktr4ck2/95a9b908e57460d9958e8238f85ef8ee
Enumeracija šablona sertifikata unutar konfiguracionog sheme AD šume, posebno onih koji ne zahtevaju odobrenje ili potpise, koji poseduju Client Authentication ili Smart Card Logon EKU, i sa CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
oznakom omogućenom, može se izvršiti pokretanjem sledeće LDAP upita:
Drugi scenario zloupotrebe je varijacija prvog:
Prava za upis su dodeljena korisnicima sa niskim privilegijama od strane Enterprise CA.
Zahtev za odobrenje menadžera je onemogućen.
Potreba za ovlašćenim potpisima je izostavljena.
Previše permisivan bezbednosni opis na šablonu sertifikata dodeljuje prava za upis sertifikata korisnicima sa niskim privilegijama.
Šablon sertifikata je definisan da uključuje Any Purpose EKU ili nema EKU.
Any Purpose EKU omogućava napadaču da dobije sertifikat za bilo koju svrhu, uključujući autentifikaciju klijenta, autentifikaciju servera, potpisivanje koda, itd. Ista tehnika korišćena za ESC3 može se koristiti za iskorišćavanje ovog scenarija.
Sertifikati sa nema EKU, koji deluju kao sertifikati podređenih CA, mogu se zloupotrebiti za bilo koju svrhu i mogu takođe biti korišćeni za potpisivanje novih sertifikata. Stoga, napadač može odrediti proizvoljne EKU ili polja u novim sertifikatima koristeći sertifikat podređene CA.
Međutim, novi sertifikati kreirani za autentifikaciju domena neće funkcionisati ako podređena CA nije poverena od strane NTAuthCertificates
objekta, što je podrazumevano podešavanje. Ipak, napadač može i dalje kreirati nove sertifikate sa bilo kojim EKU i proizvoljnim vrednostima sertifikata. Ovi bi mogli biti potencijalno zloupotrebljeni za širok spektar svrha (npr. potpisivanje koda, autentifikacija servera, itd.) i mogli bi imati značajne posledice za druge aplikacije u mreži kao što su SAML, AD FS ili IPSec.
Da bi se nabrojali šabloni koji odgovaraju ovom scenariju unutar konfiguracione šeme AD šume, može se izvršiti sledeći LDAP upit:
Ovaj scenario je sličan prvom i drugom, ali zloupotrebljava drugi EKU (Agent za zahtev za sertifikat) i 2 različita šablona (stoga ima 2 seta zahteva),
EKU agenta za zahtev za sertifikat (OID 1.3.6.1.4.1.311.20.2.1), poznat kao Agent za upis u Microsoft dokumentaciji, omogućava principalu da upisuje za sertifikat u ime drugog korisnika.
“Agent za upis” se upisuje u takav šablon i koristi rezultantni sertifikat da bi ko-potpisao CSR u ime drugog korisnika. Zatim šalje ko-potpisani CSR CA, upisujući se u šablon koji dozvoljava “upis u ime”, a CA odgovara sa sertifikatom koji pripada “drugom” korisniku.
Zahtevi 1:
Prava za upis se dodeljuju korisnicima sa niskim privilegijama od strane Enterprise CA.
Zahtev za odobrenje menadžera je izostavljen.
Nema zahteva za ovlašćenim potpisima.
Bezbednosni opis šablona sertifikata je previše permisivan, dodeljujući prava za upis korisnicima sa niskim privilegijama.
Šablon sertifikata uključuje EKU agenta za zahtev za sertifikat, omogućavajući zahtev za drugim šablonima sertifikata u ime drugih principala.
Zahtevi 2:
Enterprise CA dodeljuje prava za upis korisnicima sa niskim privilegijama.
Odobrenje menadžera je zaobiđeno.
Verzija šeme šablona je ili 1 ili prelazi 2, i specificira Zahtev za izdavanje aplikacione politike koji zahteva EKU agenta za zahtev za sertifikat.
EKU definisan u šablonu sertifikata dozvoljava autentifikaciju domena.
Ograničenja za agente za upis se ne primenjuju na CA.
Možete koristiti Certify ili Certipy da biste zloupotrebili ovaj scenario:
Korisnici koji su ovlašćeni da dobiju sertifikat agenta za upis, šabloni u kojima su agenti za upis ovlašćeni da se upisuju, i nalozi u ime kojih agent za upis može delovati mogu biti ograničeni od strane preduzeća CA. To se postiže otvaranjem certsrc.msc
snap-in-a, desnim klikom na CA, klikom na Svojstva, a zatim navigacijom do taba “Agenti za upis”.
Međutim, primećeno je da je podrazumevana postavka za CA “Ne ograničavaj agente za upis.” Kada administratori omoguće ograničenje za agente za upis, postavljanjem na “Ograniči agente za upis,” podrazumevana konfiguracija ostaje izuzetno permisivna. Omogućava Svima pristup da se upisuju u sve šablone kao bilo ko.
Bezbednosni opisivač na šablonima sertifikata definiše dozvole koje specifični AD principi poseduju u vezi sa šablonom.
Ako napadač poseduje potrebne dozvole da izmeni šablon i uspostavi bilo kakve iskoristive pogrešne konfiguracije navedene u prethodnim odeljcima, privilegijska eskalacija bi mogla biti olakšana.
Značajne dozvole koje se primenjuju na šablone sertifikata uključuju:
Vlasnik: Daje implicitnu kontrolu nad objektom, omogućavajući modifikaciju bilo kojih atributa.
PotpunaKontrola: Omogućava potpunu vlast nad objektom, uključujući sposobnost da se promene bilo koji atributi.
IzmeniVlasnika: Omogućava promenu vlasnika objekta na principala pod kontrolom napadača.
IzmeniDacl: Omogućava prilagođavanje kontrola pristupa, potencijalno dajući napadaču PotpunuKontrolu.
IzmeniSvojstvo: Ovlašćuje uređivanje bilo kojih svojstava objekta.
Primer privesc-a kao prethodni:
ESC4 je kada korisnik ima privilegije pisanja nad šablonom sertifikata. Ovo se može, na primer, zloupotrebiti da se prepiše konfiguracija šablona sertifikata kako bi se šablon učinio ranjivim na ESC1.
Kao što možemo videti u gornjem putu, samo JOHNPC
ima ove privilegije, ali naš korisnik JOHN
ima novu AddKeyCredentialLink
ivicu prema JOHNPC
. Pošto je ova tehnika povezana sa sertifikatima, implementirao sam i ovaj napad, koji je poznat kao Shadow Credentials. Evo malog pregleda Certipy-ove shadow auto
komande za preuzimanje NT hash-a žrtve.
Certipy može prepisati konfiguraciju šablona sertifikata jednim komandama. Po default-u, Certipy će prepisati konfiguraciju kako bi je učinio ranjivom na ESC1. Takođe možemo odrediti -save-old
parametar za čuvanje stare konfiguracije, što će biti korisno za obnavljanje konfiguracije nakon našeg napada.
Opsežna mreža međusobno povezanih ACL odnosa, koja uključuje nekoliko objekata pored šablona sertifikata i sertifikacione vlasti, može uticati na bezbednost celog AD CS sistema. Ovi objekti, koji mogu značajno uticati na bezbednost, obuhvataju:
AD računar objekat CA servera, koji može biti kompromitovan putem mehanizama kao što su S4U2Self ili S4U2Proxy.
RPC/DCOM server CA servera.
Bilo koji potomak AD objekta ili kontejner unutar specifične putanje kontejnera CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>
. Ova putanja uključuje, ali nije ograničena na, kontejnere i objekte kao što su kontejner šablona sertifikata, kontejner sertifikacionih vlasti, NTAuthCertificates objekat i kontejner usluga upisa.
Bezbednost PKI sistema može biti kompromitovana ako napadač sa niskim privilegijama uspe da preuzme kontrolu nad bilo kojim od ovih kritičnih komponenti.
Tema o kojoj se raspravlja u CQure Academy postu takođe se dotiče implikacija EDITF_ATTRIBUTESUBJECTALTNAME2
oznake, kako je navedeno od strane Microsoft-a. Ova konfiguracija, kada je aktivirana na Sertifikacionoj Vlasti (CA), omogućava uključivanje korisnički definisanih vrednosti u alternativno ime subjekta za bilo koji zahtev, uključujući one konstruisane iz Active Directory®. Kao rezultat, ova odredba omogućava napadaču da se upiše putem bilo kog šablona postavljenog za autentifikaciju domena—specifično onih otvorenih za upis neprivilegovanih korisnika, poput standardnog šablona korisnika. Kao rezultat, može se obezbediti sertifikat, omogućavajući napadaču da se autentifikuje kao administrator domena ili bilo koja druga aktivna entitet unutar domena.
Napomena: Pristup za dodavanje alternativnih imena u Zahtev za potpisivanje sertifikata (CSR), putem -attrib "SAN:"
argumenta u certreq.exe
(poznato kao “Parovi imena i vrednosti”), predstavlja kontrast od strategije eksploatacije SAN-ova u ESC1. Ovde, razlika leži u načinu na koji je informacija o računu enkapsulirana—unutar atributa sertifikata, a ne ekstenzije.
Da bi proverile da li je podešavanje aktivirano, organizacije mogu koristiti sledeću komandu sa certutil.exe
:
Ova operacija suštinski koristi pristup udaljenom registru, stoga bi alternativni pristup mogao biti:
Alati kao što su Certify i Certipy su sposobni da otkriju ovu pogrešnu konfiguraciju i iskoriste je:
Da bi se izmenile ove postavke, pod pretpostavkom da se poseduje administratorska prava na domenu ili ekvivalentna, sledeća komanda može biti izvršena sa bilo koje radne stanice:
Da biste onemogućili ovu konfiguraciju u vašem okruženju, zastavica se može ukloniti sa:
Nakon bezbednosnih ažuriranja iz maja 2022. godine, novoizdati certifikati će sadržati bezbednosnu ekstenziju koja uključuje objectSid
svojstvo zahtevaoca. Za ESC1, ovaj SID se izvodi iz specificiranog SAN-a. Međutim, za ESC6, SID odražava objectSid
zahtevaoca, a ne SAN.
Da bi se iskoristio ESC6, neophodno je da sistem bude podložan ESC10 (Slabe Mape Certifikata), koji daje prioritet SAN-u nad novom bezbednosnom ekstenzijom.
Kontrola pristupa za certifikacionu vlast održava se kroz skup dozvola koje regulišu radnje CA. Ove dozvole se mogu pregledati pristupanjem certsrv.msc
, desnim klikom na CA, odabirom svojstava, a zatim navigacijom do kartice Bezbednost. Pored toga, dozvole se mogu enumerisati koristeći PSPKI modul sa komandama kao što su:
Ovo pruža uvid u primarna prava, naime ManageCA
i ManageCertificates
, koja se odnose na uloge "CA administratora" i "Menadžera sertifikata" respektivno.
Imanje ManageCA
prava na certifikacionoj vlasti omogućava principalu da manipuliše podešavanjima na daljinu koristeći PSPKI. Ovo uključuje prebacivanje EDITF_ATTRIBUTESUBJECTALTNAME2
oznake kako bi se omogućila SAN specifikacija u bilo kojem šablonu, što je kritičan aspekt eskalacije domena.
Pojednostavljenje ovog procesa je ostvarivo korišćenjem PSPKI-ove Enable-PolicyModuleFlag cmdlet, što omogućava izmene bez direktne interakcije sa GUI-jem.
Posedovanje ManageCertificates
prava olakšava odobravanje čekajućih zahteva, efikasno zaobilazeći zaštitu "odobrenja menadžera CA sertifikata".
Kombinacija Certify i PSPKI modula može se koristiti za zahtev, odobravanje i preuzimanje sertifikata:
U prethodnom napadu Manage CA
dozvole su korišćene da se omogući EDITF_ATTRIBUTESUBJECTALTNAME2 zastavica za izvođenje ESC6 napada, ali to neće imati nikakav efekat dok se CA servis (CertSvc
) ne restartuje. Kada korisnik ima Manage CA
pravo pristupa, korisniku je takođe dozvoljeno da restartuje servis. Međutim, to ne znači da korisnik može da restartuje servis na daljinu. Štaviše, ESC6 možda neće raditi odmah u većini zakrpljenih okruženja zbog bezbednosnih ažuriranja iz maja 2022. godine.
Stoga, ovde je predstavljen još jedan napad.
Preduvjeti:
Samo ManageCA
dozvola
Manage Certificates
dozvola (može se dodeliti iz ManageCA
)
Šablon sertifikata SubCA
mora biti omogućen (može se omogućiti iz ManageCA
)
Tehnika se oslanja na činjenicu da korisnici sa Manage CA
i Manage Certificates
pravima pristupa mogu izdavati neuspela zahteva za sertifikate. Šablon sertifikata SubCA
je ranjiv na ESC1, ali samo administratori mogu da se upišu u šablon. Tako, korisnik može zatražiti da se upiše u SubCA
- što će biti odbijeno - ali zatim izdano od strane menadžera.
Možete dodeliti sebi Manage Certificates
pravo pristupa dodavanjem svog korisnika kao novog službenika.
SubCA
шаблон може бити омогућен на CA са параметром -enable-template
. По подразумеваној вредности, SubCA
шаблон је омогућен.
Ako smo ispunili preduslove za ovaj napad, možemo početi sa zahtevom za sertifikat zasnovan na SubCA
šablonu.
Ovaj zahtev će biti odbijen, ali ćemo sačuvati privatni ključ i zabeležiti ID zahteva.
Sa našim Manage CA
i Manage Certificates
, možemo zatim izdati neuspešni zahtev za sertifikat pomoću ca
komande i -issue-request <request ID>
parametra.
I konačno, možemo preuzeti izdate sertifikate pomoću req
komande i -retrieve <request ID>
parametra.
U okruženjima gde je AD CS instaliran, ako postoji web enrollment endpoint koji je ranjiv i najmanje jedan šablon sertifikata je objavljen koji omogućava upis domena i autentifikaciju klijenata (kao što je podrazumevani Machine
šablon), postaje moguće da bilo koji računar sa aktivnom spooler uslugom bude kompromitovan od strane napadača!
Nekoliko HTTP-baziranih metoda upisa podržava AD CS, koje su dostupne kroz dodatne server uloge koje administratori mogu instalirati. Ove interfejse za HTTP-bazirani upis sertifikata su podložni NTLM relay napadima. Napadač, sa kompromitovane mašine, može da se pretvara da je bilo koji AD nalog koji se autentifikuje putem dolaznog NTLM. Dok se pretvara da je žrtva, ove web interfejse može da pristupi napadač da zatraži sertifikat za autentifikaciju klijenta koristeći User
ili Machine
šablone sertifikata.
Web enrollment interfejs (starija ASP aplikacija dostupna na http://<caserver>/certsrv/
), podrazumevano koristi samo HTTP, što ne pruža zaštitu od NTLM relay napada. Pored toga, izričito dozvoljava samo NTLM autentifikaciju kroz svoj Authorization HTTP header, čime se sigurnije metode autentifikacije poput Kerberos-a čine neprimenljivim.
Servis za upis sertifikata (CES), Politika upisa sertifikata (CEP) Web servis, i Servis za upis mrežnih uređaja (NDES) podrazumevano podržavaju negotiate autentifikaciju putem svog Authorization HTTP header-a. Negotiate autentifikacija podržava i Kerberos i NTLM, omogućavajući napadaču da smanji na NTLM autentifikaciju tokom relay napada. Iako ovi web servisi podrazumevano omogućavaju HTTPS, HTTPS sam po sebi ne štiti od NTLM relay napada. Zaštita od NTLM relay napada za HTTPS servise je moguća samo kada se HTTPS kombinuje sa channel binding-om. Nažalost, AD CS ne aktivira Extended Protection for Authentication na IIS-u, što je potrebno za channel binding.
Uobičajeni problem sa NTLM relay napadima je kratko trajanje NTLM sesija i nemogućnost napadača da interaguje sa servisima koji zahtevaju NTLM potpisivanje.
Ipak, ova ograničenja se prevazilaze iskorišćavanjem NTLM relay napada za sticanje sertifikata za korisnika, jer period važenja sertifikata diktira trajanje sesije, a sertifikat se može koristiti sa servisima koji zahtevaju NTLM potpisivanje. Za uputstva o korišćenju ukradenog sertifikata, pogledajte:
AD CS Account PersistenceJoš jedno ograničenje NTLM relay napada je da mašina pod kontrolom napadača mora biti autentifikovana od strane žrtvinog naloga. Napadač može ili čekati ili pokušati da prisili ovu autentifikaciju:
Force NTLM Privileged AuthenticationCertify’s cas
enumeriše omogućene HTTP AD CS endpoint-e:
Svojstvo msPKI-Enrollment-Servers
koristi preduzeća Certifikacione vlasti (CAs) za čuvanje krajnjih tačaka Servisa za upis certifikata (CES). Ove krajnje tačke mogu se analizirati i navesti korišćenjem alata Certutil.exe:
```powershell Import-Module PSPKI Get-CertificationAuthority | select Name,Enroll* | Format-List * ```
Zahtev za sertifikat se po defaultu pravi od strane Certipy na osnovu šablona Machine
ili User
, u zavisnosti od toga da li se ime naloga koje se preusmerava završava sa $
. Specifikacija alternativnog šablona može se postići korišćenjem parametra -template
.
Tehnika poput PetitPotam može se zatim koristiti za prinudnu autentifikaciju. Kada se radi sa domen kontrolerima, neophodno je specificirati -template DomainController
.
Nova vrednost CT_FLAG_NO_SECURITY_EXTENSION
(0x80000
) za msPKI-Enrollment-Flag
, poznata kao ESC9, sprečava ugrađivanje nove szOID_NTDS_CA_SECURITY_EXT
sigurnosne ekstenzije u sertifikat. Ova oznaka postaje relevantna kada je StrongCertificateBindingEnforcement
postavljen na 1
(podrazumevano podešavanje), što se razlikuje od podešavanja 2
. Njena relevantnost se povećava u scenarijima gde bi slabija mapiranja sertifikata za Kerberos ili Schannel mogla biti iskorišćena (kao u ESC10), s obzirom na to da odsustvo ESC9 ne bi promenilo zahteve.
Uslovi pod kojima postavka ove oznake postaje značajna uključuju:
StrongCertificateBindingEnforcement
nije podešen na 2
(sa podrazumevanim podešavanjem 1
), ili CertificateMappingMethods
uključuje UPN
oznaku.
Sertifikat je označen oznakom CT_FLAG_NO_SECURITY_EXTENSION
unutar postavke msPKI-Enrollment-Flag
.
Bilo koja EKU za autentifikaciju klijenta je specificirana sertifikatom.
GenericWrite
dozvole su dostupne za bilo koji nalog kako bi se kompromitovao drugi.
Pretpostavimo da John@corp.local
ima GenericWrite
dozvole nad Jane@corp.local
, sa ciljem da kompromituje Administrator@corp.local
. ESC9
šablon sertifikata, u koji Jane@corp.local
može da se upiše, konfiguriše se sa oznakom CT_FLAG_NO_SECURITY_EXTENSION
u svojoj postavci msPKI-Enrollment-Flag
.
U početku, Jane
-in hash se stiče korišćenjem Shadow Credentials, zahvaljujući John
-ovom GenericWrite
:
Kasnije, Jane
's userPrincipalName
se menja u Administrator
, namerno izostavljajući deo domena @corp.local
:
Ova modifikacija ne krši ograničenja, s obzirom na to da Administrator@corp.local
ostaje različit kao Administrator
-ov userPrincipalName
.
Nakon toga, ESC9
šablon sertifikata, označen kao ranjiv, se traži kao Jane
:
Napomena je da userPrincipalName
sertifikata odražava Administrator
, bez ikakvog “object SID”.
Jane
's userPrincipalName
se zatim vraća na njen originalni, Jane@corp.local
:
Pokušaj autentifikacije sa izdatim sertifikatom sada daje NT hash Administrator@corp.local
. Komanda mora uključivati -domain <domain>
zbog nedostatka specifikacije domena u sertifikatu:
Dve vrednosti registra na kontroleru domena se nazivaju ESC10:
Podrazumevana vrednost za CertificateMappingMethods
pod HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel
je 0x18
(0x8 | 0x10
), prethodno postavljena na 0x1F
.
Podrazumevana postavka za StrongCertificateBindingEnforcement
pod HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc
je 1
, prethodno 0
.
Case 1
Kada je StrongCertificateBindingEnforcement
konfigurisana kao 0
.
Case 2
Ako CertificateMappingMethods
uključuje UPN
bit (0x4
).
Sa StrongCertificateBindingEnforcement
konfigurisanim kao 0
, nalog A sa GenericWrite
dozvolama može biti iskorišćen da kompromituje bilo koji nalog B.
Na primer, imajući GenericWrite
dozvole nad Jane@corp.local
, napadač ima za cilj da kompromituje Administrator@corp.local
. Procedura odražava ESC9, omogućavajući korišćenje bilo kog šablona sertifikata.
U početku, Jane
-in hash se preuzima koristeći Shadow Credentials, iskorišćavajući GenericWrite
.
Kasnije, Jane
's userPrincipalName
se menja u Administrator
, namerno izostavljajući deo @corp.local
kako bi se izbegla povreda ograničenja.
Nakon toga, sertifikat koji omogućava autentifikaciju klijenta se zahteva kao Jane
, koristeći podrazumevani User
šablon.
Jane
's userPrincipalName
se zatim vraća na prvobitni, Jane@corp.local
.
Autentifikacija sa dobijenom sertifikatom će dati NT hash Administrator@corp.local
, što zahteva navođenje domena u komandi zbog odsustva informacija o domenu u sertifikatu.
Sa CertificateMappingMethods
koji sadrži UPN
bit flag (0x4
), nalog A sa GenericWrite
dozvolama može da kompromituje bilo koji nalog B koji nema userPrincipalName
svojstvo, uključujući naloge mašina i ugrađenog domen administratora Administrator
.
Ovde je cilj kompromitovati DC$@corp.local
, počevši od dobijanja Jane
-inog hash-a putem Shadow Credentials, koristeći GenericWrite
.
Jane
's userPrincipalName
je zatim postavljen na DC$@corp.local
.
Zahteva se sertifikat za autentifikaciju klijenta kao Jane
koristeći podrazumevani User
šablon.
Jane
's userPrincipalName
se vraća na prvobitno nakon ovog procesa.
Da bi se autentifikovao putem Schannel-a, koristi se Certipy-ova -ldap-shell
opcija, koja označava uspešnu autentifikaciju kao u:CORP\DC$
.
Kroz LDAP shell, komande kao što su set_rbcd
omogućavaju napade zasnovane na resursima sa ograničenom delegacijom (RBCD), što može ugroziti kontroler domena.
Ova ranjivost se takođe odnosi na bilo koji korisnički nalog koji nema userPrincipalName
ili gde se ne poklapa sa sAMAccountName
, pri čemu je podrazumevani Administrator@corp.local
primarna meta zbog svojih povišenih LDAP privilegija i odsustva userPrincipalName
po defaultu.
Ako CA Server nije konfiguran sa IF_ENFORCEENCRYPTICERTREQUEST
, može se izvršiti NTLM relaying napad bez potpisivanja putem RPC servisa. Reference in here.
Možete koristiti certipy
da enumerišete da li je Enforce Encryption for Requests
onemogućen i certipy će prikazati ESC11
ranjivosti.
Potrebno je postaviti relacijski server:
Напомена: За контролере домена, морамо да наведемо -template
у DomainController.
Или користећи sploutchy-јеву верзију impacket:
Administratori mogu postaviti Sertifikacionu Autoritetu da je čuva na spoljnjem uređaju kao što je "Yubico YubiHSM2".
Ako je USB uređaj povezan sa CA serverom putem USB porta, ili USB uređaj server u slučaju da je CA server virtuelna mašina, potrebna je autentifikaciona ključ (ponekad nazvan "lozinka") za Key Storage Provider da generiše i koristi ključeve u YubiHSM.
Ovaj ključ/lozinka se čuva u registru pod HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM\AuthKeysetPassword
u čistom tekstu.
Reference ovde.
Ako je privatni ključ CA sačuvan na fizičkom USB uređaju kada ste dobili shell pristup, moguće je povratiti ključ.
Prvo, potrebno je da dobijete CA sertifikat (ovo je javno) i zatim:
Na kraju, koristite certutil -sign
komandu da falsifikujete novi proizvoljni sertifikat koristeći CA sertifikat i njegov privatni ključ.
Atribut msPKI-Certificate-Policy
omogućava dodavanje politike izdavanja u šablon sertifikata. msPKI-Enterprise-Oid
objekti koji su odgovorni za izdavanje politika mogu se otkriti u Konfiguracionom Imenovanju Konteksta (CN=OID,CN=Public Key Services,CN=Services) PKI OID kontejnera. Politika se može povezati sa AD grupom koristeći atribut msDS-OIDToGroupLink
ovog objekta, omogućavajući sistemu da autorizuje korisnika koji predstavi sertifikat kao da je član grupe. Referenca ovde.
Drugim rečima, kada korisnik ima dozvolu da registruje sertifikat i sertifikat je povezan sa OID grupom, korisnik može naslediti privilegije ove grupe.
Koristite Check-ADCSESC13.ps1 da pronađete OIDToGroupLink:
Pronađite korisničku dozvolu koju može koristiti certipy find
ili Certify.exe find /showAllPermissions
.
Ako John
ima dozvolu da se upiše u VulnerableTemplate
, korisnik može naslediti privilegije grupe VulnerableGroup
.
Sve što treba da uradi je da specificira šablon, dobiće sertifikat sa OIDToGroupLink pravima.
Konfiguracija za cross-forest enrollment je relativno jednostavna. Root CA sertifikat iz resursnog šuma je objavljen u šumama naloga od strane administratora, a enterprise CA sertifikati iz resursnog šuma su dodati u NTAuthCertificates
i AIA kontejnere u svakoj šumi naloga. Da pojasnimo, ovaj aranžman daje CA u resursnom šumu potpunu kontrolu nad svim drugim šumama za koje upravlja PKI. Ako bi ovaj CA bio kompromitovan od strane napadača, sertifikati za sve korisnike u resursnom i šumama naloga mogli bi biti falsifikovani od strane njih, čime bi se prekrila sigurnosna granica šuma.
U multi-forest okruženjima, potrebna je opreznost u vezi sa Enterprise CA koje objavljuju šablone sertifikata koji omogućavaju Authenticated Users ili stranim principima (korisnici/grupe van šume kojoj pripada Enterprise CA) prava upisa i uređivanja. Nakon autentifikacije preko poverenja, Authenticated Users SID se dodaje korisničkom tokenu od strane AD. Tako, ako domen ima Enterprise CA sa šablonom koji omogućava prava upisa za Authenticated Users, šablon bi potencijalno mogao biti upisan od strane korisnika iz druge šume. Slično, ako su prava upisa izričito dodeljena stranom principu putem šablona, time se stvara međusobni odnos kontrole pristupa između šuma, omogućavajući principu iz jedne šume da upisuje šablon iz druge šume.
Oba scenarija dovode do povećanja površine napada od jedne šume do druge. Podešavanja šablona sertifikata mogla bi biti iskorišćena od strane napadača za sticanje dodatnih privilegija u stranoj domeni.