physar / Active Directory / Certificate Services & PKI (AD CS)

Certificate Services & PKI (AD CS)

Die Active-Directory-PKI als Verteidiger verstehen und sicher betreiben: zweistufige Hierarchie mit Offline-Root, Certificate Templates und Enroll-Rechte, EKU-Wirkung, Herkunft von Subject/SAN, die Fehlkonfig-Klassen ESC1 und ESC8, Härtung, CRL-/Revocation-Abhängigkeit und der Blast-Radius eines kompromittierten CA-Schlüssels.

Certificate Services & PKI: Vertrauensanker, Templates, EKU und die ESC-Fehlkonfigurationen

Einführung · 8 Abschnitte · ~9 Min Lesezeit · Stand

Wozu eine PKI in AD — und warum sie Tier-0 ist

Active Directory Certificate Services (AD CS) ist die interne Public-Key-Infrastruktur der Domäne. Sie stellt Zertifikate aus, mit denen sich Nutzer und Maschinen authentifizieren (Smartcard-/PKINIT-Logon, 802.1x, VPN, LDAPS, Code Signing). Ein Zertifikat ist damit ein zweiter Weg, eine Identität zu beweisen — neben dem Passwort.

Der entscheidende Punkt für die Sicherheit: Eine Enterprise-CA wird beim Setup in den NTAuth-Store der Domäne eingetragen. Jedes Zertifikat, das an eine dieser CAs zurückkettet und eine Authentifizierungs-EKU trägt, wird von Domain Controllern als gültiger Logon-Nachweis akzeptiert. Wer also unkontrolliert Client-Auth-Zertifikate ausstellen kann, kann sich als beliebige Identität anmelden — ganz ohne deren Passwort.

Zweistufig: Offline-Root und Online-Issuing

Die verbreitete Praxis ist eine zweistufige Hierarchie: eine Root-CA, die den Vertrauensanker signiert, und darunter eine oder mehrere Issuing-CAs, die den Tagesbetrieb erledigen. Der Grund ist Blast-Radius-Kontrolle:

**Root-CA**Signiert nur die untergeordneten CA-Zertifikate — selten, mit langer Laufzeit. Wird als standalone aufgesetzt und danach offline gehalten (heruntergefahren/getrennt). Nicht domänengejoint, kein Netz. Ihr privater Schlüssel ist das höchste Gut.
**Issuing-CA (Enterprise, online)**Domänengejoint, stellt die Massenzertifikate für Nutzer/Maschinen aus, kennt Templates und Autoenrollment. Wird sie kompromittiert, kann man sie widerrufen und über die Root neu ausstellen, ohne den Vertrauensanker zu verlieren.

Eine einstufige PKI (Root = Issuing, online, domänengejoint) spart Aufwand, koppelt aber den Vertrauensanker an die Angriffsfläche des Tagesbetriebs: Wird diese eine CA kompromittiert, ist der Anker selbst verloren — Recovery heißt dann, die gesamte PKI neu aufzubauen und überall neu zu verteilen.

Kurzcheck

Warum hält man die Root-CA offline und lässt eine separate Issuing-CA den Betrieb machen?

  • Damit eine Kompromittierung der Betriebs-CA widerrufen und über den weiterhin vertrauenswürdigen Anker neu ausgestellt werden kann.
  • Weil eine Offline-Root Zertifikate schneller ausstellt als eine Online-CA.
  • Weil nur eine Offline-Root Zertifikate für Smartcard-Logon ausstellen darf.

Genau. Die Trennung begrenzt den Blast-Radius: Der seltene, offline gehaltene Schlüssel bleibt geschützt, während die exponierte Issuing-CA ersetzbar bleibt.

Certificate Templates: die Blaupause der Ausstellung

Eine Enterprise-CA stellt nichts frei Hand aus — sie folgt Certificate Templates. Ein Template legt fest: welche EKU das Zertifikat trägt, wer es beantragen darf, wer Subject/SAN liefert und ob ein Mensch die Ausstellung genehmigen muss. Wer das Template (bzw. dessen ACL) kontrolliert, kontrolliert damit was ausgestellt wird.

