Az - Conditional Access Policies & MFA Bypass
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)
Bedingte Zugriffsrichtlinien in Azure sind Regeln, die in Microsoft Azure eingerichtet sind, um den Zugriff auf Azure-Dienste und -Anwendungen basierend auf bestimmten Bedingungen durchzusetzen. Diese Richtlinien helfen Organisationen, ihre Ressourcen zu sichern, indem sie die richtigen Zugriffskontrollen unter den richtigen Umständen anwenden. Bedingte Zugriffsrichtlinien definieren im Wesentlichen Wer auf Was von Wo und Wie zugreifen kann.
Hier sind ein paar Beispiele:
Anmelderisiko-Richtlinie: Diese Richtlinie könnte so eingestellt werden, dass sie eine Multi-Faktor-Authentifizierung (MFA) erfordert, wenn ein Anmelderisiko erkannt wird. Zum Beispiel, wenn das Anmeldeverhalten eines Benutzers im Vergleich zu seinem regulären Muster ungewöhnlich ist, wie z.B. das Anmelden aus einem anderen Land, kann das System zusätzliche Authentifizierung anfordern.
Geräte-Compliance-Richtlinie: Diese Richtlinie kann den Zugriff auf Azure-Dienste nur auf Geräte beschränken, die den Sicherheitsstandards der Organisation entsprechen. Beispielsweise könnte der Zugriff nur von Geräten erlaubt werden, die über aktuelle Antivirensoftware verfügen oder eine bestimmte Betriebssystemversion ausführen.
Es ist möglich, dass eine bedingte Zugriffsrichtlinie einige Informationen überprüft, die leicht manipuliert werden können, was eine Umgehung der Richtlinie ermöglicht. Und wenn beispielsweise die Richtlinie MFA konfiguriert hat, kann der Angreifer sie umgehen.
Bei der Konfiguration einer bedingten Zugriffsrichtlinie ist es erforderlich, die betroffenen Benutzer und Zielressourcen (wie alle Cloud-Apps) anzugeben.
Es ist auch notwendig, die Bedingungen zu konfigurieren, die die Richtlinie auslösen werden:
Netzwerk: IP, IP-Bereiche und geografische Standorte
Kann umgangen werden, indem ein VPN oder Proxy verwendet wird, um sich mit einem Land zu verbinden oder sich von einer erlaubten IP-Adresse anzumelden
Microsoft-Risiken: Benutzer-Risiko, Anmelderisiko, Insider-Risiko
Geräteplattformen: Jedes Gerät oder Auswahl von Android, iOS, Windows Phone, Windows, macOS, Linux
Wenn „Jedes Gerät“ nicht ausgewählt ist, aber alle anderen Optionen ausgewählt sind, ist es möglich, dies mit einem zufälligen User-Agent zu umgehen, der nicht mit diesen Plattformen in Verbindung steht
Client-Apps: Optionen sind „Browser“, „Mobile Apps und Desktop-Clients“, „Exchange ActiveSync-Clients“ und „Andere Clients“
Um die Anmeldung mit einer nicht ausgewählten Option zu umgehen
Filter für Geräte: Es ist möglich, eine Regel zu erstellen, die sich auf das verwendete Gerät bezieht
Authentifizierungsflüsse: Optionen sind „Gerätescodefluss“ und „Authentifizierungsübertragung“
Dies wird einen Angreifer nicht betreffen, es sei denn, er versucht, einen dieser Protokolle in einem Phishing-Versuch zu missbrauchen, um auf das Konto des Opfers zuzugreifen
Die möglichen Ergebnisse sind: Zugriff blockieren oder gewähren mit potenziellen Bedingungen wie MFA erforderlich, Gerät muss konform sein…
Es ist möglich, eine Bedingung basierend auf der Geräteplattform (Android, iOS, Windows, macOS...) festzulegen, jedoch basiert dies auf dem User-Agent, sodass es leicht umgangen werden kann. Selbst wenn alle Optionen MFA erzwingen, wenn du einen User-Agent verwendest, der nicht erkannt wird, kannst du die MFA oder Blockierung umgehen:
Es reicht aus, den Browser einen unbekannten User-Agent senden zu lassen (wie Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile
).
Du kannst den User-Agent manuell in den Entwicklertools ändern:
Oder verwende eine Browsererweiterung wie diese.
Wenn dies in der bedingten Richtlinie festgelegt ist, könnte ein Angreifer einfach ein VPN im erlaubten Land verwenden oder versuchen, einen Weg zu finden, um von einer erlaubten IP-Adresse aus auf diese Bedingungen zuzugreifen.
Es ist möglich, bedingte Zugriffsrichtlinien zu konfigurieren, um zu blockieren oder zu erzwingen, beispielsweise MFA, wenn ein Benutzer versucht, auf eine bestimmte App zuzugreifen:
Um zu versuchen, diesen Schutz zu umgehen, solltest du sehen, ob du nur in eine Anwendung einloggen kannst. Das Tool AzureAppsSweep hat Dutzende von Anwendungs-IDs fest codiert und wird versuchen, sich in diese einzuloggen und dir Bescheid geben und dir sogar das Token geben, wenn es erfolgreich ist.
Um spezifische Anwendungs-IDs in spezifischen Ressourcen zu testen, könntest du auch ein Tool wie verwenden:
Darüber hinaus ist es auch möglich, die Anmeldemethode zu schützen (z. B. wenn Sie versuchen, sich über den Browser oder eine Desktop-Anwendung anzumelden). Das Tool Invoke-MFASweep führt einige Überprüfungen durch, um zu versuchen, diese Schutzmaßnahmen zu umgehen.
Das Tool donkeytoken könnte ebenfalls für ähnliche Zwecke verwendet werden, obwohl es unmaintained aussieht.
Das Tool ROPCI kann ebenfalls verwendet werden, um diese Schutzmaßnahmen zu testen und zu sehen, ob es möglich ist, MFAs oder Sperren zu umgehen, aber dieses Tool funktioniert aus einer whitebox Perspektive. Zuerst müssen Sie die Liste der im Mandanten erlaubten Apps herunterladen und dann wird es versuchen, sich bei ihnen anzumelden.
Eine Azure MFA-Option besteht darin, einen Anruf an die konfigurierte Telefonnummer zu erhalten, bei dem der Benutzer gebeten wird, das Zeichen #
zu senden.
Da Zeichen nur Töne sind, könnte ein Angreifer die Voicemail-Nachricht der Telefonnummer kompromittieren, die Nachricht so konfigurieren, dass der Ton von #
wiedergegeben wird, und dann, wenn die MFA angefordert wird, sicherstellen, dass das Telefon des Opfers besetzt ist (indem er anruft), sodass der Azure-Anruf an die Voicemail umgeleitet wird.
Richtlinien verlangen oft ein konformes Gerät oder MFA, sodass ein Angreifer ein konformes Gerät registrieren und ein PRT-Token erhalten könnte, um auf diese Weise die MFA zu umgehen.
Beginnen Sie mit der Registrierung eines konformen Geräts in Intune, und holen Sie dann den PRT mit:
Finden Sie weitere Informationen zu dieser Art von Angriff auf der folgenden Seite:
Dieses Skript erhält einige Benutzeranmeldeinformationen und überprüft, ob es sich bei einigen Anwendungen anmelden kann.
Dies ist nützlich, um zu sehen, ob Sie kein MFA benötigen, um sich bei einigen Anwendungen anzumelden, die Sie später möglicherweise missbrauchen, um Privilegien zu eskalieren.
Holen Sie sich alle Richtlinien.
MFASweep ist ein PowerShell-Skript, das versucht, sich mit einem bereitgestellten Satz von Anmeldeinformationen bei verschiedenen Microsoft-Diensten anzumelden und zu überprüfen, ob MFA aktiviert ist. Je nachdem, wie die bedingten Zugriffsrichtlinien und andere Einstellungen zur Multi-Faktor-Authentifizierung konfiguriert sind, können einige Protokolle als Einzel-Faktor verbleiben. Es gibt auch eine zusätzliche Überprüfung der ADFS-Konfigurationen und kann versuchen, sich beim lokalen ADFS-Server anzumelden, wenn dieser erkannt wird.
Dieses Tool hat dabei geholfen, MFA-Umgehungen zu identifizieren und dann APIs in mehreren Produktions-AAD-Mandanten auszunutzen, wo AAD-Kunden glaubten, dass MFA durchgesetzt war, aber die Authentifizierung basierend auf ROPC erfolgreich war.
Sie müssen die Berechtigungen haben, um alle Anwendungen aufzulisten, um die Liste der Apps zu generieren, die brute-forced werden sollen.
Donkey token ist eine Sammlung von Funktionen, die Sicherheitsberatern helfen sollen, die Conditional Access Policies zu validieren, Tests für 2FA-aktivierte Microsoft-Portale usw.
Testen Sie jedes Portal, ob es möglich ist, sich ohne MFA anzumelden:
Weil das Azure Portal nicht eingeschränkt ist, ist es möglich, ein Token vom Portal-Endpunkt zu sammeln, um auf jeden Dienst zuzugreifen, der durch die vorherige Ausführung erkannt wurde. In diesem Fall wurde Sharepoint identifiziert, und ein Token zum Zugriff darauf wird angefordert:
Angenommen, das Token hat die Berechtigung Sites.Read.All (von Sharepoint), selbst wenn Sie aufgrund von MFA nicht auf Sharepoint über das Web zugreifen können, ist es möglich, das Token zu verwenden, um auf die Dateien mit dem generierten Token zuzugreifen:
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)