Wird das Passwort des lokalen Administrators in Ihrer Umgebung wiederverwendet?
Das Windows-Betriebssystem enthält standardmäßig ein Administratorkonto für Verwaltungszwecke, dessen Kennwort in vielen Umgebungen auf mehreren Systemen gleich ist.
Warum Passwörter häufig wiederverwendet werden
Das Kennwort für das lokale Administratorkonto wird regelmäßig wiederverwendet und ist daher auf mehreren Systemen innerhalb des Unternehmens identisch. Dies kann z.B. daran liegen, dass ein Image für alle Server und ein Image für alle Workstations verwendet wird. In diesem Bild wird das lokale Administratorkonto festgelegt und das Kennwort wird dann nie geändert. Oder das Unternehmen verwendet ein Skript, um auf jedem System ein Standardpasswort festzulegen.
Wenn ein Angreifer über Administratorrechte für einen dieser Computer verfügt und es schafft, das Passwort oder eine verschlüsselte Version davon wiederherzustellen, kann er es wiederverwenden, um Zugang zu mehreren oder manchmal zu allen Systemen innerhalb der Domäne zu erhalten.
Überblick über die Testumgebung
In unserer Testdomäne playground.local wurde für alle Systeme innerhalb der Domäne das selbe lokale Administratorkennwort verwendet. Die gehashte Version des Kennworts (NTLM-Hash) kann durch Lesen der lokalen SAM-Datenbank auf einem dieser Systeme abgerufen werden.
Ein Hash ist die Ausgabe einer Hash-Funktion, die eine Zeichenfolge in eine Folge von Buchstaben und Zahlen umwandelt. Auf diese Weise kann eine Anwendung überprüfen, ob der Benutzer das richtige Kennwort eingegeben hat, ohne das Klartextkennwort zu speichern.
Es ist möglich, diesen Hash für einen Pass the Hash-Angriff zu verwenden. Bei diesem Angriff authentifiziert sich der Angreifer mit dem NTLM-Hash anstelle eines Klartext-Passworts. Um diesen Angriff zu demonstrieren, haben wir eine Laborumgebung eingerichtet, die aus einem Windows-Client und zwei Windows-Servern besteht, darunter ein Webserver und ein Domain-Controller. Das Labor sieht folgendermaßen aus:
Durchführung des Angriffs
Wir demonstrieren diesen Angriff in unserem Labor, indem wir ein Konto verwenden, das über lokale Administratorenrechte auf einem Arbeitsplatzrechner verfügt. Mit diesen Privilegien kann ein Angreifer das Passwort von (lokalen) Benutzern mit Invoke-Mimikatz auslesen. Dazu kann der folgende Befehl verwendet werden: Invoke-Mimikatz -Befehl ‚“privilege::debug“ „token::elevate“ „lsadump::sam“‚
Der Hash (48e723f6efb3eff9ae669e239c42fff3) des lokalen Administratorkontos kann von einem Angreifer verwendet werden, um einen Pass-the-Hash-Angriff durchzuführen, bei dem er versucht, sich als lokaler Administrator auf einem beliebigen Rechner innerhalb der Domäne zu authentifizieren. Ein Angreifer kann dies z.B. mit dem Tool NetExec tun.
Die orangefarbenen Buchstaben in der obigen Abbildung zeigen an, dass wir auf zwei Systemen über lokale Administratorrechte verfügen. Das bedeutet, dass wir die volle Kontrolle über alle Systeme außer den Domänencontrollern haben. Standardmäßig ist es nicht möglich, sich als lokaler Administrator auf dem Domänencontroller zu authentifizieren, es sei denn, der AD-Wiederherstellungsmodus ist aktiviert.
Die lösung für das lokale Administratoren-Passwort
Local Administrator Password Solution (LAPS) ist ein Tool zur Verwaltung lokaler Administratorkennwörter. LAPS generiert für jeden lokalen Administrator ein eindeutiges Passwort. Dieses Passwort wird dann standardmäßig alle dreißig Tage gewechselt. Anschließend wird das Passwort im Attribut Ms-Mcs-AdmPwd gespeichert.
Der Zugriff auf das Passwort wird über das Zugriffsrecht Kontrolle des Attributs gewährt. Der Kontrollzugriff ist ein erweitertes Recht in Active Directory, d.h. wenn ein Benutzer die Berechtigung Alle erweiterten Rechte für dieses Attribut oder ein darüber liegendes Objekt hat, kann er das Kennwort in sehen. Ein Beispiel finden Sie unten:
Das Speichern des unverschlüsselten Kennworts ist kein Problem, da das Feld, in dem es vorkommt, spezielle Berechtigungen erfordert, um gelesen werden zu können. Wenn ein Angreifer über ein Konto verfügt, das Zugriff auf den Domänencontroller hat, um diesen zu lesen, oder über ein Benutzerkonto mit entsprechenden Rechten, hat er viel mehr Rechte als lokale Administratorkonten.
Abrufen von LAPS-Passwörtern.
Die Passwörter werden, wenn sie über das Netzwerk angefordert werden, von der LAPS GUI und der PowerShell verschlüsselt gesendet. Die LAPS-GUI sieht wie folgt aus, wenn ein autorisierter Benutzer das Passwort anfordert:
Es ist auch möglich, das Passwort mit Hilfe der PowerShell mit folgendem Befehl abzurufen:
Get-AdmPwdPassword -Computername ‚computernaam‘