**Enroll**Recht, ein Zertifikat aus diesem Template aktiv zu beantragen. Sollte auf die Gruppe begrenzt sein, die es fachlich braucht — nicht Domain Users oder Authenticated Users für Auth-Templates.
**Autoenroll**Zusätzlich zu Enroll: Clients ziehen das Zertifikat automatisch und lautlos per Gruppenrichtlinie. Bequem für Flottenrollout, aber es verteilt ein gefährliches Template ohne jede menschliche Zwischenkontrolle an die gesamte Zielpopulation.
**Write/FullControl auf das Template**Wer die Template-Konfiguration ändern darf, kann Flags, EKU und Enroll-Rechte umschreiben — also ein harmloses Template in ein gefährliches verwandeln. Dieses Recht gehört ausschließlich zu Tier-0-PKI-Administratoren.

EKU: wofür ein Zertifikat überhaupt gilt

Die Extended Key Usage (EKU) ist die Liste der Zwecke, für die ein Zertifikat gültig ist. Sie ist die eigentliche „Vollmacht“ des Zertifikats. Für die Sicherheit zählt vor allem, ob eine EKU die Authentifizierung gegen AD erlaubt:

**Client Authentication** (`1.3.6.1.5.5.7.3.2`)Erlaubt, sich mit dem Zertifikat als Client zu authentifizieren (u. a. PKINIT/Kerberos, LDAPS-Clientauth). Reicht für Identitätsübernahme, wenn der Antragsteller den Namen im Zertifikat bestimmen kann.
**Smart Card Logon** (`1.3.6.1.4.1.311.20.2.2`)Ebenfalls eine Authentifizierungs-EKU — für interaktives Smartcard-/PKINIT-Logon. Aus Angreifersicht gleich brisant wie Client Authentication.
**Any Purpose / keine EKU**„Any Purpose“ oder ein fehlendes EKU-Feld (SubCA) machen das Zertifikat für jeden Zweck nutzbar — inklusive Auth. Am gefährlichsten, weil unbegrenzt.
**Server Authentication, Encrypting File System, …**Zwecke ohne Client-Auth. Ein reines Server-Auth-Zertifikat erlaubt keine Anmeldung als Nutzer — die EKU begrenzt die Vollmacht.

Wer liefert Subject und SAN?

Ein Auth-Zertifikat sagt: „Ich bin dieser Principal.“ Welcher Principal das ist, steht im Subject bzw. im Subject Alternative Name (SAN) — bei AD-Auth meist der UPN. Entscheidend ist, wer diesen Namen setzt:

  • Von der CA aus AD gebaut (Default und sicher): Die CA setzt Subject/SAN anhand des authentifizierten Antragstellers aus dem Verzeichnis. Man kann nur ein Zertifikat für sich selbst bekommen.
  • Vom Antragsteller geliefert (`ENROLLEE_SUPPLIES_SUBJECT`): Das Template erlaubt, dass der Antragsteller Subject/SAN frei angibt (im Template-Dialog „Angabe in der Anforderung“). Damit kann jemand einen fremden UPN eintragen — z. B. den eines Domain Admins.

Kurzcheck

Ein Template hat die Client-Authentication-EKU und erlaubt dem Antragsteller, den SAN selbst zu setzen; Enroll ist für `Domain Users` offen. Was ist das Kernproblem?

  • Jeder Domänennutzer kann ein Auth-Zertifikat auf einen fremden Principal (z. B. Domain Admin) ausstellen und sich damit als dieser anmelden.
  • Nichts Kritisches — die CA prüft beim Logon ohnehin das Passwort des Ziel-Accounts.
  • Nur ein Verfügbarkeitsproblem, weil zu viele Nutzer gleichzeitig enrollen.

Richtig. Auth-EKU plus selbst gelieferter SAN plus breite Enroll-Rechte ergibt Identitätsübernahme — das ist die ESC1-Klasse.

Fehlkonfig-Klassen: ESC1 und ESC8 als Prinzip

Die bekannten AD-CS-Eskalationen (in der Forschung als ESCx nummeriert) sind keine Exploits in einer Software-Version, sondern Klassen von Fehlkonfigurationen. Zwei sind das Fundament:

  • ESC1 — antragstellergelieferter SAN auf einem Auth-Template. Ein Template erfüllt gleichzeitig: (1) niedrig privilegierte Enroll-Rechte, (2) eine Auth-EKU (Client Auth / Smart Card Logon / PKINIT / Any Purpose), (3) ENROLLEE_SUPPLIES_SUBJECT, (4) keine Manager-Genehmigung und (5) keine geforderte autorisierte Signatur. Ergebnis: jeder berechtigte Antragsteller stellt sich ein Zertifikat für einen beliebigen Principal aus. Die Abwehr sitzt an jeder dieser Bedingungen — am wirksamsten daran, den selbst gelieferten SAN abzuschalten und Auth-EKUs nur an enge Gruppen zu vergeben.
  • ESC8 — NTLM-Relay auf die Web-Enrollment-Endpunkte. Die HTTP-basierten Enrollment-Schnittstellen (Web Enrollment certsrv, Certificate Enrollment Web Service) akzeptieren standardmäßig NTLM und sind nicht gegen Relay geschützt. Ein Angreifer zwingt ein privilegiertes Maschinenkonto (etwa einen DC) zur Authentifizierung (Coercion) und relayt diese an den HTTP-Endpunkt, um ein Zertifikat für den DC zu erhalten. Die Abwehr sitzt am Kanal: Extended Protection for Authentication (EPA/Channel Binding) erzwingen, HTTPS verlangen, NTLM unterbinden — oder Web-Enrollment ganz entfernen, wenn ungenutzt.

