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.
Beispielsweise können wir uns mit folgendem 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.
Einfache Methode, das Auslesen 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.
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.
Rufen wir unseren Befehl erneut aus, werden die ins Leere laufen.
CertUtil: -getreg command FAILED: 0x80070035 (WIN32: 53 ERROR_BAD_NETPATH)
CertUtil: The network path was not found.

Einschränkungen
Auch wenn kein Zugriff mehr auf das ICertAdmin Interface 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

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)"
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