Powershell-Kurztipp: Inaktive AD-Konten identifizieren
15. März 2019Verwaiste Konten im Active Directory (AD) stellen ein Sicherheitsrisiko dar. Schließlich könnten Angreifer in Besitz der Anmeldeinformation kommen. Zudem können die Mitarbeiter (ehemaligen Account-Benutzer) keine verdächtigen Aktivitäten bei einem solchen „Alt-Konto“ entdecken. Bei einem aktiven Konto wäre es immerhin möglich, dass ein unbefugter Zugriff vom eigentlichen Benutzer bemerkt wird. Des Weiteren sind verwaiste AD-Konten oftmals mit hohen Berechtigungen versehen, etwa falls es sich um Benutzeraccounts ehemaliger Systembetreuer oder Administratoren handelt.
Die AD-Systembetreuer sollten daher Vorkehrungen treffen. Entweder pflegen sie das AD entsprechend, und löschen beziehungsweise deaktivieren die jeweiligen Konten bei Bedarf manuell, oder versehen die AD-Konten direkt bei der Erstellung mit einem Ablaufdatum. Aber auch mit der Powershell lassen sich derartige Aufgaben meistern. Dazu können die Administratoren beispielsweise das AD nach inaktiven Accounts durchsuchen:
Get-ADComputer -Filter * -Properties * | Sort LastLogonDate | FT Name, LastLogonDate -Autosize
Interessant an dieser Stelle ist der Parameter „LastLogonDate“, damit können die Systembetreuer genau spezifizieren, nach welchen Zeitkriterium gefiltert werden soll. Mit dem Cmdlet „Search-ADAccount“ lassen sich allerdings deutlich detailliertere Abfragen formulieren:
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 60.00:00:00 | Where {$_.Enabled -eq "True"} | sort -property LastLogonDate -desc | ft Name, LastLogonDate, Enabled -autosize
Interessant an dieser Stelle ist der Parameter „TimeSpan“, hier wurden zwei Monate (60 Tage) definiert, die Systembetreuer können beinahe beliebige Zeiträume angeben (Tage:Stunden:Minuten:Sekunden). Auch erwähnenswert: Der Parameter „-AccountInactive“ filtert dabei nach Konten, die seit längeren nicht benutzt wurden. Zudem lassen sich beispielsweise mit „-ComputerOnly“ oder „-UsersOnly“ eine Filterung nach Computer-Konten beziehungsweise Benutzerkonten unterschieden. Auch interessant ist dabei der Parameter „-AccountExpired“, denn auf diese Weise gibt das Cmdlet alle Konten, Benutzer und Service-Accounts aus, bei denen das Kennwort abgelaufen ist.
Florian Huttenloher