Härten, Widerruf und der CA-Schlüssel

Härten heißt: die Ausstellungs-Vollmacht auf das Nötige verengen. Die wirksamsten Hebel, grob nach Wirkung:

  • ENROLLEE_SUPPLIES_SUBJECT auf Auth-Templates abschalten (CA baut Subject/SAN aus AD).
  • Enroll-Rechte kürzen — keine Domain Users/Authenticated Users auf Auth-Templates; Autoenroll nur, wo bewusst gewollt.
  • Manager-Genehmigung für sensible Templates erzwingen (menschliches Gate).
  • Gefährliche/unnötige EKUs entfernen; keine „Any Purpose“-Templates für breite Gruppen.
  • Ungenutzte Auth-Templates ganz von der CA nehmen (unpublish) — was niemand braucht, ist reine Ausstellungsfläche und wird durch eine spätere Fehländerung zum Pfad.
  • Für die HTTP-Enrollment-Endpunkte EPA + HTTPS erzwingen und NTLM unterbinden.

Revocation ist die Notbremse — aber nur so gut wie ihre Erreichbarkeit. Ein Zertifikat gilt als gültig, solange die prüfende Gegenstelle keinen Widerruf sieht. Ein Widerruf wirkt erst, wenn eine aktualisierte CRL (oder OCSP-Antwort) veröffentlicht und erreichbar ist und die Gegenstelle sie prüft; zwischengespeicherte CRLs gelten bis zu ihrem Ablauf weiter. Wichtig: Der AD-CS-Online Responder (OCSP) leitet seine Antwort in der Standardkonfiguration aus derselben CRL ab — er ist damit nicht automatisch aktueller als die CRL, nur feiner abrufbar. Kehrseite: Ist der CRL Distribution Point (CDP) unerreichbar und prüft die Gegenstelle „hart“, schlägt jede Validierung fehl — ein klassischer, flächiger Ausfall (TLS, Logon), ganz ohne Angreifer.

Zusammenfassung — gleich im Check

Die Achsen dieses Moduls: zweistufige Hierarchie (Offline-Root/Online-Issuing) und die CA als Tier-0-Vertrauensanker; Templates (Enroll vs. Autoenroll, wer darf ändern); EKU (welche Zwecke Auth erlauben); Herkunft von Subject/SAN; die Fehlkonfig-Klassen ESC1 und ESC8; Härtung, Revocation/CRL-Abhängigkeit und der Blast-Radius des CA-Schlüssels.

Gelesen ist nicht geprüft: Im Modul entscheidest du die Fälle selbst und siehst danach, wo dein Urteil trägt.

15 Checks starten →

Modul-Aufbau

EINFÜHRUNGCertificate Services & PKI: Vertrauensanker, Templates, EKU und die ESC-Fehlkonfigurationen~9 Min
ADR-001PKI-HIERARCHYeinstieg
ADR-002PKI-HIERARCHYsolide
ADR-003EKUeinstieg
ADR-004EKUsenior
ADR-005CERT-TEMPLATEsenior
ADR-006CERT-TEMPLATEsenior
ADR-007CERT-ENROLLMENTsenior
ADR-008CERT-HARDENINGsolide
CONFIG-009MISSION · ESC1principal
ADR-010ESC8principal
ADR-011CERT-HARDENINGsenior
ADR-012REVOCATIONsenior
ADR-013REVOCATIONsolide
ADR-014CA-KEY-PROTECTprincipal
ADR-015CA-KEY-PROTECTprincipal

