Az - Illicit Consent Grant
OAuth-App-Phishing
Azure-Anwendungen fordern Berechtigungen zum Zugriff auf die Benutzerdaten an (Grundlegende Informationen, aber auch Zugriff auf Dokumente, Senden von E-Mails...).
Wenn zugelassen, kann ein normaler Benutzer nur die Zustimmung für "geringe Auswirkungen" Berechtigungen erteilen. In allen anderen Fällen ist Administratorzustimmung erforderlich.
GA
, ApplicationAdministrator
, CloudApplication
Administrator
und eine benutzerdefinierte Rolle, die Berechtigung zum Erteilen von Berechtigungen an Anwendungen
enthält, können eine mandantenweite Zustimmung erteilen.
Nur Berechtigungen, die keine Administratorzustimmung erfordern, werden als geringe Auswirkungen eingestuft. Diese Berechtigungen sind für die grundlegende Anmeldung erforderlich: openid, Profil, E-Mail, User.Read und offline_access. Wenn eine Organisation die Benutzerzustimmung für alle Apps zulässt, kann ein Mitarbeiter einer App die Zustimmung erteilen, um die oben genannten Informationen aus seinem Profil zu lesen.
Daher könnte ein Angreifer eine bösartige App vorbereiten und mit einem Phishing den Benutzer dazu bringen, die App zu akzeptieren und seine Daten zu stehlen.
2 Arten von Illegitimen Zustimmungserteilungsangriffen
Nicht authentifiziert: Erstellen Sie von einem externen Konto aus eine Anwendung mit den Berechtigungen
User.Read
undUser.ReadBasic.All
und fischen Sie beispielsweise einen Benutzer ab, um auf Verzeichnisinformationen zugreifen zu können.Dies erfordert, dass der gefischte Benutzer OAuth-Apps aus externen Umgebungen akzeptieren kann!
Authentifiziert: Nachdem ein Hauptkonto mit ausreichenden Berechtigungen kompromittiert wurde, erstellen Sie eine Anwendung im Konto und fischen Sie einen privilegierten Benutzer ab, der privilegierte OAuth-Berechtigungen akzeptieren kann.
In diesem Fall können Sie bereits auf die Informationen des Verzeichnisses zugreifen, daher ist die Berechtigung
User.ReadBasic.All
nicht mehr interessant.Sie sind wahrscheinlich an Berechtigungen interessiert, für die ein Administrator sie erteilen muss, da ein normaler Benutzer OAuth-Apps keine Berechtigung erteilen kann. Deshalb müssen Sie nur diese Benutzer fischen (mehr dazu, welche Rollen/Berechtigungen dieses Privileg gewähren, später)
Überprüfen, ob Benutzer Zustimmung erteilen dürfen
Der folgende PowerShell-Befehl wird verwendet, um die Zustimmungskonfiguration für Benutzer in Azure Active Directory (Azure AD) in Bezug auf ihre Fähigkeit zur Zustimmung zu Anwendungen zu überprüfen:
Deaktivieren der Benutzerzustimmung: Diese Einstellung verbietet Benutzern, Berechtigungen an Anwendungen zu erteilen. Es ist keine Benutzerzustimmung zu Anwendungen erlaubt.
Benutzer können Apps von verifizierten Herausgebern oder Ihrer Organisation zustimmen, jedoch nur für ausgewählte Berechtigungen: Diese Einstellung erlaubt allen Benutzern nur die Zustimmung zu Anwendungen, die von einem verifizierten Herausgeber veröffentlicht wurden und Anwendungen, die in Ihrem eigenen Mandanten registriert sind. Es fügt eine Kontrollebene hinzu, indem nur für spezifische Berechtigungen Zustimmung erteilt werden kann.
Benutzer können allen Apps zustimmen: Diese Einstellung ist großzügiger und erlaubt allen Benutzern, jeder Anwendung zuzustimmen, solange diese Berechtigungen keine administrative Zustimmung erfordern.
Benutzerdefinierte App-Zustimmungsrichtlinie: Diese Einstellung zeigt an, dass eine benutzerdefinierte Richtlinie vorhanden ist, die an spezifische organisatorische Anforderungen angepasst werden kann und möglicherweise eine Kombination von Einschränkungen basierend auf dem App-Herausgeber, den angeforderten Berechtigungen der App und anderen Faktoren beinhaltet.
Verständnis des Angriffs durch illegitime Zustimmung
Bei einem Angriff durch illegitime Zustimmung täuschen Angreifer Endbenutzer dazu, Berechtigungen für eine bösartige Anwendung zu erteilen, die bei Azure registriert ist. Dies geschieht, indem die Anwendung als legitim erscheint und Opfer unwissentlich auf eine Schaltfläche "Akzeptieren" klicken. Als Ergebnis stellt Azure AD einem Angreifer eine Token aus, die es ihnen ermöglichen, auf die Daten des Opfers zuzugreifen und diese zu manipulieren, wie beispielsweise das Lesen oder Senden von E-Mails und der Zugriff auf Dateien, ohne ein organisatorisches Konto zu benötigen.
Überblick über den Angriffsablauf
Der Angriff umfasst mehrere Schritte, die auf ein generisches Unternehmen abzielen. So könnte er sich entfalten:
Domainregistrierung und Anwendungshosting: Der Angreifer registriert eine Domain, die einer vertrauenswürdigen Website ähnelt, z. B. "sicheredomainanmeldung.com". Unter dieser Domain wird ein Subdomain erstellt (z. B. "firmenname.sicheredomainanmeldung.com"), um eine Anwendung zu hosten, die dazu dient, Autorisierungscodes zu erfassen und Zugriffstoken anzufordern.
Anwendungsregistrierung in Azure AD: Der Angreifer registriert dann eine Multi-Tenant-Anwendung in seinem Azure AD-Mandanten, benennt sie nach dem Zielunternehmen, um legitim zu erscheinen. Sie konfigurieren die Redirect-URL der Anwendung so, dass sie auf die Subdomain zeigt, auf der die bösartige Anwendung gehostet wird.
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, im Namen des Benutzers sensible Informationen abzurufen, sobald sie vom Benutzer erteilt wurden.Verteilen von bösartigen Links: Der Angreifer erstellt einen Link, der die Client-ID der bösartigen Anwendung enthält, und teilt ihn mit gezielten Benutzern, um sie zur Zustimmung zu verleiten.
Verwendung von Tools für den Angriff
Der Angriff kann mithilfe von Tools wie 365-Stealer erleichtert werden.
Vorbereitung vor dem Angriff:
Wenn der Angreifer auf irgendeiner Ebene Zugriff auf einen Benutzer in der Opferorganisation hat, könnte er überprüfen, ob die Richtlinie der Organisation es dem Benutzer erlaubt, Apps zu akzeptieren:
Um den Angriff auszuführen, müsste der Angreifer eine neue App in seinem Azure-Mandanten (in App-Registrierungen) erstellen, konfiguriert mit den Berechtigungen:
User.ReadBasic.All
befindet sich in Microsoft Graph
unter Delegated permissions
. (Anwendungsrechte erfordern immer zusätzliche Genehmigungen).
User.ReadBasic.All
ist die Berechtigung, die es Ihnen ermöglicht, Informationen aller Benutzer in der Organisation zu lesen, wenn sie gewährt wird.Denken Sie daran, dass nur
GA
,ApplicationAdministrator
,CloudApplication Administrator
und eine benutzerdefinierte Rolle, dieBerechtigung zum Gewähren von Berechtigungen an Anwendungen
enthält, eine mandantenweite Zustimmung erteilen können. Daher sollten Sie versuchen, einen Benutzer mit einer dieser Rollen zu phishen, wenn Sie möchten, dass er eine App genehmigt, die Administratorzustimmung erfordert.
Sie könnten auch eine App über die Befehlszeile erstellen mit:
Überprüfen Sie https://www.alteredsecurity.com/post/introduction-to-365-stealer, um zu erfahren, wie Sie es konfigurieren können.
Beachten Sie, dass das erhaltene Zugriffstoken für den Graph-Endpunkt mit den Berechtigungen User.Read
und User.ReadBasic.All
(die angeforderten Berechtigungen) sein wird. Sie können keine anderen Aktionen ausführen (aber diese reichen aus, um Informationen über alle Benutzer in der Organisation herunterzuladen).
Sie könnten auch dieses Tool verwenden, um diesen Angriff durchzuführen.
Post-Exploitation
Sobald Sie Zugriff auf den Benutzer haben, können Sie Dinge wie das Stehlen sensibler Dokumente und sogar das Hochladen von Backdoored-Dokumentdateien tun.
References
Last updated