Bei Kunden stellen die Tester von Oneconsult vermehrt fest, dass auf verschiedenen Clients − sowie seltener auch auf Servern − identische Passwörter für lokale administrative Benutzer verwendet werden.
Die Passwörter werden zwar als NTLM-Hash abgespeichert. Das bietet einem Angreifer aber immer noch die Möglichkeit, diese Gegebenheit leicht für das Lateral-Movement (horizontale Ausbreitung) im Netzwerk zu missbrauchen.
Bei der Installation von neuen Clients/Servern stellt sich häufig die Frage, wie die Passwörter für die lokalen administrativen Benutzer gesetzt werden sollen. Das Passwort kann beispielsweise durch Installationsskripte oder durch die Group Policy gesetzt werden.
Wird ein Installationsskript verwendet, so ist sicherzustellen, dass nach der Installation das Passwort nicht weiterhin in reversibler Form auf dem Gerät abgelegt ist. Meistens ist dies in der Standardkonfiguration der Fall.
Das Verwenden einer Group Policy zum Setzen des Passworts wird nicht empfohlen, da das Passwort dabei nur mit einem statischen AES Schlüssel verschlüsselt wird und die verschlüsselten Werte für jeden Domain-Benutzer einsehbar sind. Diese Informationen sind öffentlich (inkl. dem verwendeten Schlüssel) aufrufbar [1]. Angreifer können per Group Policy definierte Passwörter anhand des Keys direkt entschlüsseln.
Auch wenn Massnahmen ergriffen werden, dass die Passwörter nicht in reversibler, verschlüsselter Form abgelegt sind, besteht dennoch die Problematik, dass die Passwörter auf den Geräten identisch sind und meist selten aktualisiert werden.
Die Passwörter der lokalen Benutzer werden als NT LAN Manager (NTLM) Hash in der Security Accounts Manager (SAM) Datenbank abgelegt. Hat ein Angreifer durch Kompromittierung oder ein Mitarbeiter durch Rechteerweiterung lokale administrative Rechte, so kann er leicht die NTLM Hashes aus dem System auslesen.
Dies ist durch das Kopieren von der Datei «%windir%\system32\config\SAM» und Auslesen der Hashes auf einem Zweitsystem, sowie auch dem direkten Auslesen mithilfe von Programmen wie Pwdump [2] oder Mimikatz [3] möglich.
mimikatz # lsadump::sam Domain : DESKTOP-JQIOMRO SysKey : 851699dfa1c3e97454cb3bbdd9dc1df5 Local SID : S-1-5-21-1728647135-1167794982-1540262392 SAMKey : 9af6039e47b5336fcb32b6e2704ee052 RID : 000001f4 (500) User : Administrator LM : NTLM : 64F12CDDAA88057E06A81B54E73B949B
Ein Angreifer besitzt nun die Möglichkeit, das Klartextpasswort aus dem NTLM Hash mit einer offline Brute-Force-Attacke zu errechnen. Dies ist je nach Passwortkomplexität und Länge relativ gut möglich. Ein 8-stelliges Passwort mit Gross- und Kleinbuchstaben sowie Ziffern (62 verschiedene Zeichen) lässt sich mit zwei aktuellen und schnellen Grafikkarten spätestens innerhalb von 45 Minuten knacken.
Das Klartextpasswort wird jedoch nicht zwingend benötigt, um sich auf Systemen anzumelden, bei welchen der Benutzer dasselbe Passwort besitzt. Durch einen Pass-The-Hash-Angriff kann der NTLM Hashwert direkt verwendet werden, um sich erfolgreich an einem solchen System anzumelden. Dies ist möglich, da aus Sicherheitsgründen nicht das Klartextpasswort, sondern der Hash für die Authentifizierung über das Netzwerk gesendet wird.
Die Python Kollektion «Impacket» hat diverse Administrationsprogramme, welche die Anmeldung durch den NTLM-Hash erlauben. Ein bekanntes Beispiel ist Psexec [4].
Das Setzen eines starken Passwortes hindert dabei den Angreifer in keiner Weise. Solange derselbe Benutzer auf anderen Geräten dasselbe Passwort verwendet.
Um einen solchen Angriff zu verhindern, wird empfohlen, auf jedem Gerät ein einmaliges starkes Passwort für den lokalen Administrator-Benutzer zu setzen. Dies wird durch die Software «Local Administrator Password Solution» (LAPS) erleichtert, welche Microsoft im Jahr 2015 veröffentlicht hat.
Mit LAPS ist es möglich, die Passwörter der lokalen Administratoren durch das ActiveDirectory zu verwalten. Dabei wird ein zufälliges Passwort generiert, welches − nach dem Ablaufen eines durch die GroupPolicy bestimmten Zeitintervalls − automatisch neu generiert wird. Der Download und weitere Informationen sind dokumentiert unter [5] und [6].
Für die Verwendung muss auf den Clients die «AdmPwd»-GroupPolicy-Extension installiert sein. Auf dem ActiveDirectory-Server werden die Management-Tools benötigt, mit welchen die Passwörter verwaltet werden. Zudem muss dem built-in-Account «SELF» die Schreibberechtigung auf das Passwortattribut gegeben werden. Dies kann mit dem folgenden Befehl für eine gesamte Organisations-Unit (OU) durchgeführt werden:
PS > Set-AdmPwdComputerSelfPermission -Identity "CN=Computers,DC=demo,DC=local"
Durch den folgenden Beispieleintrag in der GroupPolicy kann das LAPS aktiviert werden:
Administrative Templates\LAPS\Enable local admin password management: Enabled Administrative Templates\LAPS\Password Settings: Complexity: large letters + small letters + numbers + specials Password Length: > 20 Password Age: < 100 Administrative Templates\LAPS\Do not allow password expiration time longer than required by policy: Enabled
Durch das Aktivieren von «Do not allow password expiration time longer than required by policy» wird verhindert, dass Passwörter, welche ein längeres Ablaufdatum als die aktuelle Policy besitzen, erst nach Ablauf dieser Zeitdauer neu gesetzt werden.
Die generierten Passwörter können danach von Administratoren im ActiveDirectory mit dem «Attribute Editor» des entsprechenden Gerätes, sowie über den folgenden PowerShell-Befehl angezeigt werden:
PS > Get-AdmPwdPassword -computername "DESKTOP-JQIOMRO" | format-list ComputerName : DESKTOP-JQIOMRO DistinguishedName : CN=DESKTOP-JQIOMRO,CN=Computers,DC=demo,DC=local Password : O9p2-2#r%DAF467[+40s82F8Yp;5$a ExpirationTimestamp : 10/11/2017 4:08:23 AM
Muss ein Passwort vorzeitig neu gesetzt werden, so ist dies durch den folgenden Befehl möglich:
PS > Reset-AdmPwdPassword -computername "DESKTOP-JQIOMRO"
Bei der Verwendung von LAPS ist es wichtig, die Zugriffsrechte auf die Attribute so zu setzen, dass nur autorisierte Personen das Passwort auslesen können. Der folgende Befehl listet einem dabei alle Personen mit der entsprechenden Berechtigung auf:
PS > Find-AdmPwdExtendedRights -Identity "dc=demo,dc=local"
Fazit
Die lokalen administrativen Benutzer auf verschiedenen Clients und Servern sollten nicht identische Passwörter besitzen. Angreifer können sich − anhand von dem auf einem System ausgelesenen NTLM-Hash − über das Netzwerk an anderen Geräten anmelden, auf welchen dasselbe Passwort für den Benutzer verwendet wird. Aus diesem Grund wird empfohlen, einmalige, eindeutige und komplexe Passwörter für die lokalen administrativen Benutzer zu setzen.
Die «Local Administrator Password Solution» (LAPS) von Microsoft erlaubt es lokalen Benutzern, einmalige, zufällig generierte Passwörter zuzuweisen. Dabei ist darauf zu achten, dass die Berechtigungen auf das Passwortattribut so gesetzt werden, dass nur autorisierte Personen diese auslesen können.
[1]: https://msdn.microsoft.com/en-us/library/cc422924.aspx
[2]: https://www.openwall.com/passwords/windows-pwdump
[3]: https://github.com/gentilkiwi/mimikatz
[4]: https://github.com/CoreSecurity/impacket/blob/master/examples/psexec.py
[5]: https://technet.microsoft.com/en-us/library/security/3062591.aspx
[6]: https://www.microsoft.com/en-us/download/details.aspx?id=46899
Über den Autor
Fabian Gonzalez absolvierte die Lehre als Informatiker mit Schwerpunkt Systemtechnik bei einer Schweizer Grossbank. Während der Lehre arbeitete er unter anderem eineinhalb Jahre im Security Operations Center (SOC). Fabian Gonzalez studierte anschliessend an der Hochschule für Technik Rapperswil und schloss 2014 mit dem Titel BSc FH in Informatik ab. Nach dem Studium arbeitete er bei einer der „Big Four“ Wirtschaftsprüfungsgesellschaften als Information Security Consultant. Seit Januar 2016 ist Fabian Gonzalez bei Oneconsult als Penetration Tester tätig. Er ist Offensive Security Certified Professional (OSCP) und zertifizierter OSSTMM Professional Security Tester (OPST).
Über Oneconsult
Die Oneconsult-Unternehmensgruppe ist seit 2003 Ihr inhabergeführter, produkte- und herstellerunabhängiger Schweizer Cybersecurity Services Partner mit Büros in Thalwil (Zürich), Bern und München. Die Oneconsult-Gruppe besteht aus der Holdinggesellschaft Oneconsult International AG und deren Tochtergesellschaften Oneconsult AG und Oneconsult Deutschland GmbH.
30+ hochqualifizierte Cybersecurity Experten – darunter zertifizierte Penetration Tester (OPST, OPSA, OSCP, OSCE, GXPN), IT-Forensiker (GCFA, GCFE, GREM), ISO Security Auditoren (ISO 27001 Lead Auditor, ISO 27005 Risk Manager) und IT Security Researcher – meistern auch Ihre anspruchsvollsten Herausforderungen im Informationssicherheitsbereich. Gemeinsam packen wir Ihre externen und internen Bedrohungen, wie Malware-Infektionen, Hacker-/APT-Attacken sowie digitalen Betrug und Datenverlust mit Kerndienstleistungen wie Penetration Tests / Ethical Hacking, APT-Tests unter Realbedingungen und ISO 27001 Security Audits an. Bei Notfällen können Sie rund um die Uhr (24 h x 365 Tage) auf die Unterstützung des Oneconsult Incident Response & IT Forensics Expertenteams zählen.