Quellen

  1. 01Microsoft Learn — Active Directory Certificate Services (AD CS) Overview / Design (Two-Tier-Hierarchie, Offline-Root)
  2. 02Microsoft Learn — Certificate Templates: Berechtigungen (Enroll/Autoenroll) und Subject-Name-Optionen
  3. 03Microsoft Learn — NTAuth-Store und zertifikatbasierte Anmeldung (PKINIT/Smartcard)
  4. 04SpecterOps — „Certified Pre-Owned: Abusing Active Directory Certificate Services“ (Schroeder/Christensen): ESC1- und ESC8-Fehlkonfigurationsklassen
  5. 05Microsoft Learn — Extended Protection for Authentication (Channel Binding) für Web Enrollment / CES
  6. 06Microsoft Learn — NTAuth-Store und zertifikatbasierte Anmeldung
  7. 07SpecterOps — „Certified Pre-Owned: Abusing Active Directory Certificate Services“ (CA als Tier-0)
  8. 08Microsoft Learn — AD CS Design: Two-Tier-Hierarchie und Offline-Root-CA
  9. 09Microsoft Learn — Standalone- vs. Enterprise-CA
  10. 10Microsoft Learn — Extended Key Usage und zertifikatbasierte Anmeldung
  11. 11SpecterOps — „Certified Pre-Owned“: Authentifizierungs-EKUs als Voraussetzung der Template-Eskalation
  12. 12Microsoft Learn — Certificate Templates: Application Policies / Extended Key Usage
  13. 13SpecterOps — „Certified Pre-Owned“: Any-Purpose- und fehlende EKUs als Auth-Vektor
  14. 14Microsoft Learn — Certificate Templates: Enroll- und Autoenroll-Berechtigungen; Autoenrollment per Gruppenrichtlinie
  15. 15SpecterOps — „Certified Pre-Owned“: Enrollment-Rechte als Voraussetzung von Template-Eskalationen
  16. 16Microsoft Learn — Certificate Templates: Berechtigungen auf dem Template-Objekt (Write/FullControl)
  17. 17SpecterOps — „Certified Pre-Owned“: Kontrolle über Template-Objekte als Eskalationsklasse
  18. 18Microsoft Learn — Certificate Templates: Subject Name („Build from AD“ vs. „Supply in the request“ / ENROLLEE_SUPPLIES_SUBJECT)
  19. 19SpecterOps — „Certified Pre-Owned“: ESC1 (antragstellergelieferter SAN auf Auth-Template)
  20. 20Microsoft Learn — Certificate Templates auf einer Enterprise-CA veröffentlichen und entfernen (Ausstellungsfläche verwalten)
  21. 21SpecterOps — „Certified Pre-Owned“: Reduktion der ESC-Angriffsfläche (ungenutzte bzw. gefährliche Templates entfernen)
  22. 22SpecterOps — „Certified Pre-Owned: Abusing Active Directory Certificate Services“: ESC1-Bedingungen
  23. 23Microsoft Learn — Certificate Templates: Subject Name, Issuance Requirements und Berechtigungen
  24. 24SpecterOps — „Certified Pre-Owned“: ESC8 (NTLM-Relay auf AD-CS-Web-Enrollment)
  25. 25Microsoft Learn — Extended Protection for Authentication (Channel Binding) und Mitigation von NTLM-Relay auf HTTP-Endpunkte
  26. 26SpecterOps — „Certified Pre-Owned“: Priorisierung der ESC-Klassen nach Ausnutzbarkeit
  27. 27Microsoft Learn — AD CS Sicherheits- und Härtungsempfehlungen
  28. 28Microsoft Learn — CRL Distribution Points (CDP), OCSP und Revocation-Prüfung
  29. 29Microsoft Learn — AD CS: Verfügbarkeit der Revocation-Infrastruktur planen
  30. 30Microsoft Learn — Certificate Revocation: CRL-Veröffentlichung, Gültigkeitsdauer und manuelles Publizieren
  31. 31Microsoft Learn — OCSP-Responder und Abhängigkeit von der CRL
  32. 32Microsoft Learn — CA-Schlüsselspeicher: KSP, HSM und Schutz des privaten Schlüssels
  33. 33SpecterOps — „Certified Pre-Owned“: Diebstahl des CA-Schlüssels („Golden Certificate“) als Blast-Radius
  34. 34SpecterOps — „Certified Pre-Owned“: Kompromittierung des CA-Schlüssels und Golden Certificate
  35. 35Microsoft Learn — AD CS: Wiederherstellung/Ersatz einer kompromittierten CA und Vertrauensverwaltung

Verfasst von Julian Zentgraf