Bei Exchange gibt es das gute alte HealthChecker.ps1 – ein Skript laufen lassen und man weiß, wo man steht. Für Active Directory fragt man sich: Wo ist eigentlich das Äquivalent? Ein frei herunterladbares Microsoft-Einzelskript in dieser Form gibt es nämlich nicht. Microsofts offizielles Pendant ist das AD On-Demand Assessment aus dem Services Hub – super Sache, aber es setzt einen Unified-Support-Vertrag und einen Log-Analytics-Workspace voraus. Beim typischen Mittelstandskunden ist beides selten vorhanden.
Ich stehe bei Kunden öfter vor genau dieser Situation: Man soll mal „drüberschauen“, ob das AD gesund und einigermaßen sicher aufgestellt ist. Also habe ich mir – wieder mit tatkräftiger Unterstützung von Claude – ein eigenes kleines PowerShell-Tool gebaut, das genau das macht. Rein lesend, PS 5.1-kompatibel, keine Installation nötig.
Was das Tool macht
Das Skript sammelt in einem Rutsch die üblichen Verdächtigen ein und wirft am Ende einen HTML-Report aus:
- Health & Betrieb: FSMO-Rollen, DC-Inventar,
dcdiagundrepadmin(nur ausgelesen), Funktionsebenen. - Security & Angriffspfade: privilegierte Gruppen, Kerberoasting- und AS-REP-Kandidaten, Unconstrained Delegation, DCSync-Rechte auf dem Domain-NC, krbtgt-Passwortalter.
- Hygiene & Best Practice: inaktive Konten, „Password never expires“,
PasswordNotRequired, reversible Verschlüsselung, GPP-Passwörter in SYSVOL (MS14-025), LAPS-Ausrollgrad. - Hardening: SMBv1, LDAP-Signing & Channel Binding, LmCompatibilityLevel.
Das Herzstück ist eine Soll/Ist-Tabelle: Für jeden messbaren Punkt zeigt der Report den Ist-Wert neben der Empfehlung, ampelfarben markiert (grün = besser, schwarz = passt, gelb = grenzwertig, rot = Handlungsbedarf) – mitsamt Quellenangabe, worauf sich die Empfehlung stützt (CIS-Benchmark, Microsoft, Defender for Identity). Jedes Finding verlinkt außerdem direkt auf die Liste der betroffenen Konten. So muss man nicht raten, welche fünf Objekte gemeint sind.
Und was ist mit ADxRay?
Berechtigte Frage – denn ein hervorragendes Tool in dieser Richtung gibt es bereits: ADxRay von Claudio Merola. Ein einziges Skript, das einen umfangreichen HTML-Report über Health, Inventar und Security ausspuckt, jede Prüfung schön mit Link zur Microsoft-Doku hinterlegt. Ich kann es uneingeschränkt empfehlen und habe den Code auch gleich mal kurz durchleuchtet: rein lesend, keine versteckten Netzwerkaufrufe außer einem harmlosen Versions-Check, keine Schreibzugriffe aufs AD. Unbedenklich.
Wozu dann noch ein eigenes Tool? Ehrlich gesagt geht es mir gar nicht darum, ADxRay in der Breite nachzubauen. Das Skript soll die Dinge machen, die ich zu 100 % selbst kontrollieren will: eigene Schwellenwerte, eigenes Wording, und vor allem eine quellengestützte Soll/Ist-Darstellung, die ich beim Kunden gerne genau so im Report hätte. Der eigentliche Assessment-Wert entsteht ohnehin erst aus der Kombination: ein bisschen eigenes Skript, dazu Purple Knight (kostenlos, lizenzsauber auch für Kundenaudits) für den Security-Score und ADxRay für das breite Inventar. Kein einzelnes Tool kann alles.
Ein Wort zur Vorgehensweise
Zwei Dinge, die man sich vor dem ersten Lauf auf den Zettel schreiben sollte:
- Alles read-only. Das Tool ändert nichts. Remediation wird dokumentiert und separat geplant, nicht live durchgezogen.
- Das SOC vorwarnen. Ein paar dieser Prüfungen – DCSync-Rechte auslesen, SYSVOL nach GPP-Passwörtern durchsuchen – sehen für ein EDR/SIEM aus wie Enumeration durch einen Angreifer. Also am besten vorher Bescheid geben, sonst gibt’s unnötige Aufregung. Und eine (schriftliche?) Freigabe für den Scope gehört sowieso dazu.
Anmerkung zu den Passwort-Empfehlungen: Die Werte orientieren sich am CIS-Benchmark, aber NIST und CISA gehen inzwischen eher in Richtung Länge/Passphrasen statt erzwungener Komplexität und Rotation. Das ist also ein Richtwert, keine in Stein gemeißelte Wahrheit – je nachdem, welchem Modell ihr folgt.
Ich teste das Ganze gerade in meinem eigenen Lab und werde es noch weiter ausbauen. Wer selbst mal reinschauen mag: Skript liegt in meinem Github. Über Feedback freue ich mich wie immer. 🙂

von