Wachtwoord Administrator wijzigen met LAPS

Op veel werkstations en servers in een willekeurige organisatie staat regelmatig hetzelfde wachtwoord ingesteld voor het Administrator account. Uiteraard is het veiliger om dit account uit te schakelen, maar voor veel organisaties is dit niet opgenomen in het beleid. Daardoor blijft het wachtwoord, dat is gebruikt bij het installeren van de PC of server, vaak jarenlang actief. Om dit beveiligingsissue aan te pakken kan men tegenwoordig gebruik maken van Local Administrator Password Solution (LAPS).

 

Niet meer via Group Policy

Een aantal keer heb ik gezien dat de Group Policy Preferences werden gebruikt om wachtwoorden te wijzigen. Deze optie is gelukkig al enige tijd niet meer mogelijk vanwege het probleem dat wachtwoorden op die manier onversleuteld werden opgeslagen. Lees hierover bijvoorbeeld Security Bulletin MS14-025. In datzelfde Security Bulletin wordt overigens ook besproken dat het gebruik van wachtwoorden in andere Group Policy voorkeursinstellingen ook niet meer mogelijk is, zoals bij het instellen van netwerkstations, services, geplande taken en gegevensbronnen met een specifieke gebruikersnaam en wachtwoord.

 

Workaround volgens Microsoft

De workaround die beschreven wordt in MS14-025 is een PowerShell script met een functie “Invoke-PasswordRoll”. De nadelen van dit script is dat de computers online moeten zijn om de wachtwoorden te wijzigen en dat deze versleuteld in een CSV-bestand worden opgeslagen. Dat laatste is op zich netjes, maar om een wachtwoord tevoorschijn te krijgen moet per computer account een PowerShell script worden uitgevoerd.

 

Local Administrator Password Solution (LAPS)

Sinds mei 2015 is er gelukkig een goed alternatief beschikbaar gekomen om er centraal en middels Group Policy te forceren dat het Administrator wachtwoord wordt gewijzigd in de vorm van “Local Administrator Password Solution” ofwel “LAPS”. Met deze oplossing wordt op iedere computer een willekeurig wachtwoord ingesteld (op basis van het ingestelde beleid via Group Policy) en deze wordt vervolgens weggeschreven als een attribuut op het bijbehorend computerobject in Active Directory.

 

Voordelen extra beveiliging

Door op iedere computer een ander wachtwoord in te stellen wordt voorkomen dat als het wachtwoord van het Administrator-account op één PC achterhaald wordt, meteen de gehele omgeving in gevaar brengt. Regelmatig wordt het domein-Administrator wachtwoord ook lokaal gebruikt, dus het resultaat zou zelfs kunnen zijn dat een hacker daarmee zichzelf toegang tot alle bronnen in het domein kan verschaffen.

Het wachtwoord wordt d.m.v. het Kerberos versie 5 protocol en AES versleuteld over het netwerk weggeschreven in het attribuut “ms-Mcs-AdmPwd” in Active Directory. Het wachtwoord is dan op zich in clear-text opgeslagen, maar dit attribuut is gemarkeerd als “Confidential” wat betekend dat je extra permissies nodig hebt om deze in te kunnen zien (buiten de leden van “Domain Admins”). Meer over de beveiliging van dit wachtwoord is terug te lezen op de volgende blog: “LAPS and password storage in clear text in AD“.

 

Hoe werkt het?

LAPS is een Group Policy client-side extension (CSE) waardoor er geen infrastructuur ingericht hoeft te worden in de vorm van Scheduled Tasks of agents en deze gewoon met Group Policy ingesteld en onderhouden kan worden. Met iedere verversing van Computerbeleid wordt gecontroleerd of de datum is verlopen, welke staat ingesteld op het computerobject in Active Directory, en als dat het geval is wordt een nieuw wachtwoord gegenereerd. Zowel het wachtwoord als de de datum waarop het nieuwe wachtwoord zal verlopen wordt opgeslagen in het computerobject in Active Directory. Naast het account “Administrator” kan ook van afwijkende gebruikersnamen het wachtwoord worden gewijzigd met deze oplossing.

 

Installatie

Alle benodigde bestanden (inclusief handleidingen) kunnen worden gedownload via Microsoft Download Center. De installatie is op zich heel erg makkelijk en goed beschreven met de bijgeleverde handleiding. In hoofdlijnen:

  1. Installatie GPO CSE op iedere computer waarop deze functionaliteit beschikbaar moet komen.
    Dit kan makkelijk gepackaged worden met bijvoorbeeld System Center Configuration Manager d.m.v. het commando “msiexec /i <bestandslocatie>\LAPS.x64.msi /quiet” of (indien het een 32-bit client betreft: “msiexec /i <bestandslocatie>\LAPS.x86.msi /quiet”. Het betreft slechts één DLL, dus deze kan ook handmatig geplaatst worden en vervolgens geregistreerd worden met het commando “regsvr32.exe /s AdmPwd.dll”.
  2. Installatie Management Tools op een management server of computer.
    Hiervoor kan dezelfde MSI gebruikt wordt en hiermee worden de benodigde GPO templates (in de lokale PolicyDefinitions) geïnstalleerd , de Fat client UI (hiermee kan redelijk gemakkelijk het wachtwoord en de verloopdatum worden uitgelezen) en een PowerShell module.
  3. Het Active Directory Schema uitbreiden
    Het Schema moet worden uitgebreid met de twee extra attributen. Om het Schema uit te breiden moet de PowerShell module worden gebruikt (“Import-module AdmPwd.PS”) en vervolgens de Cmdlet “Update-AdmPwdADSchema” gebruikt.
  4. De Computer accounts rechten geven op de nieuwe attributen
    Ook hiervoor is een PowerShell Cmdlet beschikbaar, namelijk “Set-AdmPwdComputerSelfPermission”. Gebruik deze in combinatie met de parameter -Identity <DistinguishedName OU> om te zorgen dat alleen de computer accounts onder een bepaalde OU de rechten te geven om hun eigen wachtwoord en bijbehorende ‘timestamp’ bij te werken.
  5. Group Policy instellen
    De instellingen kunnen worden gevonden onder Computer Configuration\Administrative Templates\LAPS waarmee o.a. de feature kan worden ingeschakeld, de complexiteit van het wachtwoord ingesteld kan worden en hoe vaak deze gewijzigd dient te worden.

 

Gebruik

Als bovenstaande stappen zijn doorlopen en er een wachtwoord is ingesteld kan deze gemakkelijk worden weergegeven met de “LAPS UI” of PowerShell Cmdlet “Get-AdmPwdPassword”. Met beide tools kan de verloopdatum ook worden gewijzigd en op die manier op kortere of langere termijn een wachtwoord reset worden gepland. Fouten bij bijvoorbeeld het (niet) instellen van het wachtwoord of niet goed kunnen wegschrijven ervan naar Active Directory kunnen worden gevonden in de Application event logs.