Az - OAuth Apps Phishing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Le applicazioni Azure sono configurate con le autorizzazioni che potranno utilizzare quando un utente acconsente all'applicazione (come enumerare la directory, accedere ai file o eseguire altre azioni). Nota che l'applicazione agirà per conto dell'utente, quindi anche se l'app potrebbe richiedere autorizzazioni di amministrazione, se l'utente che acconsente non ha tale autorizzazione, l'app non sarà in grado di eseguire azioni amministrative.
Per impostazione predefinita, qualsiasi utente può dare consenso alle app, anche se questo può essere configurato affinché gli utenti possano acconsentire solo a app di editori verificati per autorizzazioni selezionate o addirittura rimuovere l'autorizzazione per gli utenti di acconsentire alle applicazioni.
Se gli utenti non possono acconsentire, gli amministratori come GA
, Application Administrator
o Cloud Application
Administrator
possono consentire le applicazioni che gli utenti potranno utilizzare.
Inoltre, se gli utenti possono acconsentire solo a app che utilizzano autorizzazioni a basso rischio, queste autorizzazioni sono per impostazione predefinita openid, profile, email, User.Read e offline_access, anche se è possibile aggiungere altre a questo elenco.
E se possono acconsentire a tutte le app, possono acconsentire a tutte le app.
Non autenticato: Da un account esterno crea un'applicazione con le autorizzazioni a basso rischio User.Read
e User.ReadBasic.All
, ad esempio, phishing di un utente, e sarai in grado di accedere alle informazioni della directory.
Questo richiede che l'utente vittima sia in grado di accettare app OAuth da un tenant esterno
Se l'utente vittima è un amministratore che può consentire qualsiasi app con qualsiasi autorizzazione, l'applicazione potrebbe anche richiedere autorizzazioni privilegiate
Autenticato: Dopo aver compromesso un principale con privilegi sufficienti, crea un'applicazione all'interno dell'account e phishing di un utente privilegiato che può accettare autorizzazioni OAuth privilegiate.
In questo caso puoi già accedere alle informazioni della directory, quindi l'autorizzazione User.ReadBasic.All
non è più interessante.
Probabilmente sei interessato a autorizzazioni che richiedono un amministratore per concederle, perché un utente normale non può dare alcuna autorizzazione alle app OAuth, ecco perché devi phishing solo quegli utenti (più avanti parleremo di quali ruoli/autorizzazioni concedono questo privilegio)
Nota che devi eseguire questo comando da un utente all'interno del tenant, non puoi trovare questa configurazione di un tenant da uno esterno. Il seguente cli può aiutarti a comprendere le autorizzazioni degli utenti:
Gli utenti possono acconsentire a tutte le app: Se all'interno di permissionGrantPoliciesAssigned
puoi trovare: ManagePermissionGrantsForSelf.microsoft-user-default-legacy
allora gli utenti possono accettare ogni applicazione.
Gli utenti possono acconsentire a app di editori verificati o della tua organizzazione, ma solo per le autorizzazioni che selezioni: Se all'interno di permissionGrantPoliciesAssigned
puoi trovare: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
allora gli utenti possono accettare ogni applicazione.
Disabilita il consenso degli utenti: Se all'interno di permissionGrantPoliciesAssigned
puoi trovare solo: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
e ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
allora gli utenti non possono acconsentire a nulla.
È possibile trovare il significato di ciascuna delle politiche commentate in:
Controlla gli utenti che sono considerati amministratori dell'applicazione (possono accettare nuove applicazioni):
L'attacco coinvolge diversi passaggi mirati a una azienda generica. Ecco come potrebbe svolgersi:
Registrazione del Dominio e Hosting dell'Applicazione: L'attaccante registra un dominio che somiglia a un sito affidabile, ad esempio, "safedomainlogin.com". Sotto questo dominio, viene creato un sottodominio (ad es., "companyname.safedomainlogin.com") per ospitare un'applicazione progettata per catturare i codici di autorizzazione e richiedere i token di accesso.
Registrazione dell'Applicazione in Azure AD: L'attaccante registra quindi un'Applicazione Multi-Tenant nel proprio Tenant di Azure AD, chiamandola come l'azienda target per apparire legittima. Configura l'URL di Redirect dell'applicazione per puntare al sottodominio che ospita l'applicazione malevola.
Impostazione dei Permessi: L'attaccante imposta l'applicazione con vari permessi API (ad es., Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
). Questi permessi, una volta concessi dall'utente, consentono all'attaccante di estrarre informazioni sensibili per conto dell'utente.
Distribuzione di Link Malevoli: L'attaccante crea un link contenente l'ID client dell'applicazione malevola e lo condivide con gli utenti target, ingannandoli per concedere il consenso.
Registrare una nuova applicazione. Può essere solo per la directory corrente se si utilizza un utente della directory attaccata o per qualsiasi directory se si tratta di un attacco esterno (come nell'immagine seguente).
Impostare anche l'URI di reindirizzamento all'URL previsto dove si desidera ricevere il codice per ottenere i token (http://localhost:8000/callback
per impostazione predefinita).
Quindi creare un segreto dell'applicazione:
Selezionare i permessi API (ad es. Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
)
Eseguire la pagina web (azure_oauth_phishing_example) che richiede i permessi:
Invia l'URL alla vittima
In questo caso http://localhost:8000
Le vittime devono accettare il prompt:
Usa il token di accesso per accedere ai permessi richiesti:
365-Stealer: Controlla https://www.alteredsecurity.com/post/introduction-to-365-stealer per imparare come configurarlo.
A seconda delle autorizzazioni richieste, potresti essere in grado di accedere a diversi dati del tenant (elenco utenti, gruppi... o persino modificare impostazioni) e informazioni dell'utente (file, note, email...). Poi, puoi utilizzare queste autorizzazioni per eseguire tali azioni.
Controlla le sezioni Applicazioni e Principale di Servizio della pagina:
Az - EntraID PrivescImpara e pratica il Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)