Sichere Lokale Admin Kennwörter mit LAPS (Local Administrator Password Solution)

In einer Domänenumgebung ist eine häufig anzutreffende Herausforderung, dass Management von Lokalen Administratorkonten. Da durfte ich bereits in einer Vielzahl unterschiedlicher Landschaften einige Lösungen, von absolut unsicher über nicht händelbar, bis hin zu sehr kreativ sehen 😉

Doch genau für diese Herausforderung stellt Microsoft das Tool Local Administrator Password Solution kurz LAPS bereit. Dieses dient zum zentralen managen der Lokalen Administratorkonten in einer Domäne. Dabei werden pro Client dynamische Kennwörter generiert. Die Kennwörter werden im AD am jeweiligem Computerobjekt angehängt. Hier gelten dann die üblichen Berechtigungen, so könnt ihr im AD nur den berechtigten Admins das Auslesen dieser Information ermöglichen. Im folgenden gehe ich zunächst auf die Installation und Konfiguration ein. Für die Verwendung von LAPS ist eine Schema Erweiterung notwendig.


Contents


 

Ladet euch die verfügbaren  Setup Dateien von der LAPS Downloadseite herunter. Neben den beiden Installationsfiles für 32Bit & 64Bit werden noch einige Dokumentationen zur Verfügung gestellt.

LAPS Komponenten

  • Group Policy Client Side Extension
    • für jeden zu verwaltenden Client notwendig
  • Management Tools
    • Fat Client UI – grafische Oberfläche
    • PowerShell Module – zur Skriptbasierten Administration
    • Group Policy Templates – Clientkonfiguration mittels GPOs

Installation

Installation Management

Für jeden Client der für die Verwaltung per LAPS vorgesehen ist, ist die Installation der GP CSE erforderlich. Die Verteilung könnt ihr per Softwareverteilung über GPOs, SCCM oder Skriptbasiert vornehmen. Es empfiehlt sich eine Gruppe anzulegen, in denen alle Clients für die Verwaltung enthalten sind, um sicherzustellen, dass alle das Paket enthalten. Die automatisierte Installation ist mittels /quiet Parameter möglich.

Die Konfiguration erfolgt auf dem Domänencontroller ausschließlich per Powershell. Der FAT-Client dient lediglich dazu, sich einem Computer aus dem AD zu suchen und das dazugehörige Lokale Admin Kennwort anzeigen zu lassen. Diesen benötigt ihr also nur auf den Clients, auf denen dies erfolgen soll, z.B. an Hotline-Clients.

Innerhalb meiner Evaluationsumgebung habe ich die Installation auf dem DC vorgenommen.

LAPS Installation – Welcome Screen
LAPS Installation – Choice Options

Bei der Installation auf dem Management Client ist die Extension nur notwendig, wenn dieser ebenfalls in die Zentralkonfiguration aufgenommen wird.

LAPS Installation – Successful

Nachdem die Installation abgeschlossen wurde, sind die Templates nur im lokalen Policy Definition Ordner “%WINDIR%\PolicyDefinitions” bzw. “%WINDIR%\PolicyDefinitions\en-US” vorhanden. Um die Templates Domänenweit verfügbar zu machen, müsst ihr diese noch vom Lokalen Ordner auf den globalen Share, nach \\<FQDN>\SYSVOL\<FQDN>\policies\policyDefinitions bzw. \\<FQDN>\SYSVOL\<FQDN>\policies\policyDefinitions\en-US kopieren.

Installation Client

Um die Client Side Extension auf den Clients auszurollen, bestehen mehrere Möglichkeiten. Der automatische Rollout via quiet Installation ist bei beiden Dateien mit folgenden Parametern möglich:

  • msiexec /i \\server\share\LAPS.x64.msi /quiet
  • msiexec /i \\server\share\LAPS.x86.msi /quiet

Eine Installation indem die AdmPwd.dll auf den Clients mittels regsvr32.exe registriert wird, ist möglich.

AD Schema Erweiterung

Eine Schema-Erweiterung ist erforderlich, um zwei weitere Attribute hinzuzufügen, dass hinterlegte Passwort und das Ablaufdatum des Lokalen Passworts. Diese beiden Attribute werden zum Computer Objekt hinzugefügt.

Nachdem ihr eine PowerShell-Instanz auf dem DC gestartet habt, sind folgende zwei Befehle notwendig

  • Import-Module AdmPwd.PS
    • importiert das Modul
  • Update-AdmPwdADSchema
    • Erweitert das AD-Schema um die genannten Attribute

Das ganze sollte wie folgt aussehen

LAPS – AD Configuration Schema Extension

Hinweis

Ist in der Umgebung ein RODC vorhanden, muss das Attribut ms-Mcs-AdmPwd repliziert werden. Dazu ist eine Anpassung Filtered Attribute Set notwendig,  siehe “Adding Attribute to the RODC Filtered Attribute set

Berechtigungen

Sofern User im AD über Lese-Berechtigung auf “All Extended rights/permission” verfügen, sind auch die beiden Attribute Mcs-AdmPwd enthalten. Dadurch können User die Lokalen Passwörter einsehen. Soll dies verhindert werden, sind die Berechtigung auf OU-Ebene anzupassen. Diese Konfiguration erfolgt über ADSI-Edit und ist weiter unten detalliert erläutert.

Sofern die Vererbung nicht deaktiviert ist, sind die Änderungen nur für die Stamm-OUs notwendig.

Berechtigten Personenkreis feststellen

Um zunächst überhaupt zu ermitteln, welcher Personenkreis über diese Berechtigung verfügt, hilft die Powershell weiter. Import-Module AdmPws.PS auf dem Management-Client bleibt natürlich notwendig.

  • Find-AdmPwdExtendedrights -identity :<OU name> | Format-Table
LAPS – Show AD Permission

Nun werden alle Gruppen angezeigt, die über die entsprechende Berechtigung verfügen.

Einräumen der Computer-Berechtigung

Zum Hinterlegen der Passwörter der Lokalen Administratoren brauchen die Computerobjekte entsprechende Schreibberchtigung auf die beiden Attribute ms-Mcs-AdmPwdExpirationTime und ms-Mcs-AdmPwd attributes. Hierzu wird erneut die Powershell notwendig. Mit dem Befehl

  • Set-AdmPwdComputerSelfPermission -OrgUnit <name of the OU to delegate permissions>

lassen sich die Berechtigung pro OU konfigurieren, wie im folgenden zu sehen:

LAPS – Delegate AD Permission to Computer objects

Festlegen der Lesesberechtigten Personen

Sobald es nur einzelnen Usern oder Gruppen erlaubt sein soll, die festgelegten Lokalen Passwörter im AD zu sehen, benötigt der entsprechende Personenkreis die Berechtigung “Control_Access” auf das Attribut  ms-Mcs-AdmPwd attributes. Dies lässt wiederrum mit einem schicken, schlanken PowerShell-Befehl erledigen

  • Set-AdmPwdReadPasswordPermission -OrgUnit <name of the OU to delegate permissions> -AllowedPrincipals <users or groups>
LAPS – Set read access for Groups

Hinweis: Es lassen sich mehrere Gruppen, durch Komma-Trennung angeben

Sollte der entsprechende Personenkreis auch Berechtigung auf das Attribut ms-Mcs-AdmPwdExpirationTime erhalten, lässt sich dies seperat mit dem folgenden Befehl festlegen:

  • Set-AdmPwdResetPasswordPermission -OrgUnit <name of the OU to delegate permissions> -AllowedPrincipals <users or groups>

Den nun festgelegten Personenkreis kann auf den jeweiligen Clients der FAT-Client zum einfachen auslesen der Lokalen Passwörter zur Verfügung gestellt werden.

Entfernen der Erweiterten Berechtigung

  1. Öffnet ADSI-Edit
  2. Rechts Klick auf die OU, die zu managende LAPS-Clients enthält und Eigenschaften auswählen
  3. Wahl des Security-Tabs -> Erweitert/Advanced
  4. Auswahl der Gruppe die keine Berechtigung haben soll
  5. LAPS-Edit AD Permissions
  6. Deaktivieren des Haken für “All extended rights”

Gruppenrichtlinien

Sobald alle Schritte abgeschlossen wurden und die Client Side Extension bereits an Clients ausgerollt wurde, kann die Konfiguration der Gruppenrichtline erfolgen. Vergewissert euch, das die notwendigen Templates, nach Installationsabschluss, im zentralen Domänenstore kopiert wurden (wie unter Installation beschrieben). Sobald ihr eine Gruppenrichtlinie im Gruppenrichtlinieneditor öffnet, findet ihr die Einstellungen unter “Computer Configuration\Policies\Adminstrative Templates\LAPS”

LAPS – Group Policy Configuration

Wie ihr seht, lassen sich hier lediglich 4 Einstellungen vornehmen.

