Az - OAuth Apps Phishing
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Azure-Anwendungen sind mit den Berechtigungen konfiguriert, die sie verwenden können, wenn ein Benutzer der Anwendung zustimmt (wie das Auflisten des Verzeichnisses, den Zugriff auf Dateien oder das Ausführen anderer Aktionen). Beachte, dass die Anwendung im Namen des Benutzers handelt, sodass die App keine administrativen Aktionen ausführen kann, wenn der Benutzer, der zustimmt, diese Berechtigung nicht hat.
Standardmäßig kann jeder Benutzer Apps zustimmen, obwohl dies so konfiguriert werden kann, dass Benutzer nur Apps von verifizierten Herausgebern für ausgewählte Berechtigungen zustimmen können oder sogar die Berechtigung für Benutzer entfernt wird, Anwendungen zuzustimmen.
Wenn Benutzer nicht zustimmen können, können Administratoren wie GA
, Application Administrator
oder Cloud Application
Administrator
die Zustimmung für die Anwendungen erteilen, die Benutzer verwenden können.
Darüber hinaus, wenn Benutzer nur für Apps mit geringem Risiko zustimmen können, sind diese Berechtigungen standardmäßig openid, profile, email, User.Read und offline_access, obwohl es möglich ist, weitere zu dieser Liste hinzuzufügen.
Und wenn sie allen Apps zustimmen können, können sie allen Apps zustimmen.
Unauthentifiziert: Erstelle von einem externen Konto eine Anwendung mit den geringfügigen Berechtigungen User.Read
und User.ReadBasic.All
, phish einen Benutzer, und du wirst in der Lage sein, auf Verzeichnisinformationen zuzugreifen.
Dies erfordert, dass der phished Benutzer in der Lage ist, OAuth-Apps von externen Mandanten zu akzeptieren.
Wenn der phished Benutzer ein Administrator ist, der jeder App mit beliebigen Berechtigungen zustimmen kann, könnte die Anwendung auch privilegierte Berechtigungen anfordern.
Authentifiziert: Nachdem du einen Principal mit ausreichenden Berechtigungen kompromittiert hast, erstelle eine Anwendung im Konto und phish einen privilegierten Benutzer, der privilegierte OAuth-Berechtigungen akzeptieren kann.
In diesem Fall kannst du bereits auf die Informationen des Verzeichnisses zugreifen, sodass die Berechtigung User.ReadBasic.All
nicht mehr interessant ist.
Du bist wahrscheinlich an Berechtigungen interessiert, die ein Administrator gewähren muss, da normale Benutzer OAuth-Apps keine Berechtigungen erteilen können, weshalb du nur diese Benutzer phishen musst (mehr dazu, welche Rollen/Berechtigungen dieses Privileg gewähren, später).
Beachte, dass du diesen Befehl von einem Benutzer innerhalb des Mandanten ausführen musst, du kannst diese Konfiguration eines Mandanten nicht von einem externen finden. Der folgende CLI kann dir helfen, die Berechtigungen der Benutzer zu verstehen:
Benutzer können allen Apps zustimmen: Wenn Sie in permissionGrantPoliciesAssigned
finden: ManagePermissionGrantsForSelf.microsoft-user-default-legacy
, dann können Benutzer jede Anwendung akzeptieren.
Benutzer können Apps von verifizierten Herausgebern oder Ihrer Organisation zustimmen, jedoch nur für die von Ihnen ausgewählten Berechtigungen: Wenn Sie in permissionGrantPoliciesAssigned
finden: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
, dann können Benutzer jede Anwendung akzeptieren.
Benutzerzustimmung deaktivieren: Wenn Sie in permissionGrantPoliciesAssigned
nur finden: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
und ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
, dann können Benutzer nicht zustimmen.
Es ist möglich, die Bedeutung jeder der kommentierten Richtlinien zu finden in:
Überprüfen Sie die Benutzer, die als Anwendungsadministratoren gelten (können neue Anwendungen akzeptieren):
Der Angriff umfasst mehrere Schritte, die auf ein generisches Unternehmen abzielen. So könnte es ablaufen:
Domainregistrierung und Anwendungs-Hosting: Der Angreifer registriert eine Domain, die einer vertrauenswürdigen Seite ähnelt, zum Beispiel "safedomainlogin.com". Unter dieser Domain wird eine Subdomain erstellt (z. B. "companyname.safedomainlogin.com"), um eine Anwendung zu hosten, die darauf ausgelegt ist, Autorisierungscodes zu erfassen und Zugriffstoken anzufordern.
Anwendungsregistrierung in Azure AD: Der Angreifer registriert dann eine Multi-Tenant-Anwendung in seinem Azure AD-Mandanten und benennt sie nach dem Zielunternehmen, um legitim zu erscheinen. Er konfiguriert die Redirect-URL der Anwendung so, dass sie auf die Subdomain verweist, die die bösartige Anwendung hostet.
Einrichten von Berechtigungen: Der Angreifer richtet die Anwendung mit verschiedenen API-Berechtigungen ein (z. B. Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
). Diese Berechtigungen ermöglichen es dem Angreifer, sensible Informationen im Namen des Benutzers zu extrahieren, sobald sie vom Benutzer gewährt werden.
Verbreitung bösartiger Links: Der Angreifer erstellt einen Link, der die Client-ID der bösartigen Anwendung enthält, und teilt ihn mit gezielten Benutzern, um sie zu täuschen und zur Zustimmung zu bewegen.
Registrieren Sie eine neue Anwendung. Sie kann nur für das aktuelle Verzeichnis sein, wenn Sie einen Benutzer aus dem angegriffenen Verzeichnis verwenden, oder für jedes Verzeichnis, wenn es sich um einen externen Angriff handelt (wie im folgenden Bild).
Setzen Sie auch die Redirect-URI auf die erwartete URL, an der Sie den Code zum Abrufen der Token erhalten möchten (http://localhost:8000/callback
standardmäßig).
Erstellen Sie dann ein Anwendungsgeheimnis:
Wählen Sie API-Berechtigungen aus (z. B. Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
)
Führen Sie die Webseite (azure_oauth_phishing_example) aus, die nach den Berechtigungen fragt:
Senden Sie die URL an das Opfer
In diesem Fall http://localhost:8000
Opfer müssen die Aufforderung akzeptieren:
Verwenden Sie das Zugriffstoken, um auf die angeforderten Berechtigungen zuzugreifen:
365-Stealer: Überprüfen Sie https://www.alteredsecurity.com/post/introduction-to-365-stealer, um zu erfahren, wie Sie es konfigurieren.
Je nach den angeforderten Berechtigungen könnten Sie in der Lage sein, auf verschiedene Daten des Mandanten (Benutzer, Gruppen... oder sogar Einstellungen zu ändern) und Informationen des Benutzers (Dateien, Notizen, E-Mails...) zuzugreifen. Dann können Sie diese Berechtigungen nutzen, um diese Aktionen durchzuführen.
Überprüfen Sie die Abschnitte Anwendungen und Dienstprinzipal der Seite:
Az - EntraID PrivescLernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)