Az - Conditional Access Policies / MFA Bypass

Unterstützen Sie HackTricks

Grundinformationen

Azure-Bedingte Zugriffsrichtlinien sind Regeln, die in Microsoft Azure eingerichtet sind, um Zugriffskontrollen 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 Grunde Wer Was von Wo und Wie zugreifen kann.

Hier sind ein paar Beispiele:

  1. 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.

  2. 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.

Umgehungen der bedingten Zugriffsrichtlinien

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.

Geräteplattformen - Gerätebedingung

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 ziemlich einfach ist, dies zu umgehen. Selbst wenn alle Optionen MFA erzwingen, können Sie mit einem User-Agent, den es nicht erkennt, die MFA umgehen.

Standorte: Länder, IP-Bereiche - Gerätebedingung

Natürlich, 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.

Office365-Client-Apps

Sie könnten angeben, dass, wenn Clients auf Office 365-Apps über den Browser zugreifen, sie MFA benötigen:

Um dies zu umgehen, ist es möglich, vorzutäuschen, dass Sie sich über eine Desktop-Anwendung (wie Microsoft Teams im folgenden Beispiel) in eine App einloggen, was den Schutz umgeht:

roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokrns-stdout

<token>

Da die Microsoft Teams-App viele Berechtigungen hat, können Sie diesen Zugriff nutzen.

Sie können die ID von weiteren öffentlichen Anwendungen mit vordefinierten Office365-Berechtigungen in der Datenbank von roadtools finden:

SELECT appId, displayName FROM ApplicationRefs WHERE publicCLient = 1 ORDER BY displayName ASC

Dieser Angriff ist besonders interessant, da standardmäßig öffentliche Office365-Anwendungen Berechtigungen zum Zugriff auf einige Daten haben.

Andere Apps

Standardmäßig haben andere von Benutzern erstellte Apps keine Berechtigungen und könnten privat sein. Benutzer könnten jedoch auch öffentliche Apps erstellen, die ihnen einige Berechtigungen gewähren.

Ein potenzielles Szenario, in dem eine Richtlinie MFA für den Zugriff auf eine Anwendung erfordert, wenn der Benutzer einen Browser verwendet (vielleicht, weil es sich um eine Webanwendung handelt und dies daher der einzige Weg sein wird), könnte sein, dass es eine Proxy-Anwendung gibt - eine Anwendung, die im Auftrag von Benutzern mit anderen Apps interagieren darf. Der Benutzer könnte sich in der Proxy-Anwendung anmelden und dann über diese Proxy-Anwendung in die ursprünglich MFA-geschützte App einloggen.

Überprüfen Sie die Invoke-MFASweep und die donkeytoken Techniken.

Andere Az MFA Umgehungen

Klingelton

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.

Konforme Geräte

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:

$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials

$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

Finden Sie weitere Informationen zu dieser Art von Angriff auf der folgenden Seite:

Tooling

Holen Sie sich alle Richtlinien

roadrecon plugin policies

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.

Invoke-MFASweep -Username <username> -Password <pass>

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. durchzuführen.

Import-Module 'C:\Users\Administrador\Desktop\Azure\Modulos ps1\donkeytoken' -Force

Testen Sie jedes Portal, ob es möglich ist, sich ohne MFA anzumelden:

Test-MFA -credential $cred -Verbose -Debug -InformationAction Continue

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 für den Zugriff darauf wird angefordert:

$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token

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:

$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl

Referenzen

Unterstützen Sie HackTricks

Last updated