LAPS – Password Settings
  1. Unter “Passwort Settings” ist die Komplexität des Passworts zu konfigurieren. Dies sollte natürlich mit der Domänenrichtlinie für die Kennwortkomplexität übereinstimmen, sonst kommt es zu Fehlern.

    LAPS – Administrator Name
  2. “Name of administrators account to manage”diesen braucht ihr nicht zu konfigurieren, wenn es der Lokale Admin ist, dieser wird anhand der SID ermittelt

    LAPS – Password expiration
  3. “Do not allow password expiration time longer than required by policy” Legt fest, ob das max. Passwortalter auch bei manuellen Zurücksetzen gilt

    LAPS – Activate
  4. “Enable local admin password management” aktiviert das management der lokalen Administratorpasswörten

Passwort manuell zurücksetzen

Dies lässt sich ebenfalls mit dem UI-Client vornehmen. Dazu startet ihr diese, wählt den gewünschten Computernamen aus und klickt auf “Set”. Für diesen Vorgang benötigt der User entsprechende Schreibberechtigung auf das AD-Attribut.

Clientmanagement

Passwort anzeigen

Nachdem alle Einstellungen vorgenommen und die Gruppenrichtlinien auf den Clients angewandt wurden, lassen sich die erzeugten Kennwörter in den Computereigenschaften auslesen. In meinem Fall sieht das ganze wie folgt aus:

LAPS – Show Password

Die Zeit wird standardmäßig als Greenwich Time angezeigt und lässt sich manuell mit folgendem Powershell Befehl ändern

  • w32tm /ntte <zahl zum konvertieren>

Mit dem Fat Client ist die Anzeige des Passworts und dessen Ablaufdatum grafisch möglich.

LAPS – Fat Client

und zu guter letzt lässt sich dies auch per PowerShell anzeigen

  • Get-AdmPwdPassword -ComputerName <computername>
LAPS – Show Passwort with Powershell

Passwort zurücksetzen

Dies kann entweder über den Fat Client und den Button “Set” erfolgen, nachdem zuvor der Computername angegeben wurde, oder per einfachem Powershell Befehl:

  • Reset-AdmPwdPassword -ComputerName <computername> -WhenEffective <date time>

Fehlerbehebung

Nachdem das Tool in der Umgebung eingerichtet wurde, bringt es einige Logging-Optionen mit.

Client Logs

Alle Fehlerinformationen der Clide SideExtension werden im Application Log eingetragen. Die Anzahl der Einträge lässt sich über die Registry steuern und ist standardmäßig nicht aktiviert oder begrenzt.

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{D76B9641-3288-4f75-942D-087DE603E3EA}}\ExtensionDebugLevel

Mögliche Konfigurationen sind:

  • 0 = Silent Mode – ausschließlich Fehler werden geloggt, ist die Standardeinstellung
  • 1 = Fehler & Warnungen
  • 2 = Ausführlicher Modus, alle Aktivitäten werden geloggt

Dazu kommen einige Event IDs, die sich im Zahlenbereich zwischen 2 bis 16 bewegen. Deren Bedeutung und mögliche Lösungen lassen sich im LAPS Operations Guide nachlesen.

Auditing

Das auslesen der Passwörter aus dem AD, lässt sich ebenfalls Loggen, wenn dies erforderlich ist. Diese Funktion wird per PowerShell aktiviert

  • Set-AdmPwdAuditing –OrgUnit: <name of OU on which you want to setup the auditing> -AuditedPrincipals: :<identification of users/groups whose access to password shall be audited>

Nachdem die Funktion aktiviert wurde, wird jeder Passwort Lesevorgang im Sicherheitslog des Domänencontrollers unter der Event-ID 4662, mit dem Benutzerkonto, hinterlegt.

Fazit

LAPS bietet endlich die Möglichkeit die Kennwörter Lokaler Administratoren innerhalb einer Domäne vollautomatisch zu konfigurieren und dynamisch wechseln zu lassen. Die Konfiguration erhöht, mit vergleichsweise wenig Aufwand, die Sicherheit enorm. Einziger kleiner Wermutstropfen ist die notwendige Schemaerweiterung des AD. Wer bisher noch auf kreative oder umständliche Lösungen setzt, der sollte sich das Tool anschauen und den einen Einsatz evaluieren.

2 thoughts on “Sichere Lokale Admin Kennwörter mit LAPS (Local Administrator Password Solution)”

Leave a Reply

Your email address will not be published. Required fields are marked *