Az - Cloud Kerberos Trust
Lernen & üben Sie AWS-Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP-Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Dieser Beitrag ist eine Zusammenfassung von https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/ , der für weitere Informationen über den Angriff überprüft werden kann. Diese Technik wird auch in https://www.youtube.com/watch?v=AFay_58QubY kommentiert.
Grundlegende Informationen
Vertrauen
Wenn ein Vertrauen mit Azure AD hergestellt wird, wird ein Read Only Domain Controller (RODC) im AD erstellt. Das RODC-Computerkonto wird AzureADKerberos$
genannt. Außerdem wird ein sekundäres krbtgt
-Konto namens krbtgt_AzureAD
erstellt. Dieses Konto enthält die Kerberos-Schlüssel, die für Tickets verwendet werden, die von Azure AD erstellt werden.
Daher könnte es möglich sein, jeden Benutzer zu imitieren, wenn dieses Konto kompromittiert ist... obwohl dies nicht stimmt, da dieses Konto daran gehindert wird, Tickets für beliebige privilegierte AD-Gruppen wie Domänenadministratoren, Unternehmensadministratoren, Administratoren usw. zu erstellen...
In einem realen Szenario wird es jedoch privilegierte Benutzer geben, die nicht in diesen Gruppen sind. Daher könnte das neue krbtgt-Konto, wenn es kompromittiert ist, verwendet werden, um sie zu imitieren.
Kerberos TGT
Darüber hinaus wird bei der Authentifizierung eines Benutzers unter Windows mit einer hybriden Identität über Azure AD ein teilweises Kerberos-Ticket zusammen mit dem PRT ausgestellt. Das TGT ist teilweise, weil AzureAD begrenzte Informationen über den Benutzer im lokalen AD hat (wie die Sicherheitskennung (SID) und den Namen).
Windows kann dann dieses teilweise TGT gegen ein vollständiges TGT eintauschen, indem es ein Dienstticket für den Dienst krbtgt
anfordert.
NTLM
Da es Dienste geben könnte, die keine Kerberos-Authentifizierung, sondern NTLM unterstützen, ist es möglich, ein teilweises TGT zu fordern, das mit einem sekundären krbtgt
-Schlüssel signiert ist, einschließlich des KERB-KEY-LIST-REQ
-Felds im PADATA-Teil der Anforderung, und dann ein vollständiges TGT zu erhalten, das mit dem primären krbtgt
-Schlüssel signiert ist, einschließlich des NT-Hash im Antwort.
Ausnutzen des Cloud Kerberos Trusts zur Erlangung von Domänenadministratorrechten
Wenn AzureAD ein teilweises TGT generiert, verwendet es die Details, die es über den Benutzer hat. Daher, wenn ein Globaler Administrator Daten wie die Sicherheitskennung und den Namen des Benutzers in AzureAD ändern könnte, würde bei der Anforderung eines TGT für diesen Benutzer die Sicherheitskennung eine andere sein.
Es ist nicht möglich, dies über das Microsoft Graph oder den Azure AD Graph zu tun, aber es ist möglich, die API Active Directory Connect zu verwenden, die von den Globalen Administratoren verwendet werden kann, um den SAM-Namen und die SID eines beliebigen hybriden Benutzers zu ändern, und dann, wenn wir uns authentifizieren, erhalten wir ein teilweises TGT, das die geänderte SID enthält.
Beachten Sie, dass wir dies mit AADInternals tun können und aktualisieren synchronisierter Benutzer über das Set-AADIntAzureADObject Cmdlet.
Angriffsvoraussetzungen
Der Erfolg des Angriffs und die Erlangung von Domänenadministratorrechten hängen von der Erfüllung bestimmter Voraussetzungen ab:
Die Fähigkeit, Konten über die Synchronisierungs-API zu ändern, ist entscheidend. Dies kann erreicht werden, indem man die Rolle des Globalen Administrators hat oder im Besitz eines AD Connect Sync-Kontos ist. Alternativ würde die Rolle des Hybrid Identity Administrators ausreichen, da sie die Möglichkeit bietet, AD Connect zu verwalten und neue Sync-Konten einzurichten.
Das Vorhandensein eines hybriden Kontos ist unerlässlich. Dieses Konto muss für Änderungen mit den Details des Opferkontos anfällig sein und sollte auch für die Authentifizierung zugänglich sein.
Die Identifizierung eines Ziel-Opferkontos im Active Directory ist eine Notwendigkeit. Obwohl der Angriff auf jedes bereits synchronisierte Konto ausgeführt werden kann, darf der Azure AD-Mandant keine lokal replizierten Sicherheitskennungen haben, was die Änderung eines nicht synchronisierten Kontos zur Beschaffung des Tickets erforderlich macht.
Darüber hinaus sollte dieses Konto über Domänenadministrator-äquivalente Berechtigungen verfügen, darf jedoch kein Mitglied typischer AD-Administratorengruppen sein, um die Generierung ungültiger TGTs durch den AzureAD RODC zu vermeiden.
Das geeignetste Ziel ist das Active Directory-Konto, das vom AD Connect Sync-Dienst verwendet wird. Dieses Konto wird nicht mit Azure AD synchronisiert, sodass seine SID als mögliches Ziel bleibt, und es besitzt inhärent Domänenadministrator-äquivalente Berechtigungen aufgrund seiner Rolle bei der Synchronisierung von Passworthashes (sofern die Passworthashsynchronisierung aktiv ist). Für Domänen mit Expressinstallation wird dieses Konto mit MSOL_ vorangestellt. In anderen Fällen kann das Konto durch Aufzählen aller Konten ermittelt werden, die mit Replikationsberechtigungen für das Domänenobjekt ausgestattet sind.
Der vollständige Angriff
Überprüfen Sie dies im Originalbeitrag: https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/
Lernen & üben Sie AWS-Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP-Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated