Az - PHS - Password Hash Sync
Grundlegende Informationen
Aus den Dokumenten: Password hash synchronization ist eine der Anmeldemethoden, die verwendet werden, um hybride Identität zu erreichen. Azure AD Connect synchronisiert einen Hash des Hashes eines Benutzerpassworts von einer lokalen Active Directory-Instanz zu einer cloudbasierten Azure AD-Instanz.
Es ist die häufigste Methode, die von Unternehmen verwendet wird, um ein lokales AD mit Azure AD zu synchronisieren.
Alle Benutzer und ein Hash der Passwort-Hashes werden vom lokalen AD zu Azure AD synchronisiert. Allerdings werden Klartext-Passwörter oder die originalen Hashes nicht an Azure AD gesendet. Darüber hinaus werden integrierte Sicherheitsgruppen (wie Domain-Admins...) nicht synchronisiert zu Azure AD.
Die Hashes-Synchronisation erfolgt alle 2 Minuten. Allerdings sind standardmäßig Passwortablauf und Kontenablauf nicht synchronisiert in Azure AD. Ein Benutzer, dessen lokales Passwort abgelaufen ist (nicht geändert), kann weiterhin auf Azure-Ressourcen zugreifen mit dem alten Passwort.
Wenn ein lokaler Benutzer auf eine Azure-Ressource zugreifen möchte, erfolgt die Authentifizierung in Azure AD.
PHS ist erforderlich für Funktionen wie Identity Protection und AAD Domain Services.
Pivoting
Wenn PHS konfiguriert ist, werden einige privilegierte Konten automatisch erstellt:
Das Konto
MSOL_<installationID>
wird automatisch im lokalen AD erstellt. Dieses Konto erhält eine Directory Synchronization Accounts-Rolle (siehe Dokumentation), was bedeutet, dass es Replikationsberechtigungen (DCSync) im lokalen AD hat.Ein Konto
Sync_<name of on-prem ADConnect Server>_installationID
wird in Azure AD erstellt. Dieses Konto kann das Passwort JEDES Benutzers (synchronisiert oder nur Cloud) in Azure AD zurücksetzen.
Passwörter der beiden vorherigen privilegierten Konten werden in einem SQL-Server auf dem Server gespeichert, auf dem Azure AD Connect installiert ist. Admins können die Passwörter dieser privilegierten Benutzer im Klartext extrahieren.
Die Datenbank befindet sich in C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf
.
Es ist möglich, die Konfiguration aus einer der Tabellen zu extrahieren, wobei eine verschlüsselt ist:
SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;
Die verschlüsselte Konfiguration ist mit DPAPI verschlüsselt und enthält die Passwörter des MSOL_*
-Benutzers im lokalen AD und das Passwort von Sync_* in AzureAD. Daher ist es möglich, durch Kompromittierung dieser Konten sowohl im AD als auch in AzureAD zu privesc.
Den Azure AD Connect-Server finden
Wenn der Server, auf dem Azure AD Connect installiert ist, der Domäne beigetreten ist (in den Dokumenten empfohlen), ist es möglich, ihn zu finden mit:
Missbrauch von MSOL_*
Überblick
Wenn Azure AD Connect mit Password Hash Sync (PHS) konfiguriert ist, werden die Hashes der Benutzerpasswörter von der lokalen Active Directory-Domäne zu Azure AD synchronisiert. Dies ermöglicht es Benutzern, sich mit denselben Anmeldeinformationen sowohl bei lokalen als auch bei Cloud-Ressourcen anzumelden. Ein Angreifer, der Zugriff auf die Azure AD Connect-Datenbank oder die Synchronisierungsprotokolle erlangt, kann möglicherweise die gehashten Passwörter extrahieren und offline angreifen, um die Klartextpasswörter zu erhalten.
Angriffsvektor
Zugriff auf die Azure AD Connect-Datenbank: Ein Angreifer benötigt Zugriff auf die SQL-Datenbank, die von Azure AD Connect verwendet wird. Dies kann durch Ausnutzen von Schwachstellen in der SQL-Server-Instanz oder durch Kompromittierung eines Kontos mit ausreichenden Berechtigungen erreicht werden.
Extraktion der gehashten Passwörter: Sobald der Angreifer Zugriff auf die Datenbank hat, kann er die gehashten Passwörter extrahieren. Diese Hashes können dann offline angegriffen werden, um die Klartextpasswörter zu erhalten.
Schutzmaßnahmen
Sichere Konfiguration der SQL-Server-Instanz: Stellen Sie sicher, dass die SQL-Server-Instanz, die von Azure AD Connect verwendet wird, sicher konfiguriert ist. Dies umfasst die Implementierung von Best Practices für die SQL-Server-Sicherheit, wie z.B. die Minimierung der Angriffsfläche und die Verwendung starker Authentifizierungsmethoden.
Überwachung und Protokollierung: Implementieren Sie Überwachungs- und Protokollierungsmechanismen, um unbefugten Zugriff auf die Azure AD Connect-Datenbank zu erkennen und darauf zu reagieren.
Regelmäßige Überprüfung der Berechtigungen: Überprüfen Sie regelmäßig die Berechtigungen der Konten, die Zugriff auf die Azure AD Connect-Datenbank haben, und stellen Sie sicher, dass nur autorisierte Benutzer Zugriff haben.
Fazit
Der Missbrauch von MSOL_* in einer Umgebung, die Azure AD Connect mit Password Hash Sync verwendet, kann schwerwiegende Sicherheitsfolgen haben. Durch die Implementierung geeigneter Schutzmaßnahmen können Organisationen das Risiko eines solchen Angriffs minimieren und die Sicherheit ihrer hybriden Identitätsinfrastruktur verbessern.
You can also use adconnectdump to obtain these credentials.
Missbrauch von Sync_*
Durch das Kompromittieren des Sync_*
-Kontos ist es möglich, das Passwort jedes Benutzers (einschließlich Globaler Administratoren) zurückzusetzen.
Es ist auch möglich, die Passwörter nur von Cloud-Benutzern zu ändern (auch wenn das unerwartet ist)
Es ist auch möglich, das Passwort dieses Benutzers zu dumpen.
Eine weitere Option wäre, privilegierte Berechtigungen einem Service Principal zuzuweisen, was der Sync-Benutzer Berechtigungen hat zu tun, und dann auf diesen Service Principal zuzugreifen als eine Möglichkeit des Privesc.
Seamless SSO
Es ist möglich, Seamless SSO mit PHS zu verwenden, das anfällig für andere Missbräuche ist. Überprüfen Sie es in:
Az - Seamless SSOReferenzen
Last updated