Kompromittierte Passwörter im Active Directory finden mit Have I Been Pwned

    RansomwareNachdem die Anmeldung am AD meistens immer noch über User­name und Pass­wort erfolgt, ist es wichtig, dass sichere Kenn­wörter ver­wendet werden. Viele Pass­wörter wurden jedoch durch Hacker­an­griffe kompro­mittiert und sollten ver­mieden werden. Ob User ein solches ver­­wen­den, kann man mit HaveIBeenPwned.com ermitteln.

    Im Internet kursieren Listen mit Unmengen von gehackten Passwörtern. Sie sind in der Regel frei zugänglich und können von böswilligen Akteuren für Brute-Force-Angriffe verwendet werden.

    Um herauszufinden, ob Benutzer im Active Directory kompromittierte Passwörter verwenden, kann man HaveIBeenPwned.com abfragen. Sie Website enthält eine Datenbank mit hunderten Millionen gestohlenen Passwörtern.

    Um die AD-Passwörter automatisch zu prüfen, muss man allerdings einige Vorbereitungen treffen und benötigt dafür etwas PowerShell-Code. Einfacher geht es mit dem kostenlosen Specops Password Auditor.

    HaveIBeenPwned konsultieren

    Die Website bietet für die interaktive Nutzung ein Formular, in das man ein Passwort zur Überprüfung eingeben kann. Dies ist zum Beispiel hilfreich, wenn man vor der Vergabe oder dem Wechsel eines Kennworts herausfinden möchte, ob dieses bereits kompromittiert wurde.

     Prüfen, ob ein Passwort nach einer Cyberattacke veröffentlicht wurde

    Für Admins, die Kennwörter im Active Directory mit den Listen von HaveIBeenPwned abgleichen wollen, ist diese Funktion indes wertlos, weil die AD-Passwörter bekanntlich als Hash gespeichert werden.

    API-Funktion aufrufen

    Für diese Aufgabe bietet die Website jedoch ein API, dem man die ersten fünf Zeichen des Hashes übergibt. Als Ergebnis erhält man alle Hashes aus der Datenbank, die mit dieser Zeichenfolge beginnen, aber gekürzt um die ersten fünf Zeichen.

    Für den Hash

    198ffc97717b69d5b8227a1dde33bada

    würde man die Funktion so aufrufen:

    https://api.pwnedpasswords.com/range/198ff?mode=ntlm

    In der Antwort wäre dann "c97717b69d5b8227a1dde33bada" enthalten, falls es sich um ein kompromittiertes Passwort handelt.

    Hashes aus dem AD auslesen

    Die erste Hürde besteht darin, dass man weder mit den GUI-Bordmitteln noch mit dem PowerShell-Modul für Active Directory an die gespeicherten Passwort-Hashes herankommt. Einige Anleitungen empfehlen zu diesem Zweck das Anlegen eines Datenbank-Dumps mit Hilfe einer Schattenkopie.

    Eine elegantere Variante bietet sich mit dem PowerShell-Modul DSInternals. Es enthält das Cmdlet Get-ADReplAccount, das ein Replikat der AD-Datenbank über MS-DRSR erzeugt. Daher muss man es mit den Credentials eines Kontos aufrufen, das sie entsprechenden Replikationsrechte hat.

    DSInternals installieren und Replikations-User konfigurieren

    Im ersten Schritt installiert man DSInternals:

    Install-Module DSInternals

    Anschließend stattet man den User, den man für diese Aufgabe verwenden möchte, mit den erforderlichen Berechtigungen aus. Grundsätzlich könnte man dazu auch einen Domänen-Admin verwenden, aber das empfiehlt sich in produktiven Umgebungen nicht.

    Für diese Aufgabe öffnet man in AD-Benutzer und -Computer die Eigenschaften aus dem Kontextmenü der Domäne und wechselt zur Registerkarte Sicherheit.

    Dort erteilt man dem gewünschten Benutzer oder der betreffenden Gruppe die Berechtigungen Alle Verzeichnis­änderungen replizieren ("Replicating Directory Changes All") und Verzeichnis­änderungen replizieren ("Replicating Directory Changes").

    Berechtigungen für Benutzer vergeben, der die Passwort-Hashes auslesen soll

    Nun kann man den Passwort-Hash für ein Konto abrufen und die ersten fünf Zeichen an die API-Funktion von HaveIBeenPwned übergeben.

    Dazu muss man jedoch eine weitere Hürde nehmen, weil der Hash nicht als String vorliegt, sondern als Byte-Array aus dezimalen Zahlen. Diese muss man auf ins hexadezimale Format konvertieren und zu einem String zusammenfügen.

    Das komplette Script würde dann so aussehen:

    Das Script erweitert die Abfrage für einen einzelnen User um eine praktische Anwendung. Es ermittelt alle Benutzer, die ihr Passwort seit einem bestimmten Datum geändert haben, beispielsweise seit Beginn des aktuellen Monats, und sieht nach, ob das neue Kennwort kompromittiert wurde.

    Script zur Überprüfung der AD-Passwörter ausführen

    Specops Password Auditor als komfortable Alternative

    Specops Password Auditor ist ein kostenloses Tool, mit dem man Active Directory schnell und einfach auf passwort­relevante Schwachstellen untersuchen kann. Nach der Installation der Software muss man keine weiteren Voraus­setzungen schaffen, etwa in Form eines speziellen Kontos, sondern kann sofort loslegen.

    Das Programm greift nur lesend auf das AD zu und vergleicht die Passwort-Hashes untereinander sowie mit einer Liste mit über 1 Milliarde bereits kompromittierten Kennwörtern.

    Der Abgleich der AD-Passwörter mit der Liste der kompromittierten Kennwörter geht flott über die Bühne.

    Führt man das Programm als Domain-Admin aus, dann kann es den NTHash aller Passwörter vergleichen und die Benutzer aufzeigen, die ein identisches, schwaches oder kompromittiertes Passwort haben. Für diesen Check werden keine Daten außerhalb Ihres Active Directory gesendet.

    Specops Password Auditor prüft zudem alle für authentifizierte Nutzer zugäng­lichen Informationen in der Domäne, etwa die Passwort­richtlinien, die festgelegten Ablauffristen von Kennwörtern und vieles mehr.

    Specops Password Auditor generiert mehrere Reports, die helfen, Benutzerkonten zu schützen.

    Sie können das Tool hier kostenlos herunterladen »

    Zusammenfassung

    Nachdem die Anmeldung am Active Directory zumeist nur mit Benutzername und Passwort erfolgt, ist es wichtig, sichere Kennwörter zu verwenden. Dies können Admins zu einem gewissen Grad über die Password Policy sicherstellen.

    Um jedoch zu verhindern, dass kompromittierte Kennwörter verwendet werden, muss man externe Dienste konsultieren. HaveIBeenPwned verfügt über eine riesige Sammlung an gestohlenen Passwörtern, die man für diesen Zweck nutzen kann. Der Aufruf einer API-Funktion mit PowerShell gibt Aufschluss darüber, ob Kennwörter kompromittiert wurden.

    Als Alternative kann man zum kostenlosen Specops Password Auditor greifen, der AD-Passwörter ebenfalls mit einem enormen Fundus an offengelegten Kennwörter vergleicht. Das Tool generiert darüber hinaus noch eine ganze Reihe von Reports, mit denen sich die Passwortsicherheit erhöhen lässt.

    *Dies ist ein bezahlter Beitrag von Specops Software.

    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 //

    Weitere Beiträge von diesem Anbieter