Wir setzen auf unserer Webseite Cookies und andere Technologien ein, um Ihnen den vollen Funktionsumfang unseres Angebotes anzubieten. Sie können auch zu Analysezwecken gesetzt werden. Durch die weitere Nutzung unserer Webseite erklären Sie sich mit dem Einsatz von Cookies einverstanden. Weitere Informationen, auch zur Deaktivierung der Cookies, finden Sie in unserer Datenschutzerklärung.
Schwache AD-Passwörter finden und mit PowerShell beseitigen
Schwache oder kompromittierte Passwörter sind bekanntlich ein Einfallstor für Angreifer. Hat man herausgefunden, welche Benutzer im Active Directory dadurch bedroht sind, dann hilft PowerShell dabei, diesen Zustand abzustellen. Scripts können grundsätzliche AD-Defizite aber nicht aufheben, dazu braucht es professionelle Tools.
Passwörter können aus verschiedenen Gründen leicht zu knacken sein. Dies ist der Fall, wenn sie zu kurz oder zu wenig komplex sind, den Namen des Benutzers enthalten oder ein triviales Passwort durch Anhängen von Ziffern oder Interpunktionszeichen leicht variieren.
Eine weitere Gefahr entspringt der Tatsache, dass viele Anwender in der Arbeit das gleiche Passwort verwenden wie für ihre privaten Konten in den sozialen Medien oder auf öffentlichen Websites. Werden diese gehackt und die Kennwörter weiterverbreitet, dann lassen sich diese für Angriffe auf AD-Konten einsetzen.
Niedrige Hürde für Passwörter im AD
Die Passwortrichtlinien des Active Directory sind kaum in der Lage, schwache Kennwörter zu verhindern. Die Komplexitätsregeln sind vorgegeben und lassen sich nicht anpassen, variabel sind nur die Länge und die Gültigkeitsdauer. Ob Kennwörter kompromittiert wurden, wissen die Bordmittel ohnehin nicht.
Aus diesem Grund vergeben Benutzer trotz einer aktivierten Password Policy immer wieder schwache Kennwörter. Daher ist es im Sinne der AD-Sicherheit geboten, das Verzeichnis regelmäßig auf untaugliche Passwörter zu prüfen.
Schwache Kennwörter im Active Directory finden
Für diese Aufgabe empfiehlt sich der kostenlose Specops Password Auditor, den Sie hier herunterladen können. Das Tool prüft die Kennwörter nach diversen Kriterien, beispielsweise ob mehrere User das gleiche Passwort verwenden, ob sie abgelaufen sind oder ob Konten gar kein Kennwort benötigen.
Darüber hinaus vergleicht das Programm alle Passwörter mit einer umfangreichen und stets aktuellen Liste von gestohlenen Kennwörtern.
Für jedes dieser Kriterien erzeugt der Password Auditor einen jeweils eigenen Report, der sich im CSV-Format exportieren lässt.
Dies kann man sich zunutze machen, um Maßnahmen gegen die erkannten Mängel zu ergreifen. Denn es reicht natürlich nicht, die Konten mit schwachen oder kompromittierten Passwörtern bloß zu kennen.
Wechsel des Passworts erzwingen mit PowerShell
Das folgende PowerShell-Fragment würde den Report zu allen Konten mit kompromittierten Kennwörtern auslesen und jeden betroffenen User zwingen, bei der nächsten Anmeldung das Passwort zu ändern.
Damit die Anwender den Grund für diese Maßnahme erfahren, erhalten sie vom Script eine kurze Mail mit einer Erklärung.
Import-Csv -Path .\breached-PW-users.csv | foreach{ $name = $_.account Get-ADUser -Filter 'name -like $name -and PasswordNeverExpires -eq $FALSE' | Set-AdUser -ChangePasswordAtLogon:$true Send-MailMessage -to $_."Email address" -from "Admin <admin@fabrikam.de>" ` -Subject "Unsicheres Passwort" -SmtpServer "smtp.fabrikam.de" ` -body "Bitte vergeben Sie nach Ihrer nächsten Anmeldung ein sicheres Passwort!" }
Der Filter-Ausdruck von Get-ADUser stellt übrigens sicher, dass Konten übersprungen werden, deren Passwort nie abläuft. Bei diesen würde nämlich das ChangePasswordAtLogon zu einer Fehlermeldung führen.
Die Konten, deren Kennwort nie abläuft, listet Specops Password Auditor in einem eigenen Report auf. Mit Hilfe von PowerShell könnte man diesen Status der Accounts wie folgt aufheben:
Import-Csv -Path .\PW-never-expires-users.csv | foreach{ $name = $_.account Get-ADUser -Filter 'name -like $name' | Set-ADUser -PasswordNeverExpires $False }
Grenzen dieser Lösung
Es liegt auf der Hand, dass eine solche selbstgestrickte Lösung einige Defizite aufweist. So können Benutzer aufgrund der limitierten AD Password Policy bei der nächsten Anmeldung wieder schwache Passwörter vergeben. In der Regel wissen die User gar nicht, welchen Kriterien die Kennwörter überhaupt gehorchen müssen.
Selbstredend gelangen auch wieder kompromittierte Kennwörter ins System, weil diese beim Wechsel des Passworts nicht geprüft und entsprechend auch nicht abgewiesen werden. Insgesamt müsste man den Auditor und die obigen PowerShell-Scripts mehrmals im Monat laufen lassen, um ungeeignete Kennwörter zu eliminieren.
Schlechte Kennwörter von vorneherein ausschließen
Die von Specops Software entwickelte Lösung Specops Password Policy schließt diese Lücken. Damit lassen sich praktisch beliebige Regeln vorgeben, wie ein neues Passwort auszusehen hat. Unter anderem können Admins damit die Nutzung von Passphrasen anstatt von Passwörtern erzwingen.
Mit Specops Password Policy ist ein Leichtes, die regulatorischen Anforderungen von Behörden wie dem BSI, NCSS, SANS oder NIST zu erfüllen.
Die Anwender erkennen bereits bei der Eingabe, ob Passwörter den gewünschten Kriterien entsprechen und erhalten genaue Hinweise, welche Zeichen noch erforderlich sind oder wann die notwendige Länge erreicht ist.
Darüber hinaus prüft Specops Password Policy die neuen Kennwörter unmittelbar gegen eine Liste mit mehr als 3 Milliarden kompromittierter Passwörter und stellt auf diese Weise sicher, dass diese gar nicht erst ins Active Directory gelangen.
Möchten Sie gerne mehr darüber erfahren, wie Specops Password Policy in Ihrer Organisation zu mehr IT-Sicherheit beitragen kann?
(Zuletzt aktualisiert am 03/12/2024)