Was Lateral Movement ist, sollte Ihnen seit unserem Blog vom 14. März 2018 bewusst sein. Das Verwenden der gleichen Passwörter macht diese Attacke besonders attraktiv. Gerade in einer Domänenumgebung kommt es nach wie vor (zu) oft vor, dass auf allen Clients und Server die lokalen Administratorenpasswörter dieselben sind. «Wer hat denn schon Zeit, auf allen Systemen separate Passwörter zu vergeben und dann auch noch der ständige Wechsel.» «Es ist für den Support so viel einfacher zu handhaben.» Das sind die Aussagen, die man von Systemadministratoren zu diesem Thema hört.

Genau für diese Probleme der Systemadministratoren hat Microsoft schon 2015 eine Lösung herausgebracht, die auch nach 3 Jahren noch nicht die Anerkennung bekommt, die sie verdient. Local Admin Password Solutions, kurz LAPS, heisst die Zusatzfunktion, die man kostenlos in jedes Active Directory einbinden kann. Damit kann die Verwaltung der lokalen Administratorenpasswörter automatisiert werden. Es werden nicht nur Passwörter nach definierter Länge und Komplexität vergeben, diese wechseln auch noch automatisch nach der vorgegebenen Zeit.

Der Nachteil bei der Sache ist, dass die generierten Passwörter im Active Directory hinterlegt sind. Somit hat jeder mit der entsprechenden Berechtigung die Möglichkeit diese auszulesen. Gerade das ist den Kritikern ein Dorn im Auge, da dadurch das Active Directory zu einem noch beliebteren Ziel für Angreifer gemacht wird.

Aber genug der Vor- und Nachteile, kommen wir zuerst einmal zum Einrichten und machen uns danach unsere Meinung.

Die Konfiguration

Installation

Die MSI-Datei und die dazu gehörigen Dokumentationen können direkt von Microsoft heruntergeladen werden. Es ist zwingend, dass der LAPS-Client auf den Domain-Controller, wie auch auf den Member-Server und Clients, installiert wird - also auf allen Systemen die betroffen sind.

Bei der Installation auf den Member-Server und Clients muss nur das Module «AdmPwd GPO Extension» ausgewählt werden., Das ist alles was zu beachten ist.

laps01
Abbildung 1: Installation, Member-Server und Client

Auf den Domain-Controller müssen zudem alle Management Tools installiert werden.

laps02
Abbildung 2: Installation, Domain Controller

Konfiguration im AD

Nach der erfolgreichen Installation des LAPS-Clients kann im PowerShell das Modul geladen werden. Dazu benötigen wir den Befehl Import-Module AdmPwd.PS.

laps03
Abbildung 3: PowerShell, Module laden

Mit dem Befehl Update-AdmPwdADSchema werden im AD für jedes Computerobjekt zwei neue Register hinzugefügt. Das ms-Mcs-AdmPwd beinhaltet das Administratorenpasswort und im Register ms-Mcs-AdmPwdExpirationTime ist die Zeit, wann das Passwort gewechselt wird, hinterlegt.

laps04
Abbildung 4: PowerSell, Register

Die Berechtigung, um in die Register ms-Mcs-AdmPwd und ms-Mcs-AdmPwdExpirationTime zu schreiben, muss den Member-Server und Clients gegeben werden. Dafür müssen alle OU’s ausgewählt werden, in welchen Computerobjekte enthalten sind. In meiner Testumgebung ist das die OU Computer (nicht die Standard-OU), welche die OU’s Client und Server beinhaltet.

laps05
Abbildung 5: Active Directory, Struktur

Mit dem Befehl Set-AdmPwdComputerSelfPermission -Orgunit "«OU»" wird allen Objekten in der OU und Unter-OU’s diese Berechtigung gegeben.

laps06
Abbildung 6: PowerShell, Permission

Standardmässig hat nur die Gruppe Domain Admins die Berechtigung, das Passwort und die Ablaufzeit aus den Objekten auszulesen. In meinem Beispiel habe ich mich entschieden, dass zusätzlich die Gruppe Servicedesk die Daten der Clients und die Gruppe 3rd-Level-Support die Daten der Server auslesen kann. Dazu müssen mit dem Befehl Set-AdmPWdReadPasswordPermission -OrgUnit "«OU»" -AllowedPrincipals «Gruppe» den Gruppen die Rechte auf den OU’s gegeben werden.

laps07
Abbildung 7: PowerShell, Permission Servicedesk

laps08
Abbildung 8: PowerShell, Permission 3rd-Level-Support


Mit dem PowerShell Befehl Set-AdmPWdResetPasswordPermission -OrgUnit "«OU»" -AllowedPrincipals «Gruppe» könnte zusätzlich noch die Berechtigung vergeben werden um das Passwort zu erneuern.

