Az - Conditional Access Policies / MFA Bypass

Impara l'hacking di AWS da zero a esperto con htARTE (Esperto Red Team di HackTricks su AWS)!

Altri modi per supportare HackTricks:

Informazioni di Base

Le politiche di Accesso Condizionale di Azure sono regole impostate in Microsoft Azure per imporre controlli di accesso ai servizi e alle applicazioni di Azure in base a determinate condizioni. Queste politiche aiutano le organizzazioni a proteggere le proprie risorse applicando i giusti controlli di accesso nelle giuste circostanze. Le politiche di accesso condizionale definiscono fondamentalmente 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 loro modello abituale, come accedere 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 di Azure solo ai dispositivi conformi agli standard di sicurezza dell'organizzazione. Ad esempio, l'accesso potrebbe essere consentito solo da dispositivi con software antivirus aggiornato o che eseguono una determinata versione del sistema operativo.

Bypass delle Politiche di Accesso Condizionale

È possibile che una politica di accesso condizionale stia controllando alcune informazioni che possono essere facilmente manomesse consentendo un bypass della politica. E se ad esempio la politica stava configurando l'MFA, l'attaccante sarà in grado di evitarla.

Piattaforme Dispositivo - Condizione Dispositivo

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

Posizioni: Paesi, intervalli IP - Condizione Dispositivo

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

App Client Office365

Potresti indicare che se i clienti accedono alle app di Office 365 dal browser hanno bisogno di MFA:

Per evitare questo, è possibile fingere di accedere a un'app da un'applicazione desktop (come ad esempio Microsoft Teams nell'esempio seguente) che eluderà la protezione:

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

<token>

Poiché l'applicazione Microsoft Teams ha molti permessi, sarai in grado di utilizzare quell'accesso.

Puoi trovare l'ID di altre applicazioni pubbliche con le autorizzazioni predefinite di Office365 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 autorizzazioni per accedere ad alcuni dati.

Altre app

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

Un potenziale scenario in cui una policy è impostata per richiedere MFA per accedere a un'applicazione quando l'utente sta utilizzando un browser (forse perché si tratta di 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 effettuare il login nell'applicazione proxy e quindi attraverso questa applicazione proxy effettuare il login nell'applicazione inizialmente protetta da MFA.

Controlla le tecniche Invoke-MFASweep e donkeytoken.

Altri bypass di Az MFA

Suoneria

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

Poiché i caratteri sono solo toni, un attaccante potrebbe compromettere il messaggio segreteria telefonica del numero di telefono, configurare come messaggio il tono di # e quindi, quando viene richiesto l'MFA, assicurarsi che il telefono delle vittime 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, quindi ottieni il PRT con:

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

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

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

Trova ulteriori informazioni su questo tipo di attacco nella seguente pagina:

pageAz - Pass the PRT

Strumenti

Ottieni tutte le policy

roadrecon plugin policies

MFASweep è uno script PowerShell che cerca di effettuare l'accesso a vari servizi Microsoft utilizzando un set di credenziali fornito e cercherà di identificare se MFA è abilitato. A seconda di come sono configurate le policy di accesso condizionale e altre impostazioni di autenticazione multi-fattore, alcuni protocolli potrebbero finire per essere a singolo fattore. Ha anche un controllo aggiuntivo per le configurazioni ADFS e può tentare di accedere al server ADFS locale 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 Policy di Accesso Condizionale, test per i portali Microsoft abilitati alla 2FA, ecc..

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

Testa ogni portale se è possibile effettuare l'accesso senza MFA:

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

Poiché il portale Azure non è vincolato, è possibile raccogliere un token dal punto di accesso 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

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

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

Riferimenti

Impara l'hacking su AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Last updated