Security- und Health-Checks für Active Directory mit PowerShell-Scripts


    Tags: , ,

    Active Directory PowerShellDa es sich beim Active Directory um eine kritische Kompo­nente der IT-Infrastruktur handelt, ist es geboten, dieses laufend auf Abwei­chungen von einer wünschens­werten Konfi­guration und auf Schwach­stellen zu prüfen. Wenn man dafür keine kommer­zielle Lösung an­schaffen will, kann man auch bewährte PowerShell-Scripts zurück­greifen.

    Neben der Beseitigung offensichtlicher Fehl­konfigurationen 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 unter­suchen.

    Einstellungen der Default Domain Policy  ausgeben mit Get-ADDefaultDomainPasswordPolicy

    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

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    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.

    Bild von Wolfgang Sommergut

    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!

    Bild von Wolfgang Sommergut

    Stimme zu, definitiv ein Tool, das man sich anschauen sollte. Wir haben vor einiger Zeit  zu PingCastle etwas geschrieben.