Für ungeübte war das jetzt vielleicht etwas viel PowerShell. Damit Sie die Übersicht wieder erhalten, benötigen wir allerdings nochmals die PowerShell. Die aktiven Berechtigungen auf den OU’s können mit dem Befehl Find-AdmPWdExtendedRights -Identity "«OU»" ausgelesen werden.

laps09
Abbildung 9: PowerShell, Activ Permission

Einrichten GPO

Nun sind wir soweit die entsprechende GPO einzurichten. Dafür gibt es unter Computer Configuration/Policies/Administrative Templates/LAPS die entsprechenden Möglichkeiten.

laps10
Abbildung 10: GPO, LAPS

Mit der Enable local admin password management Option wird das LAPS aktiviert. Danach können unter Password Settings die Anforderungen an das Passwort definiert werden.

laps11
Abbildung 11: GPO, Passwort Settings

Die Empfehlung hier ist natürlich die volle Komplexität mit Gross-/Kleinbuchstaben, Zahlen und Sonderzeichen. Zudem sollte die Länge mindestens 20 Zeichen sein und z.B. alle 30 Tage gewechselt werden (das passiert ja automatisch).

Ausrollen

Damit die Passwörter nun auf den Member-Server und Clients angepasst werden, muss die GPO ausgrollt werden. Diesen Vorgang kann man bekanntlich mit dem Befehl gpupdate /force beschleunigen.

Da man «zum Glück» das Passwort auf den Clients nicht im Klartext auslesen kann, habe ich als Kontrolle den Hash NTLM Wert ausgelesen. Dieser hat sich nach dem Update der GPO geändert, somit wurde das Passwort geändert.

laps12
Abbildung 12:Hash, vor dem «gpupdate»

laps13
Abbildung 13: Hash, nach dem «gpupdate»

Auslesen

Nun können die definierten AD-Gruppen die Passwörter auslesen. Dafür gibt es zwei Methoden. Einmal direkt im Computer Objekt unter Attribute Editor.

laps14
Abbildung 14: Password, Attribute Editor

Wie man hier aber sieht, wird die Expiration Time unlesbar dargestellt. Deshalb gibt es als zweite Methode das installierte LAPS UI. Bei diesem kann nach dem entsprechenden Computer gesucht werden. Wichtig ist, dass dieser auf dem Domain Controller mit Administratoren Rechten gestartet wird, ansonsten sieht man das Passwort nicht!

laps15
Abbildung 15: Password, LAPS UI

Mit dem LAPS UI können die Passwörter manuell erneuert werden. Normalerweise ist das nicht nötig. Möglich ist das natürlich nur mit der entsprechenden Berechtigung. Diese Erneuerung erfolgt über den Button Set. Zu beachten ist dabei, dass das Passwort in der Anzeige erst wechselt, nachdem die GPO auf dem Computer neu ausgeführt wurde.

Es ist zu empfehlen das LAPS UI auf allen Computern, die Passwörter auslesen müssen, zu installieren. In meinem Beispiel wären das alle Benutzer der Gruppe Service Desk. Dies verhindert, dass der Servicedesk, der für 1st-Level Anfragen zuständig ist, Zugriff auf die Domain Controllers haben muss.

Die Erkenntnisse

Nun nach dem Einrichten muss ich sagen, dass ist eine flotte Sache. Die komplette Konfiguration hat mich nicht einmal 30 Minuten gekostet. Natürlich musste ich den LAPS Client nur auf 3 Systemen installieren, aber mit einer Software Verteilung lässt sich die MSI-Datei leicht ausrollen. Daher bin ich zur Einsicht gekommen, dass die Vorteile der automatischen Passwortvergabe mit vorgegebener Komplexität und einfacher Integration, die Nachteile, dass alle Passwörter auf dem AD gespeichert werden, übertreffen. Den Kritikern muss ich sagen: «Das Active Directory ist immer ein attraktives Ziel. Ganz egal ob hier noch die lokalen Administratorenpasswörter gespeichert werden.» Wichtig ist einfach, dass bei der Konfiguration des LAPS mit den Berechtigungen nicht wild um sich geschossen wird. Es muss klar definiert werden, welcher Supporter/Systemadministrator auf welche Systeme zugreifen muss. Einmal mehr: Erstellen Sie zuerst ein sauberes Konzept!

Quellen

Informationen zum Autor
Stefan Fröhlich
Autor: Stefan Fröhlich
Meine Affinität zur IT-Sicherheit habe ich während meiner Zeit als System Engineer erlangt. Dabei habe ich mich vor allem um die Einrichtung, die Wartung und den Betrieb von Security-Komponenten (insbesondere Firewalls) gekümmert. Ich musste immer wieder feststellen, dass eine perfekte Firewall allein wenig nützt. Sicherheit kann nur durch eine ganzheitliche Betrachtungsweise erlangt werden. Genau hier will ich bei goSecurity meine ganze Energie einsetzten. Für die gesamtheitliche Sicherheit Ihrer IT.