Az - Conditional Access Policies / MFA Bypass

Support HackTricks

Informazioni di Base

Le politiche di Accesso Condizionale di Azure sono regole impostate in Microsoft Azure per applicare controlli di accesso ai servizi e alle applicazioni Azure basati su determinate condizioni. Queste politiche aiutano le organizzazioni a proteggere le loro risorse applicando i giusti controlli di accesso nelle giuste circostanze. Le politiche di accesso condizionale fondamentalmente definiscono Chi può accedere a Cosa da Dove e Come.

Ecco un paio di esempi:

  1. Politica di Rischio di Accesso: Questa politica potrebbe essere impostata per richiedere l'autenticazione multi-fattore (MFA) quando viene rilevato un rischio di accesso. Ad esempio, se il comportamento di accesso di un utente è insolito rispetto al suo modello regolare, come l'accesso da un paese diverso, il sistema può richiedere un'autenticazione aggiuntiva.

  2. Politica di Conformità del Dispositivo: Questa politica può limitare l'accesso ai servizi Azure solo ai dispositivi conformi agli standard di sicurezza dell'organizzazione. Ad esempio, l'accesso potrebbe essere consentito solo da dispositivi che hanno software antivirus aggiornato o che eseguono una certa versione del sistema operativo.

Bypass delle Politiche di Accesso Condizionale

È possibile che una politica di accesso condizionale controlli alcune informazioni che possono essere facilmente manomesse permettendo un bypass della politica. E se, ad esempio, la politica configurava MFA, l'attaccante sarà in grado di bypassarla.

Piattaforme Dispositivo - Condizione del Dispositivo

È possibile impostare una condizione basata sulla piattaforma del dispositivo (Android, iOS, Windows, macOS), tuttavia, questo si basa sul user-agent quindi è abbastanza facile da bypassare. Anche impostando tutte le opzioni per applicare MFA, se si utilizza un user-agent che non riconosce si sarà in grado di bypassare l'MFA.

Posizioni: Paesi, Intervalli IP - Condizione del Dispositivo

Ovviamente, se questo è impostato nella politica condizionale, un attaccante potrebbe semplicemente utilizzare una VPN nel paese consentito o cercare di trovare un modo per accedere da un indirizzo IP consentito per bypassare queste condizioni.

App Client Office365

Si potrebbe indicare che se i client accedono alle app di Office 365 dal browser necessitano di MFA:

Per bypassare questo, è possibile fingere di accedere a un'app da un'applicazione desktop (come Microsoft Teams nel seguente esempio) che bypasserà la protezione:

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

<token>

Poiché l'app Microsoft Teams ha molte autorizzazioni, sarai in grado di utilizzare tale accesso.

Puoi trovare l'ID di più applicazioni pubbliche con autorizzazioni Office365 predefinite nel database di roadtools:

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

Questo attacco è particolarmente interessante perché di default le applicazioni pubbliche di Office365 avranno permessi per accedere a certi dati.

Altre app

Di default, altre app create dagli utenti non avranno permessi e potrebbero essere private. Tuttavia, gli utenti potrebbero anche creare app pubbliche concedendo loro alcuni permessi.

Uno scenario potenziale in cui una policy è impostata per richiedere MFA per accedere a un'applicazione quando l'utente utilizza un browser (forse perché è un'applicazione web e quindi sarà l'unico modo), se c'è un'applicazione proxy -un'applicazione autorizzata a interagire con altre app per conto degli utenti-, l'utente potrebbe accedere all'applicazione proxy e poi attraverso questa applicazione proxy accedere all'app inizialmente protetta da MFA.

Controlla le tecniche Invoke-MFASweep e donkeytoken.

Altri Az MFA Bypasses

Suoneria

Una delle opzioni di Azure MFA è ricevere una chiamata al numero di telefono configurato dove verrà chiesto all'utente di inviare il carattere #.

Poiché i caratteri sono solo toni, un attaccante potrebbe compromettere il messaggio della segreteria telefonica del numero di telefono, configurare come messaggio il tono di # e poi, quando richiede l'MFA, assicurarsi che il telefono della vittima sia occupato (chiamandolo) in modo che la chiamata di Azure venga reindirizzata alla segreteria telefonica.

Dispositivi conformi

Le policy spesso richiedono un dispositivo conforme o MFA, quindi un attaccante potrebbe registrare un dispositivo conforme, ottenere un token PRT e bypassare in questo modo l'MFA.

Inizia registrando un dispositivo conforme in Intune, poi ottieni il PRT con:

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

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

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

Find more information about this kind of attack in the following page:

Az - Pass the PRT

Strumenti

Ottieni tutte le politiche

roadrecon plugin policies

MFASweep è uno script PowerShell che tenta di accedere a vari servizi Microsoft utilizzando un set di credenziali fornito e tenterà di identificare se MFA è abilitato. A seconda di come sono configurate le politiche di accesso condizionale e altre impostazioni di autenticazione multi-fattore, alcuni protocolli potrebbero finire per essere lasciati a fattore singolo. Ha anche un controllo aggiuntivo per le configurazioni ADFS e può tentare di accedere al server ADFS on-premises se rilevato.

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

Donkey token è un insieme di funzioni che mirano ad aiutare i consulenti di sicurezza che devono convalidare le Conditional Access Policies, test per portali Microsoft con 2FA abilitato, ecc.

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

Testa ogni portale se è possibile accedere senza MFA:

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

Poiché il portale Azure non è limitato, è possibile raccogliere un token dall'endpoint del portale per accedere a qualsiasi servizio rilevato dall'esecuzione precedente. In questo caso è stato identificato Sharepoint, e viene richiesto un token per accedervi:

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

Supponendo che il token abbia il permesso Sites.Read.All (da Sharepoint), anche se non puoi accedere a Sharepoint dal web a causa di MFA, è possibile utilizzare il token per accedere ai file con il token generato:

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

Riferimenti

Supporta HackTricks

Last updated