Az - Conditional Access Policies / MFA Bypass

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Grundlegende Informationen

Azure Conditional Access-Richtlinien sind Regeln, die in Microsoft Azure eingerichtet werden, 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:

  1. Anmelde-Risiko-Richtlinie: Diese Richtlinie könnte so eingestellt werden, dass eine Multi-Faktor-Authentifizierung (MFA) erforderlich ist, wenn ein Anmelde-Risiko erkannt wird. Wenn sich beispielsweise das Anmeldeverhalten eines Benutzers im Vergleich zu seinem regulären Muster ungewöhnlich verhält, z. B. wenn er sich aus einem anderen Land anmeldet, kann das System eine zusätzliche Authentifizierung anfordern.

  2. Gerätekonformitätsrichtlinie: Diese Richtlinie kann den Zugriff auf Azure-Dienste nur auf Geräte beschränken, die mit den Sicherheitsstandards der Organisation konform sind. Beispielsweise könnte der Zugriff nur von Geräten erlaubt sein, die über aktuelle Antivirensoftware verfügen oder eine bestimmte Betriebssystemversion ausführen.

Umgehungen von bedingten Zugriffsrichtlinien

Es ist möglich, dass eine bedingte Zugriffsrichtlinie einige Informationen überprüft, die leicht manipuliert werden können, um die Richtlinie zu umgehen. Und wenn beispielsweise die Richtlinie MFA konfiguriert hat, wird der Angreifer in der Lage sein, sie zu umgehen.

Geräteplattformen - Gerätebedingung

Es ist möglich, eine Bedingung basierend auf der Geräteplattform (Android, iOS, Windows, macOS) festzulegen, dies basiert jedoch auf dem User-Agent, sodass es ziemlich einfach ist, dies zu umgehen. Selbst wenn alle Optionen die MFA erzwingen, können Sie die MFA umgehen, wenn Sie einen User-Agent verwenden, den er nicht erkennt.

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

Natürlich könnte ein Angreifer, wenn dies in der bedingten Richtlinie festgelegt ist, einfach ein VPN im zugelassenen Land verwenden oder versuchen, einen Weg zu finden, um von einer zugelassenen IP-Adresse aus zuzugreifen, um diese Bedingungen zu umgehen.

Office365-Client-Apps

Sie könnten angeben, dass Clients, die Office 365-Apps über den Browser aufrufen, MFA benötigen:

Um dies zu umgehen, ist es möglich vorzugeben, dass Sie sich in einer App von einer Desktop-Anwendung aus einloggen (wie zum Beispiel in Microsoft Teams im folgenden Beispiel), was den Schutz umgehen wird:

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, werden Sie in der Lage sein, auf diesen Zugriff zuzugreifen.

Sie können die ID weiterer öffentlicher 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, denen einige Berechtigungen erteilt werden.

Ein potenzielles Szenario, in dem eine Richtlinie festgelegt ist, die MFA erfordert, um auf eine Anwendung zuzugreifen, wenn der Benutzer einen Browser verwendet (vielleicht weil es sich um eine Webanwendung handelt und dies daher der einzige Weg ist), wenn es eine Proxy-Anwendung gibt - eine Anwendung, die es erlaubt, mit anderen Apps im Namen von Benutzern zu interagieren -, könnte der Benutzer sich in der Proxy-Anwendung anmelden und dann über diese Proxy-Anwendung in die anfänglich durch MFA geschützte App einloggen.

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

Andere Az MFA Umgehungen

Klingelton

Eine Azure MFA-Option besteht darin, einen Anruf auf die konfigurierte Telefonnummer zu erhalten, bei dem der Benutzer aufgefordert wird, das Zeichen # zu senden.

Da Zeichen nur Töne sind, könnte ein Angreifer die Voicemail-Nachricht der Telefonnummer kompromittieren, als Nachricht den Ton von # konfigurieren und dann, wenn die MFA angefordert wird, sicherstellen, dass das Telefon des Opfers besetzt ist (es anrufen), damit der Azure-Anruf zur Voicemail umgeleitet wird.

Konforme Geräte

Richtlinien verlangen oft ein konformes Gerät oder MFA, daher könnte ein Angreifer ein konformes Gerät registrieren, ein PRT-Token erhalten und auf diese Weise die MFA umgehen.

Beginnen Sie mit der Registrierung eines konformen Geräts in Intune, dann erhalten Sie das PRT mit:

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

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

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

Werkzeuge

Erhalten Sie alle Richtlinien

roadrecon plugin policies

MFASweep ist ein PowerShell-Skript, das versucht, sich bei verschiedenen Microsoft-Diensten mit einem bereitgestellten Satz von Anmeldeinformationen anzumelden und zu überprüfen, ob MFA aktiviert ist. Je nach Konfiguration der bedingten Zugriffsrichtlinien und anderer Einstellungen für die Multi-Faktor-Authentifizierung können einige Protokolle möglicherweise nur mit einem Faktor verbleiben. Es enthält auch eine zusätzliche Überprüfung für 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 Reihe von Funktionen, die Sicherheitsberatern helfen sollen, die Bedingten Zugriffsrichtlinien zu validieren, Tests für 2FA-fähige Microsoft-Portale durchzuführen, usw.

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

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

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

Da das Azure-Portal nicht eingeschränkt ist, ist es möglich, einen Token vom Portal-Endpunkt zu sammeln, um auf jeden erkannten Dienst zuzugreifen, der in der vorherigen Ausführung identifiziert wurde. In diesem Fall wurde Sharepoint identifiziert, und es wird ein Token zum Zugriff darauf 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 im 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

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated