Zum Inhalt springen
Startseite » Blog » Konfiguration von LAPS und warum es sinnvoll ist

Konfiguration von LAPS und warum es sinnvoll ist

Problemstellung

Das Problem beginnt beim Installieren eines neuen Systems. In Unternehmen wird meist ein vorbereitetes Image genutzt, was einen lokalen Administrator mit einem bestimmten Passwort enthält. Das neue System wird nach der Installation in die Domäne mitaufgenommen, so dass das neue System zentrale Einstellungen erhält und in die allgemeinen IT Prozesse, wie z.B. Patch-Management oder Softwareverteilung integriert wird und sich entsprechend berechtigte, zentral verwaltete Benutzer anmelden können.

Sobald das Gerät Mitglied des Active Directories ist, sprich Mitglied einer Domäne ist, können sich sowohl Domänenbenutzer, als auch lokale Benutzer anmelden. Die lokalen Benutzer werden von jedem System selbst verwaltet und vereinfacht gesagt erfolgt die Prüfung der Benutzernamen / Passwort Kombination auf dem lokalen System. Wohingegen bei Active Directory die Prüfung zentral an einem Domain Controller erfolgt. Soweit ist das auch erstmal nicht schlimm. Was die lokalen Benutzer zum Problem machen, ist die Tatsache, dass oft die lokalen Benutzer auf verschiedenen Systemen das gleiche Passwort haben, wodurch ein Angreifer nach dem erfolgreichen Übernehmen eines Systems die anderen Systeme mit der gleichen Benutzer Passwort Kombination ebenfalls übernommen hat und sich lateral im Netzwerk, also von System zu System, bewegen kann.

Warum braucht ich denn überhaupt einen lokalen Benutzer?
Ein lokaler Benutzer ist notwendig, wenn das System, aus welchen Gründen auch immer, sich nicht mehr an der Domäne anmelden kann. Was meiner Erfahrung nach selten vorkommt und wenn dann meist nach dem Wiederherstellen eines Systems aus dem Backup.

Ablauf eines möglichen Angriffs

Voraussetzung für das beschriebene Vorgehen ist, dass ein Angreifer bereits lokale Adminrechte erhalten hat. Mit administrativen Berechtigungen ist der Angreifer in der Lage das als Hash gespeicherte Passwort auszulesen und an anderen Systemen zu versuchen. Dies geht beispielsweise folgendermaßen mit Hilfe von Windows Bordmitteln, Impacket und Crackmapexec:

Als erstes schreibt man die Inhalte aus der System Registry und SAM Registry Inhalte mit Bordmitteln heraus. Man öffnet ein Powershell Fenster mit Administratorrechten und gibt folgende Befehle
ein:

reg save HKLM\System system.sav
reg save HKLM\SAM sam.sav 

Die beiden erstellten Dateien kopiert man sich nun auf ein System mit dem Tool Secretsdump von impacket und nutzt dieses um die Hashes aus den gespeicherten Dateien zu extrahieren. Der Befehl hierzu auf einem System mit Kali Linux lautet

impacket-secretsdump -sam ./sam.sav -system ./system.sav LOCAL

Als Ergebnis bekommt man alle Passwort-Hashes der lokalen Benutzer.

Den Hash des administrativen Users, in diesem Fall der Benutzer „lab“ kann man dann zum Beispiel mit Crackmapexec an allen Geräte im Netzwerk zur Authentifizierung versuchen. Dies nennt man Pass-The-Hash. Der Befehl für Crackmapexec lautet:

cme 192.168.99.0/24 -u LAB -H NT:LM-Hashes --local-auth

An „[+]“ kann man dann erkennen, dass die Anmeldung erfolgreich war.

Konfiguration von Laps

  1. Herunterladen von LAPS von https://www.microsoft.com/en-us/download/details.aspx?id=46899
  2. Komplette Installation von LAPS auf einem System (z.B. Domain Controller) auf Basis des heruntergeladenen Installers
     
  1. Vorbereiten der Infrastruktur
    1. Anpassen des Active Directory Schemas
  1. Den Computerobjekten erlauben, das Passwort im Active Directory zu speichern
     

Die Berechtigung wird für die Sub-Ous automatisch übernommen

  1. Prüfen, dass nur Domain Admins die Passwörter auslesen dürfen
  1. Anlegen eines WMI Filters
    Select * from Win32_OperatingSystem where ProductType <> 2
     
  1. Erstellen einer Gruppenrichtlinie zur Installation auf den Systemen, konfigurieren und aktivieren von LAPS
    1. Anlegen einer nicht verlinkten neuen GPO „LAPS“
    2. Installation von LAPS auf den Systemen
      1. Hierzu muss der Installer auf einem für alle erreichbaren Netzlaufwerk gespeichert werden. In diesem Fall dem Netlogon Verzeichnis des Domain Controllers
      2. In der neuen LAPS Gruppenrichtlinien wird unter Computer Configuration -> Policies -> Software Settings -> Software Installation ein neues Packet angelegt, indem die MSI-Datei   ausgewählt wird und als „Deployment Method“ Assigned ausgewählt wird.
      3. In der GPO sieht es dann folgendermaßen aus:
         
  1. Konfigurieren und Aktivieren von LAPS per GPO
    1. Die LAPS Gruppenrichtlinie wird dann entsprechend definiert.
    2. Computer Configuration -> Policies -> Administrative Templates -> LAPS
      1. Definieren der Password Einstellungen bzgl. Länge, Komplexität und Wechselintervall
      2. Verhindern, dass die Passwörter älter als von der Richtlinie vorgegeben sind
      3. Aktivieren von LAPS
      4. Sofern der lokale Administrator umbenannt wurde, kann hier noch der Name mitgegeben werden, was hier nicht erfolgt ist
         
  1. Der LAPS Gruppenrichtlinie wird dann der WMI-Filter KeinDC zugewiesen
  2. Verlinken der GPO auf Root-Ebene
     
  1. Überprüfen ob es funktioniert hat.
    1. Durchführen von gpupdate.exe /force auf einem System, um die neuen Gruppenrichtlinien anzuwenden
    2. Auf dem Domain Controller öffnen der LAPS UI und anzeigen des Passworts für das System