Tags: Active Directory, Sicherheit, PowerShell
Da es sich beim Active Directory um eine kritische Komponente der IT-Infrastruktur handelt, ist es geboten, dieses laufend auf Abweichungen von einer wünschenswerten Konfiguration und auf Schwachstellen zu prüfen. Wenn man dafür keine kommerzielle Lösung anschaffen will, kann man auch bewährte PowerShell-Scripts zurückgreifen.
Neben der Beseitigung offensichtlicher Fehlkonfigurationen geht es bei der Wartung des Active Directory vor allem darum, die durch den täglichen Betrieb verursachten Erosionen des gewünschten Zustands zu entdecken bzw. zu korrigieren.
Unsichere Konten entdecken
Dazu gehören offensichtliche Aufgaben wie das Ausmustern inaktiver Konten und von solchen, die kein Passwort benötigen. Elementar ist natürlich auch das Überprüfen von administrativen Gruppen auf Mitglieder, die dort nichts verloren haben.
Des Weiteren sollte Admins regelmäßig sicherstellen, dass OUs gegen das versehentliche Löschen geschützt sind. Wenn sich Accounts im Container Users oder Computers befinden, dann greifen bei ihnen keine GPOs, was wahrscheinlich zu unerwünschten Ergebnissen führt.
Kerberos-Konfiguration
Problematisch ist zudem eine unsichere Kerberos-Delegierung, die sich wie vieles andere mit einem einzigen Kommando finden lässt (PrimaryGroupID '516' und '521' schließt Domänen-Controller aus):
Get-ADComputer -Filter { (TrustedForDelegation -eq $True) `
-AND (PrimaryGroupID -ne '516') -AND (PrimaryGroupID -ne '521') }
Nach einem ähnlichen Muster kann man alle Konten mit einer schwachen Kerberos-Verschlüsselung finden oder die Domain Password Policy untersuchen.
Vorgefertigte PowerShell-Scripts
Angesichts der Fülle an Checks ist der manuelle Aufruf einzelner PowerShell-Kommandos nicht zielführend. Für einige Aufgaben des AD-Monitorings bieten sich kostenlose Tools an, aber diese decken nicht die ganze Bandbreite der Überprüfungen ab.
Stattdessen bieten sich vorgefertigte PowerShell-Scripts an, die viele Tests durchführen und die sich bei Bedarf anpassen lassen.
ADChecks
Eines davon stammt vom Microsoft-Mitarbeiter Paul Harrison und ist für die Ausführung einmal pro Monat gedacht. Es erzeugt einen Report im HTML-Format. Der Script-Code findet sich auf GitHub, eine Beschreibung der Checks liefert der Autor in diesem Blog-Beitrag.
AD-Security-Assessment
Weniger als Alternative denn als Ergänzung dazu lässt sich AD-Security-Assessment einsetzen, denn seine Prüfungen überlappen sich kaum mit jenen von Harrisons Script. Eine Beschreibung steuert auch dieser Autor in Form eines Blog-Beitrags bei.
PSADHealth
Wiederum einen anderen Schwerpunkt setzt PSADHealth, das als Modul vorliegt und eine ganze Reihe von Scripts umfasst. Es lässt sich sehr einfach über PowerShellGet installieren.
Es prüft unter anderem den verfügbaren Plattenplatz auf DCs, die Replikation von Objekten, die Verfügbarkeit von DCs, die Zeitsynchronisierung mit externen Quellen oder SRV-Einträge im DNS. Die Autoren dokumentieren das Modul im GitHub-Wiki.
Fazit
Anstatt das Active Directory mit sporadischen Befehlen auf bestimmte Schwachstellen zu prüfen, kann man die drei hier erwähnten Scripts verwenden. Aufgrund ihrer geringen Funktionsüberlappungen ergänzen sie sich gegenseitig und decken ein breites Spektrum an Checks ab.
Bevor man sie auf das eigene Active Directory loslässt, empfiehlt sich natürlich ein Blick in den Code und eine eventuell notwendige Anpassung an die eigene Umgebung.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Split-brain DNS in Active Directory einrichten
- AD-Konten mit DES- und RC4-Algorithmus für Kerberos-Verschlüsselung finden
- UserAccountControl: Sicherheitseinstellungen für AD-Konten prüfen und ändern
- Gruppen in Azure Active Directory mit PowerShell verwalten
- Wann haben Benutzer zuletzt ihr Passwort im Active Directory geändert?
Weitere Links
4 Kommentare
Hallo Wolfgang, danke für den hilfreichen Artikel! Sehr empfehlenswert finde ich das kostenfreie Tool Purple Knight, welches on-premises und Azure AD unter die Lupe nimmt.
Hallo Karl, danke für den Tipp, schaue ich mir an!
In dieselbe Richtung wie Purple Knight geht auch Ping Castle (https://www.pingcastle.com/): absolut empfehlenswert!
Stimme zu, definitiv ein Tool, das man sich anschauen sollte. Wir haben vor einiger Zeit zu PingCastle etwas geschrieben.