Logo faq-o-matic.net
Logo faq-o-matic.net

LAPS – lokales Admin-Passwort endlich sicher

von veröffentlicht am1. Juli 2015, 06:36 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Active Directory, AD-Schema, Client-Administration, Gruppenrichtlinien, Sicherheit   Translate with Google Translate Translate EN   Die angezeigte Seite drucken
Zuletzt aktualisiert: 2. Juni 2020

Ich bin überzeugt, dass auch heute noch in vielen Active-Directory-Umgebungen das lokale Administratorpasswort über Group Policy Preferences (GPP) gesetzt wird. Dieses Verfahren ist leider aufgrund von Sicherheitsproblemen nicht mehr zu empfehlen (siehe http://matthiaswolf.blogspot.de/2014/05/ms14-025-das-ende-der-gespeicherten.html). Auch Microsoft hat dieses erkannt und das Hinterlegen von Passwörtern in Group Policy Prefrences mit dem Update MS14-025 ( https://technet.microsoft.com/en-us/library/security/ms14-025.aspx) unterbunden.

Bis zu diesem Zeitpunkt konnten Passwörter in den folgenden Group Policy Preferences genutzt werden:

  • Local user and group
  • Mapped drives
  • Services
  • Scheduled tasks (Uplevel)
  • Scheduled tasks (Downlevel)
  • Immediate tasks (Uplevel)
  • Immediate tasks (Downlevel)
  • Data sources

Bisher genutzte GPPs zur Verteilung von Passwörtern sind zwar weiterhin funktional, allerdings sind die dort verwendeten Passwörter nicht sicher und können mit wenig Aufwand ausgelesen werden. Um trotzdem Passwörter für lokale Konten zu verwalten, hat Microsoft nun das Tool Local Administrator Password Solution (LAPS) ins Programm aufgenommen (Download unter https://www.microsoft.com/en-us/download/details.aspx?id=46899).

Bei LAPS handelt es sich um eine Lösung, bei der pro Client ein dynamisches Passwort generiert und im Active Directory hinterlegt wird. Die Lösung basiert auf den folgenden Komponenten:

  • GPO Client Side Extension – auf jedem Client, der mittels LAPS verwaltet werden soll
  • Management Tools
    • Fat Client UI – Grafisches User Interface zum Auslesen der Passwörter aus dem AD
    • PowerShell Modul – PowerShell Modul zur Administration per PowerShell
    • Group Policy Template – zur Verteilung der Konfiguration auf den Client per GPO

Zusätzlich zu den genannten Komponenten werden zwei neue Attribute im Active-Directory-Schema benötigt.

Client-Voraussetzungen

Installation der Management-Tools

Um die Installation der Management-Tools zu beginnen, wird die entsprechende LAPS-Installationsdatei (LAPS.<platform>.msi) aufgerufen. Die Installationsdatei ist sowohl für 32- als auch 64-bit Systeme verfügbar. Unterstützt werden als Client-Betriebssystem alle Varianten ab Windows Vista (auch Windows 10) und als Server alle Varianten ab Windows Server 2003.

clip_image002

Nach Bestätigung des Willkommensfensters erscheint die Auswahl der zu installierenden Komponenten. Hier werden die gewünschten Management-Tools ausgewählt, die Installation kann sowohl auf einem dedizierten Management-Client als auch einem Domänencontroller erfolgen.

Erläuterung: Rein technisch betrachtet, kann man die Management-Tools auf einem Domänencontroller installieren. Da gehören sie aber nicht hin. Es handelt sich um Management-Tools, mit denen man die Lösung administriert, um mehr nicht. Es gehört kein Service zu LAPS und auch keine irgendwie dauerhaft laufende Software. Es muss also nichts auf einem DC installiert werden. Im Gegenteil: Ein DC ist ein DC, daher administriert man dort nicht. Also installiert man auch die Management-Tools nicht auf einem DC, sondern ausschließlich auf einem Management-Client (oder mehreren).

clip_image004

Nach Bestätigung der gewählten Optionen kann mit Install die Installation durchgeführt werden. Nach Abschluss der Installation kann diese wie gewohnt mit Finish beendet werden.

Installation der Client Side Extensions auf den zu verwaltenden Clients

Die Installation der Client Side Extensions auf den zu verwaltenden Clients kann entweder durch eine manuelle Installation als auch per Softwareverteilung, Group Policy oder Skript durchgeführt werden. Für eine automatisierte Installation kann der Silent-Parameter /quiet verwendet werden.

Beispiel:

clip_image005

Nach der Installation ist die installierte Client Side Extension in der Systemsteuerung unter Programme und Funktionen als Local Administrator Password Solution ersichtlich.

clip_image007

Alternativ kann die notwendige DLL auch per regsvr32 auf den Systemen registriert werden. In diesem Fall ist die Installation der CSE nicht in der Systemsteuerung unter Programme und Funktionen ersichtlich.

Active-Directory-Voraussetzungen

Um die lokalen Passwörter innerhalb des Active Directory zu speichern, ist es wie bereits erwähnt notwendig, die folgenden Attribute zum Active-Directory-Schema hinzuzufügen.

ms-Mcs-AdmPwd – speichert das Passwort in Klartext

ms-Mcs-AdmPwdExpirationTime – speichert das Ablaufdatum des Passworts

Für das Erweitern des Schemas liefert das das LAPS die notwendigen Utensilien mit. Hierbei handelt es sich um ein PowerShell-Modul, welches die notwendigen Befehle für die Erweiterung des Schemas als auch alle anderen administrative Tätigkeiten mitbringt.

Das Modul AdmPwd.PS kann mit dem Befehl Import-Module in die PowerShell Session importiert werden.

clip_image009

Wenn wir schon mal das PowerShell-Modul importiert haben können wir uns auch kurz alle verfügbaren Befehle mittels get-command -Module AdmPwd.PS anzeigen lassen. Das nächste Bild zeigt uns somit alle verfügbaren Befehle, die im Zusammenhang mit LAPS verwendet werden können.

clip_image011

Um das Schema zu erweitern, muss der Befehl Update-AdmPwdADSchema verwendet werden. Dieser Befehl erwartet keinerlei Parameter und muss einfach mit einem Konto, das über Schema-Administrator-Berechtigungen verfügt, ausgeführt werden.

clip_image013

Hinweis:

Sofern ein RODC innerhalb des Active Directory vorhanden ist, muss das Attribut ms-Mcs-AdmPwd ebenfalls repliziert werden. Hierzu muss das Attribut aus dem RODC Filtered Attribute Set entfernt werden.

Berechtigungen

Lesen der Passwörter

Wichtig: Alle Anwender, die die Berechtigung zum Lesen des ms-Mcs-AdmPwd-Attributs eines Computerobjektes haben, können das hinterlegte Passwort im Klartext auslesen. Aus diesem Grund muss allen nicht berechtigten Accounts das Leserecht „All extended rights“ entzogen werden.

Das Entfernen der Berechtigung kann auf OU-Ebene erfolgen. Allerdings ist vielleicht nicht klar, wer überhaupt in der OU die Berechtigung hat, die Extended-Attribute zu lesen. Hierfür liefert das LAPS das PowerShell-Cmdlet Find-AdmPwdExtendedrights mit, mit dem die Zugriffsberechtigungen pro OU überprüft werden können.

Beispiel:

clip_image015

Als Ergebnis erhält man alle User und Gruppen, die über die Leseberechtigung „All extended rights“ verfügen. Sollten in dem Ergebnis User oder Gruppen auftauchen, die diese Berechtigung nicht mehr haben sollen, muss dieses Recht wieder entfernt werden. Dieses kann zum Beispiel mittels ADSIEdit durchgeführt werden.

Um Usern oder Gruppen, die nicht in der Übersicht auftauchen, die Berechtigung zum Lesen der Passwörter einzuräumen, kann der PowerShell Befehl Set-AdmPwdReadPasswordPermission verwendet werden.

Beispiel:

clip_image017

Soll das Passwort durch bestimmte Accounts auch zurückgesetzt werden können, so ist es notwendig, dass der entsprechende Account über Schreibrechte für das Attribut ms-Mcs-AdmPwdExpirationTime des betroffenen Clients verfügt. Diese Berechtigung kann ebenfalls über die PowerShell mit dem Befehl Set-AdmPwdResetPasswordPermission vergeben werden.

Beispiel:

clip_image019

Notwendige Clientberechtigung zum Schreiben der Passwörter

Die mit LAPS verwalteten Clients benötigen die Berechtigung, die lokalen Passwörter und das Ablaufdatum in die Attribute ms-Mcs-AdmPwdExpirationTime und ms-Mcs-AdmPwd zu schreiben. Hierfür müssen die ACLs jeder Organisationseinheit, die zu verwaltende Clients beinhaltet, entsprechend angepasst werden. Der für die Anpassung notwendige Befehl lautet Set-AdmPwdComputerSelfPermission.

Befehl:

clip_image021

Hinweis:

Sofern die Vererbung der Rechte innerhalb des AD nicht unterbrochen wurde, reicht es natürlich, die Berechtigung auf der übergeordneten Organisationseinheit zu vergeben.

Auditing

Mittels LAPS ist es ebenfalls möglich zu erfassen, wenn ein Administrator erfolgreich das Passwort eines Clients aus dem Active Directory ausgelesen hat. Die Aktivierung des Loggings erfolgt wie gewohnt mittels PowerShell und dem Befehl Set-AdmPwdAuditing. Hierbei kann sowohl definiert werden, welche OUs als auch welche Accounts überwacht werden sollen.

Beispiel:

clip_image023

Nach dem Aktivieren des Loggings wird bei einem erfolgreichen Auslesen des Passworts wird im Security Log des Domain Controllers ein Event mit der ID 4662 erzeugt.

clip_image025

Konfiguration der Einstellungen

Die eigentliche Konfiguration des LAPS erfolgt über Gruppenrichtlinien. Die hierzu notwendigen Templates AdmPwd.admx bzw. AdmPwd.adml werden bei der Installation der Management Tools in dem Ordner %WINDIR%\PolicyDefinitions bzw. %WINDIR%\PolicyDefinitions\en-US abgelegt. Nach Öffnen der Group Policy Management Console sind die möglichen Einstellungen unterhalb des Punktes Computer Configuration\Administrative Templates\LAPS zu finden.

clip_image027

In obigen Bild ist ersichtlich, dass die Konfiguration der Lösung sich auf vier Punkte beschränkt und somit sehr einfach durchzuführen ist.

  1. Definition der Eigenschaften des Passworts (Passwortlänge, maximales Passwortalter und Komplexität des Passworts)
  2. Name des zu verwaltenden Kontos
  3. Festlegung, ob das festgelegte maximale Passwortalter auch für manuelle Zurücksetzungen des Passworts gilt
  4. Aktivieren des LAPS-Managements

Bei der Definition des Passworts kann sowohl die Länge als auch die Komplexität und das maximale Alter des lokalen Passworts beeinflusst werden.

clip_image029

Bei der Festlegung des zu verwendeten lokalen Accounts kann ein vom Built-in-Account (Administrator) abweichender Kontoname angegeben werden. Sofern der Built-In-Account verwendet wird, ist keinerlei Konfiguration der Richtlinie notwendig.

clip_image031

Es kann mittels der Richtlinie „Do not allow password expiration time longer than required by policy“ festgelegt werden, ob beim manuellen Zurücksetzen eines Passworts das in der Einstellung „Password Settings“ festgelegte maximale Passwortalter überschritten werden darf.

clip_image033

In der Richtlinie „Enable local admin password management“ kann die Nutzung von LAPS entweder aktiviert oder deaktiviert werden.

clip_image035

Verwalten der Clients

Anzeige von Passwörtern

Um die Passwörter von LAPS gemanagten Clients einzusehen, gibt es mehrere Möglichkeiten. Einerseits kann das Passwort, sofern man über die notwendigen Berechtigungen verfügt, mittels jedem LDAP-Tool, wie zum Beispiel Active Directory-Benutzer und -Computer, ausgelesen werden. Hierbei wird das Passwort im Attribut ms-Mcs-Adm-Pwd und das Ablaufdatum des Passworts im Attribut ms-Mcs-AdmPwdExpirationTime angezeigt.

clip_image037

Das Passwort wird hierbei im Klartext angezeigt. Um das Ablaufdatum in einer lesbaren Form zu erhalten ist es notwendig, den Inhalt des Attributs mittels w32tm /ntte zu konvertieren.

clip_image039

Eine komfortablere Lösung zur Anzeige und zum Zurücksetzen der Passwörter ist jedoch in den Management-Tools von LAPS enthalten. So bietet die LAPS UI die Möglichkeit, nach Computernamen zu suchen und die Informationen zum Passwort und Ablaufdatum des Passworts zu erhalten.

clip_image041

Ebenfalls kann die PowerShell verwendet werden, um die Informationen eines Clients zu erhalten. Der Befehl hierfür lautet Get-AdmPwdPassword.

clip_image043

Ein Anwender, der nicht über die Berechtigung zur Anzeige der Passwörtern verfügt, sieht weder im Active Directory Benutzer und Computer noch der LAPS UI das hinterlegte Passwort. Lediglich das Ablaufdatum des Passworts ist für den Anwender ersichtlich.

clip_image045

Zurücksetzen von Passwörtern

Das Passwort eines Clients kann einerseits über die LAPS-UI als auch per PowerShell zurückgesetzt werden. Hierbei wird entweder ein definierter Zeitpunkt für die Passwortänderung hinterlegt, oder es wird sofort zurückgesetzt. Die Änderung des Passwortes erfolgt in diesem Fall nach einer erneuten Group-Policy-Aktualisierung auf dem Client.

In der LAPS-UI kann die Änderung sehr einfach über das Setzen eines neuen Ablaufzeitpunkts des Passwortes und dem Bestätigen mit Set veranlasst werden. Soll das Passwort sofort zurückgesetzt werden, bleibt einfach das Feld „New expiration time“ leer.

clip_image047

In der PowerShell wird für die Änderung des Passwortes der Befehl Reset-AdmPwdPassword verwendet. Soll ein Änderungsdatum hinterlegt werden, so ist zusätzlich der Parameter ‑WhenEffective zu verwenden.

Beispiel:

LAPS – lokales Admin-Passwort endlich sicherclip_image049

Troubleshooting

Das Troubleshooting von LAPS-Problemen kann auf dem Client durch das Aktivieren des Client Loggings durchgeführt werden.

Hierzu muss unterhalb des Registry Schlüssels HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{D76B9641-3288-4f75-942D-087DE603E3EA}\ ein REG_DWORD mit dem Namen ExtensionDebugLevel angelegt werden.

Mögliche Optionen beim Logging sind:

Wert Bedeutung
0 Silent Mode; log errors only
1 Log Errors and warnings
2 Verbose mode, log everthing

Nach Aktivieren des Loggings sind die jeweiligen Events im Anwendungs-Log des Clients zu finden (Quelle: Microsoft LAPS Operations Guide).

ID Severity Description Comment
2 Error Could not get computer object from AD. Error %1 This event is logged in case that CSE is not able to connect to computer account for local computer in AD.

%1 is a placeholder for error code returned by function that retrieves local computer name, converts it to DN and connects to object, specified by the DN

3 Error Could not get local Administrator account. Error %1 This event is logged in case that CSE is not able to connect to managed local Administrator account.

%1 is a placeholder to error code returned by function that detects the name of local administrator’s account and connects to the account

4 Error Could not get password expiration timestamp from computer account in AD. Error %1. This event is logged in case that CSE is not able to read the value of ms-Mcs-AdmPwdExpirationTime of computer account in AD

%1 is a placeholder for error code returned by function that reads the value of the attribute and converts the value to unsigned __int64 type

5 Error Validation failed for new local admin password against local password policy. Error %1. This event is logged when password validation against local password policy fails.
5 Information Validation passed for new local admin password. This event is logged when password is successfully validated against local password policy
6 Error Could not reset local Administrator’s password. Error %1 This event is logged in case that CSE is not able to reset the password of managed local Administrator account.

%1 is a placeholder for error returned by NetUserSetInfo() API

7 Error Could not write changed password to AD. Error %1. This event is logged in case that CSE is not able to report new password and timestamp to AD.

%1 is a placeholder for error code returned by ldap_mod_s call

10 Warning Password expiration too long for computer (%1 days). Resetting password now. This event is logged in case that CSE detects that password expiration for computer is longer than allowed by policy in place while protection against excessive password age is turned on
11 Information It is not necessary to change password yet. Days to change: %1. This event is logged after CSE detects that it is not yet the time to reset the password

%1 is a placeholder for number of 24-hour’s intervals that remain till the password will be reset

12 Information Local Administrator’s password has been changed. This event is logged after CSE resets the password of managed local Administrator account
13 Information Local Administrator’s password has been reported to AD. This event is logged after CSE reports the password and timestamp to AD
14 Information Finished successfully This event is logged after CSE performed all required tasks and is about to finish
15 Information Beginning processing This event is logged when CSE starts processing
16 Information Admin account management not enabled, exiting This event is logged when admin account management is not enabled

Quelle: Microsoft LAPS Operations Guide

Fazit

Microsoft hat mit der Local Administrator Passwort Solution nun für alle ein Programm im Portfolio, mit dem das Setzen von lokalen Administrator Passwörtern endlich sicher, einfach und automatisch erfolgen kann. Meiner Meinung sollte jeder, der etwas mehr Sicherheit in seinem Active Directory haben möchte und bisher die Passwörter mittels Group Policy Preferences verteilt, schnell auf die neue Lösung umsteigen. Der Aufwand hierfür ist im Vergleich zur gewonnenen Sicherheit extrem gering.

Wichtig aber: LAPS legt die Admin-Kennwörter im Klartext im AD ab. Sie sind dann nur noch über die Zugriffsberechtigungen geschützt, die oben im Artikel erläutert sind. Wer LAPS einsetzt, muss also peinliche Sorgfalt darauf verwenden, die Berechtigungen richtig zu setzen.

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!