Während Penetration Tests und auch für Angreifer, die das Netzwerk nach potentiellen Angriffszielen durchsuchen, sind Einblicke in die Konfiguration der Zertifizierungsstelle hochinteressant.
Nebst eventuellen Fehlkonfigurationen können Angreifer Informationen über das auf der Zertifizierungsstelle verwendete Policy-Modul erlangen.
Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken, um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.
Welche Zertifizierungsstellen es im Netzwerk gibt, können wir mit der Eingabe von certutil ohne Angabe von Argumenten herausfinden:
certutil

Mit dieser Information können wir uns mit einem weiteren certutil-Befehl die Einstellungen der Zertifizierungsstelle anzeigen lassen:
certutil -v -config "{DNS-Name-CA}\{Common-Name-CA}" -getreg CA

Um die Einstellungen des aktiven Policy Moduls auszulesen kann dieser Befehl verwendet werden:
certutil -v -config "{DNS-Name-CA}\{Common-Name-CA}" -getreg Policy
Hier kann unter Anderem ausgelesen werden, welches Policy Modul eingesetzt wird, und ob auf der Zertifizierungsstelle das hochgefährliche Flag EDITF_ATTRIBUTESUBJECTALTNAME2 gesetzt ist.

Diese Informationen können in der Standardeinstellung von jedem authentifizierten Benutzer im Netzwerk ausgelesen werden.
Eine einfache Methode, das Auslesen der Zertifizierungsstellen-Konfiguration zu unterbinden
Abseits des in Windows integrierten certutil nutzen auch alternative Werkzeuge wie das Penetration-Testing-Tool certipy das ICertAdmin Interface, um an diese Informationen heranzukommen.
Wie wir wissen, ist das ICertAdmin Interface der Zertifizierungsstelle für den täglichen Zertifizierungsstellen-Betrieb nicht erforderlich. Er wird zur Remote-Administration der Zertifizierungsstelle sowie für einige Spezialfälle wie die Installation eines NDES-Servers benötigt.
Bereits im Artikel "Benötigte Firewallregeln für Active Directory Certificate Services" habe ich daher empfohlen, den Zugriff auf diesen Port per Firewall zu unterbinden. Da dieser Port auch für das Dateiserver-Protokoll SMD eingesetzt wird, schließt es somit auch andere Angriffsvektoren (wer erinnert sich noch an WannyCry?).
Die Windows-Firewall hat hierfür eine vordefinierte Regel, die in der Standardeinstellung aktiviert ist. Er kann – da der TCP-Port 445 auch von anderen Diensten (die üblicherweise auf einer Zertifizierungsstelle nichts zu suchen haben) verwendet werden kann – jedoch durch andere Firewallregeln aktiviert sein.
Typischerweise sind dies folgende Firewallregeln:
- Certification Authority Enrollment and Management Protocol (CERTSVC-RPC-NP-IN)
- Remote Service Management (NP-In)
- Netlogon Service (NP-In)
- File and Printer Sharing (SMB-In)
- Remote Event Log Management (NP-In)
- File Server Remote Management (SMB-In)
- File and Printer Sharing (SMB-In)
Mit einem einfachen PowerShell-Befehl können wir alle lokalen Firewallregeln, die den TCP-Port 445 öffnen finden und deaktivieren.
Get-NetFirewallPortFilter | Where-Object {$_.LocalPort -like "445"} | Disable-NetFirewallRule
Noch besser wäre natürlich eine Netzwerk-Firewall vor der Zertifizierungsstelle zu platzieren. Für die lokale Firewall-Konfiguration einer Zertifizierungsstelle sollte eine Gruppenrichtlinie konfiguriert werden, die grundsätzlich alles außer den absolut notwendigen Ports (siehe hier) blockiert.
Rufen wir unseren Befehl erneut aus, werden wir ins Leere laufen.
CertUtil: -getreg command FAILED: 0x80070035 (WIN32: 53 ERROR_BAD_NETPATH)
CertUtil: The network path was not found.

Weitere Möglichkeit zum Auslesen: Remote-Registrierung
Ein weiterer Weg, die Einstellungen der Zertifizierungsstelle auszulesen ist die Remote-Registrierung, welche in der Standardeinstellung auf jedem Windows Server aktiviert ist.
Eine Remote-Abfrage gegen die Einstellungen auf der Zertifizierungsstelle kann wie folgt erfolgen:
reg query "\\{DNS-Name-CA}\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\{Common-Name-CA}"

Dies kann unter Anderem dadurch unterbunden werden, dass der Dienst "Remote-Registrierung" auf der Zertifizierungsstelle deaktiviert und beendet wird.
Get-Service -Name RemoteRegistry | Set-Service -StartupType Disabled
Get-Service -Name RemoteRegistry | Stop-Service
Einschränkungen
Auch wenn kein Zugriff mehr auf das ICertAdmin Interface und Remote-Registrierung besteht, können einige Informationen – wie etwa zum aktiven Policy Modul – noch ausgelesen werden:
certutil -v -config "{DNS-Name-CA}\{Common-Name-CA}" -CAInfo Policy

Vollständige Isolation der Zertifizierungsstelle
Eine Möglichkeit, das Auslesen der Zertifizierungsstellen-Konfiguration noch weiter einzuschränken wäre, sie komplett vom Netzwerk zu isolieren nur über eine Instanz der Zertifikatbeantragungs-Webdienste zugänglich zu machen. Hierdurch handelt man sich aber eine deutlich erhöhte Komplexität der Infrastruktur und weitere Herausforderungen wie Kerberos-Delegierung ein.
Weiterführende Links:
- Benötigte Firewallregeln für Active Directory Certificate Services
- Gefährdung der Active Directory Gesamtstruktur durch das Flag EDITF_ATTRIBUTESUBJECTALTNAME2
- Die Rollenkonfiguration für den Registrierungsdienst für Netzwerkgeräte (NDES) schlägt fehl mit Fehlermeldung "The RPC server is unavailable. 0x800706ba (WIN32: 1722 RPC_S_SERVER_UNAVAILABLE)"
- Grundlagen Zertifikatbeantragung über Certificate Enrollment Web Services (CEP, CES) mit den Protokollen MS-XCEP und MS-WSTEP
Externe Quellen
- ICertAdmin (certadm.h) – Win32 apps | Microsoft Learn
- ly4k/Certipy: Tool for Active Directory Certificate Services enumeration and abuse
- The red teamer’s guide to deception (Vortrag auf der Troopers 24)
- Certiception: The ADCS honeypot we always wanted (Security Research Labs GmbH)
- srlabs/Certiception: An ADCS honeypot to catch attackers in your internal network.
- ADCS Exploitation Part 3: Living Off The Land | by Giulio Pierantoni | Jun, 2025 | Medium