
PowerShell-Toolkit für AD CS-Auditing basierend auf dem PSPKI-Toolkit.
PowerShell-Toolkit zur Überwachung von Active Directory Certificate Services (AD CS).
Es basiert auf dem PKISolution PSPKI-Toolkit (Microsoft Public License). Dieses Repository enthält eine neuere Version von PSPKI als die in der PSGallery verfügbare (siehe das PSPKI-Verzeichnis). Vadims Podans (der Schöpfer von PSPKI) hat diese Version freundlicherweise zur Verfügung gestellt, da sie Patches für mehrere Fehler enthält.
Dieses README dient nur als Ausgangspunkt – vollständige Details und Abwehrhinweise finden Sie im Whitepaper "Certified Pre-Owned".
Das Modul enthält die folgenden Hauptfunktionen:
WARNUNG: Dieser Code ist Beta! Wir sind zuversichtlich, dass Invoke-PKIAudit die Umgebung nicht beeinträchtigt, da die abgefragte Datenmenge recht begrenzt ist. Wir haben keine gründlichen Tests mit Get-CertRequest gegenüber typischen CA-Server-Workloads durchgeführt. Get-CertRequest fragt die CA-Datenbank direkt ab und muss möglicherweise Tausende von Ergebnissen verarbeiten, was die Leistung beeinträchtigen könnte.
WENN ES KEINE ERGEBNISSE GIBT, IST DIES KEINE GARANTIE, DASS IHRE UMGEBUNG SICHER IST!!
WIR KÖNNEN AUCH NICHT GARANTIEREN, DASS UNSERE ENTSCHÄRFUNGSEMPFEHLUNGEN IHRE UMGEBUNG SICHER MACHEN ODER DEN BETRIEB NICHT BEHINDERN!
Es liegt in Ihrer Verantwortung, mit Ihrem Active Directory/PKI/Architektur-Team zu sprechen, um die besten Gegenmaßnahmen für Ihre Umgebung zu ermitteln.
Wenn der Code kaputt geht oder wir etwas übersehen haben, reichen Sie bitte ein Issue oder einen Pull-Request für eine Korrektur ein!
Installieren Sie die folgenden Komponenten auf einem Windows-Computer mit einer erhöhten PowerShell-Eingabeaufforderung (PowerShell-Version 5.1 oder höher):
* Das [PSPKI PowerShell-Modul](https://github.com/PKISolutions/PSPKI). Installieren Sie mit dem folgenden Befehl:```
Install-Module -Name PSPKI
Laden Sie das Modul herunter und extrahieren Sie es in einen Ordner. Importieren Sie dann das Modul mit den folgenden Befehlen:``` cd PSPKIAudit Get-ChildItem -Recurse | Unblock-File
Import-Module .\PSPKIAudit.psd1
# Prüfung von AD CS-Fehlkonfigurationen
Wenn Sie `Invoke-PKIAudit` ausführen, werden alle Überprüfungen gegen AD CS in der aktuellen Domäne durchgeführt, einschließlich der Aufzählung verschiedener Zertifizierungsstellen- und Zertifikatvorlageneinstellungen. Um eine bestimmte Zertifizierungsstelle zu prüfen, können Sie `Invoke-PKIAudit -CAComputerName CA.DOMAIN.COM` oder `Invoke-PKIAudit -CAName X-Y-Z` ausführen.
Alle Fehlkonfigurationen (ESC1-8) werden als Eigenschaften der angezeigten CA-/Vorlagenergebnisse angezeigt, um die spezifische gefundene Fehlkonfiguration zu identifizieren.
Wenn Sie die Gruppen/Benutzer ändern möchten, die zum Testen der Registrierung/Zugriffskontrolle verwendet werden, ändern Sie den `$CommonLowprivPrincipals`-Regex am Anfang von `Invoke-PKIAudit.ps1`.
Wenn Sie alle CA-Informationen in eine CSV-Datei exportieren möchten, führen Sie Folgendes aus: `Get-AuditCertificateAuthority [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation CAs.csv`
Wenn Sie ALLE veröffentlichten Vorlageninformationen in eine CSV-Datei exportieren möchten (nicht nur anfällige Vorlagen), führen Sie Folgendes aus: `Get-AuditCertificateTemplate [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation templates.csv`
## Erläuterung der Ausgabe
Es gibt zwei Hauptabschnitte der Ausgabe: Details zu entdeckten Zertifizierungsstellen und Details zu potenziell anfälligen Vorlagen.
Für Ergebnisse der Zertifizierungsstelle:
| Certificate Authority Property | Description |
| ------------------------------ | ------------------------------------------------------------------ |
| ComputerName | Der Rechner, auf dem die Zertifizierungsstelle läuft. |
| CAName | Der Name der Zertifizierungsstelle. |
| ConfigString | Die vollständige Konfigurationszeichenfolge COMPUTER\CA_NAME. |
| IsRoot | Gibt an, ob es sich um eine Stammzertifizierungsstelle handelt. |
| AllowsUserSuppliedSans | Gibt an, ob die Zertifizierungsstelle das Flag `EDITF_ATTRIBUTESUBJECTALTNAME2` gesetzt hat. |
| VulnerableACL | Gibt an, ob die Zertifizierungsstelle eine anfällige ACL-Einstellung hat. |
| EnrollmentPrincipals | Sicherheitsprinzipale, die auf CA-Ebene über das `Enroll`-Privileg verfügen. |
| EnrollmentEndpoints | Die Webdienst-Registrierungsendpunkte der Zertifizierungsstelle. |
| NTLMEnrollmentEndpoints | Die Webdienst-Registrierungsendpunkte der Zertifizierungsstelle, bei denen NTLM aktiviert ist. |
| DACL | Die vollständigen Zugriffskontrollinformationen. |
| Misconfigurations | ESCX, das die spezifische vorhandene Fehlkonfiguration angibt (falls vorhanden). |
Für Ergebnisse der Zertifikatsvorlage: