Flexible Security for Your Peace of Mind

Schwache AD-Passwörter finden und mit PowerShell beseitigen

Schwache oder kompro­­mittierte Passw­örter sind bekannt­­lich ein Einfalls­­tor für Angreifer. Hat man heraus­­gefunden, welche Benutzer im Active Direc­tory dadurch bedroht sind, dann hilft Power­Shell dabei, diesen Zustand abzu­­stellen. Scripts können grund­­sätzliche AD-Defizite aber nicht auf­heben, dazu braucht es pro­fessionelle 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 Inter­punktions­zeichen 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 weiter­verbreitet, dann lassen sich diese für Angriffe auf AD-Konten einsetzen.

Niedrige Hürde für Passwörter im AD

Die Passwort­richtlinien des Active Directory sind kaum in der Lage, schwache Kennwörter zu verhindern. Die Komplexitäts­regeln sind vorgegeben und lassen sich nicht anpassen, variabel sind nur die Länge und die Gültigkeits­dauer. 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.

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

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 Change­Password­AtLogon 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.

Specops Password Policy zeigt dem User beim Wechsel des Passworts an, welchen Vorgaben es genügen muss.

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 19/10/2023)

Zurück zum Blog