Delegieren zulässig
Beschreibung
Der Sicherheitsprinzipal der Quelle darf die eingeschränkte Kerberos-Delegierung (Kerberos Constrained Delegation, KCD) auf dem Zielcomputer durchführen. Das bedeutet, dass er sich bei der Kerberos-Authentifizierung gegenüber jedem auf dem Zielcomputer laufenden Dienst als ein beliebiger Benutzer ausgeben kann.
Daher führt er oft zu einer vollständigen Kompromittierung des Zielcomputers.
Ausnutzung
Angreifer, die den Sicherheitsprinzipal der Quelle kompromittieren, können spezielle Hacker-Tools wie Rubeus verwenden, um legitime Kerberos-Protokollerweiterungen (S4U2self und S4U2proxy) auszunutzen, um Kerberos-Service-Tickets zu fälschen und sich als der gewünschte Benutzer auszugeben. Angreifer geben sich wahrscheinlich als privilegierte Benutzer aus, um privilegierten Zugriff zu erhalten.
Sobald Angreifer das Service-Ticket gefälscht haben, können sie ein beliebiges natives Verwaltungstool oder ein spezialisiertes Hacker-Tool verwenden, das mit Kerberos kompatibel ist, um remote beliebige Befehle auszuführen.
Ein erfolgreicher Ausnutzungsversuch muss die folgenden Bedingungen erfüllen:
-
Der Sicherheitsprinzipal der Quelle muss für den Protokollübergang aktiviert sein (ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION in UserAccountControl / „Beliebiges Authentifizierungsprotokoll verwenden” in der GUI für die Delegierung). Genauer gesagt könnte der Angriff ohne Protokollübergang funktionieren („Nur Kerberos verwenden” in der GUI für die Delegierung), aber die Angreifer müssen zunächst eine Kerberos-Authentifizierung des Zielbenutzers gegenüber dem Sicherheitsprinzipal der Quelle erzwingen, was den Angriff erschwert. Daher stellt Tenable Identity Exposure in diesem Fall keine Angriffsbeziehung her.
-
Die Sicherheitsprinzipale von Quelle und Ziel müssen einen ServicePrincipalName haben. Tenable Identity Exposure erstellt diese Angriffsbeziehung nicht ohne diese Bedingung.
-
Das für das Spoofing anvisierte Konto darf weder als „sensibel und nicht delegierbar” (ADS_UF_NOT_DELEGATED in UserAccountControl) markiert sein noch zur Gruppe „Geschützte Benutzer” gehören, da Active Directory solche Konten vor Delegierungsangriffen schützt.
Im Gegensatz dazu wird der Zielcomputer, auf dem die Delegierung zulässig ist, durch einen Serviceprinzipalnamen (SPN) bezeichnet und enthält somit einen bestimmten Dienst, z. B. SMB mit „cifs/host.example.net“, HTTP mit „http/host.example.net“ usw. Angreifer können jedoch mit einem „Sname-Ersetzungsangriff” auf jeden anderen SPN und Dienst abzielen, der unter demselben Zielkonto läuft. Es handelt sich also nicht um eine Einschränkung.
Behebung
Wenn der Sicherheitsprinzipal der Quelle keine Berechtigung zur Durchführung der eingeschränkten Kerberos-Delegierung (Kerberos Constrained Delegation, KCD) auf dem Zielcomputer benötigt, müssen Sie ihn entfernen. Sie müssen die Änderung auf der Quellseite vornehmen, im Gegensatz zur Angriffsbeziehung der Delegierung „Handlung zugelassen”.
So entfernen Sie den Sicherheitsprinzipal der Quelle:
-
Wechseln Sie in der Verwaltungs-GUI von „Active Directory-Benutzer und -Computer“ zu den Eigenschaften des Quellobjekts > Registerkarte Delegierung.
-
Entfernen Sie den dem Ziel entsprechenden Serviceprinzipalnamen.
-
Wenn Sie keine Delegierung von dieser Quelle wünschen, entfernen Sie alle SPNs und wählen Sie „Diesem Computer für die Delegierung nicht vertrauen”.
Alternativ können Sie PowerShell verwenden, um den Inhalt des Attributs „msDS-AllowedToDelegateTo” der Quelle zu ändern.
-
Führen Sie zum Beispiel in Powershell diesen Befehl aus, um alle Werte zu ersetzen:
KopierenSet-ADObject -Identity "CN=Source,OU=corp,DC=example,DC=net" -Replace @{ "msDS-AllowedToDelegateTo" = @("cifs/desiredTarget.example.net") }
-
Wenn Sie keine Delegierung von dieser Quelle wünschen, führen Sie den folgenden Befehl aus, um das Attribut zu löschen:
KopierenSet-ADObject -Identity "CN=Source,OU=corp,DC=example,DC=net" -Clear "msDS-AllowedToDelegateTo"
Es ist auch möglich, das Risiko zu verringern, ohne diesen Angriffspfad vollständig zu schließen, indem der Protokollübergang deaktiviert wird. Dazu müssen alle Sicherheitsprinzipale eine Verbindung zur Quelle nur über Kerberos anstelle von NTLM herstellen.
So deaktivieren Sie den Protokollübergang:
-
Wechseln Sie in der Verwaltungs-GUI von „Active Directory-Benutzer und -Computer“ zu den Eigenschaften des Quellobjekts > Registerkarte Delegierung.
-
Wählen Sie „Nur Kerberos verwenden” anstelle von „Beliebiges Authentifizierungsprotokoll verwenden”.
Alternativ können Sie auch den folgenden Befehl in PowerShell ausführen, um den Protokollübergang zu deaktivieren:
Set-ADAccountControl -Identity "CN=Source,OU=corp,DC=example,DC=net" -TrustedToAuthForDelegation $false
Um die Anfälligkeit sensibler privilegierter Konten für derartige Delegierungsangriffe zu begrenzen, empfiehlt Tenable Identity Exposure, sie als „sensibel und nicht delegierbar” (ADS_UF_NOT_DELEGATED) zu kennzeichnen oder sie nach sorgfältiger Prüfung der damit verbundenen betrieblichen Auswirkungen zur Gruppe „Geschützte Benutzer” hinzuzufügen.
Siehe auch