Incompetent Basterd
Home / De Command Library / AD CS Attacks adcs_

AD CS Attacks adcs_

6. AD CS Attacks adcs_

Active Directory Certificate Services: het PKI-systeem dat niemand begrijpt en iedereen heeft geïnstalleerd omdat “het erbij zat.” Dat is ook de reden waarom de meeste mensen een fitness-app op hun telefoon hebben.
BestandWat het doet
adcs_enumCertificaat-templates enumereren met Certify en Certipy. Welke templates zijn kwetsbaar? Wie mag er certificaten aanvragen? Meestal iedereen. Dat is het probleem.
adcs_esc1ESC1: een template die client authentication toestaat én je een alternatieve SAN laat opgeven. Vraag een certificaat aan als Domain Admin. Klaar. Het is zó eenvoudig dat je je afvraagt waarom het niet standaard geblokkeerd is. Het antwoord is: backwards compatibility. De twee meest gevaarlijke woorden in IT.
adcs_esc2ESC2: template met “Any Purpose” EKU of helemaal geen EKU. Het certificaat mag alles. Inclusief client authentication. Inclusief dingen waar de ontwerper niet aan dacht. Inclusief dingen waar niemand aan dacht. Dat is het probleem met “Any Purpose”: het meent het.
adcs_esc3ESC3: enrollment agents misbruiken om namens iemand anders certificaten aan te vragen. Je bent niet jezelf vandaag. Je bent de Domain Admin.
adcs_esc4ESC4: je hebt WRITE-rechten op een certificate template in AD. Dat betekent dat je de template kunt aanpassen. Naar een ESC1-configuratie. In twee commando’s. Certipy doet het automatisch en slaat zelfs de oude config op voor rollback. Het is bijna beleefd.
adcs_esc5ESC5: WRITE-rechten op PKI-objecten buiten de templates — het CA-object, NTAuthCertificates, de Enrollment Services container. Het is alsof je de sleutel niet van het slot hebt maar van het gebouw waar het slot in hangt.
adcs_esc6ESC6: de EDITF_ATTRIBUTESUBJECTALTNAME2 flag staat aan op de CA. Elke certificaataanvraag kan een willekeurige SAN bevatten. Het is een all-you-can-eat buffet van identiteitsfraude.
adcs_esc7ESC7: ManageCA of ManageCertificates rechten op de CA. Je kunt denied requests goedkeuren. Of de SubCA-template activeren. Of jezelf Officer-rechten geven. Het is de sleutelbos van de conciërge, en de conciërge is op vakantie.
adcs_esc8ESC8: NTLM relay naar het HTTP enrollment endpoint van de CA. Trigger PetitPotam, relay het DC machine-account, vraag een certificaat aan, DCSync. Vier stappen. Vijf minuten. Domain Admin. Het is de reden waarom EPA bestaat. En de reden waarom EPA bijna nooit aanstaat.
adcs_esc9ESC9: de CT_FLAG_NO_SECURITY_EXTENSION flag op een template. In combinatie met GenericWrite op een account en StrongCertificateBindingEnforcement ≠ 2 kun je de UPN swappen en authenticeren als iemand anders. Het is subtiel. Het is effectief. Het is de reden waarom KB5014754 bestaat.
adcs_esc10ESC10: zwakke certificate mappings. Twee varianten, afhankelijk van of StrongCertificateBindingEnforcement of CertificateMappingMethods de schuldige is. Het resultaat is hetzelfde: UPN mapping laat je authenticeren als een ander account. Het verschil is welke registry key je de schuld geeft.
adcs_esc11ESC11: NTLM relay naar de RPC-interface van de CA in plaats van HTTP. Voor als ESC8 niet werkt omdat het HTTP-endpoint uit staat. De RPC-interface staat bijna altijd aan. Want RPC staat altijd aan. Dat is het probleem met RPC. Het staat altijd aan.
adcs_esc12ESC12: je hebt shell-toegang tot de CA-server zelf. Exporteer de CA private key, gebruik ForgeCert of Certipy om Golden Certificates te maken. Het is het PKI-equivalent van een Golden Ticket — maar het overleeft wachtwoordresets. Vereist fysieke/RDP/shell toegang tot de CA. Niet remote exploitable. Maar als je er al op staat, is het game over.
adcs_esc13ESC13: een issuance policy OID gekoppeld aan een AD-groep via msDS-OIDToGroupLink. Vraag een certificaat aan met die policy en de DC voegt de groep toe aan je PAC. Effectief groepslidmaatschap via enrollment. Het is alsof je lid wordt van een club door een formulier in te vullen. Zonder dat iemand controleert of je welkom bent.
adcs_esc14ESC14: zwakke explicit certificate mappings via altSecurityIdentities. Met GenericWrite op een account kun je de mapping manipuleren zodat jouw certificaat aan een ander account wordt gekoppeld. Het is de meest recente ESC-variant en de reden waarom Microsoft full enforcement mode duwt.
adcs_esc15ESC15: Schema v1 templates met EKU-override. De template zegt één ding, het certificaat doet iets anders. Het is het digitale equivalent van een contract met kleine lettertjes — behalve dat jij de kleine lettertjes schrijft.
adcs_esc16ESC16: CA-level no security extension. Het certificaat mist de beveiligingsextensie die het zou moeten hebben. Alsof je een rijbewijs uitgeeft zonder foto. Het is technisch geldig. Het is praktisch een ramp.

Op de hoogte blijven?

Ontvang maandelijks cybersecurity-inzichten in je inbox.

← De Command Library ← Home

Klaar voor de volgende stap?

Praat over je beveiliging.

Een vrijblijvend gesprek van 30 minuten — geen sales, alleen technische sparring.

Plan een gesprek →