Azure Pentesting
STO ANCORA SVILUPPANDO LA METODOLOGIA DI AZURE
Informazioni di Base
pageAz - Basic InformationMetodologia del Pentester/Red Team di Azure
Per auditare un ambiente AZURE è molto importante sapere: quali servizi vengono utilizzati, cosa viene esposto, chi ha accesso a cosa, e come sono collegati i servizi interni di Azure e i servizi esterni.
Dal punto di vista del Red Team, il primo passo per compromettere un ambiente Azure è riuscire a ottenere delle credenziali per Azure AD. Ecco alcune idee su come fare:
Fughe in github (o simili) - OSINT
Ingegneria Sociale
Riutilizzo delle password (fughe di password)
Vulnerabilità nelle App ospitate su Azure
Server Side Request Forgery con accesso al punto di metadati
Lettura di File Locali
/home/USERNAME/.azure
C:\Users\USERNAME\.azure
Il file
accessTokens.json
inaz cli
prima della versione 2.30 - Jan2022 - memorizzava token di accesso in chiaroIl file
azureProfile.json
contiene informazioni sull'utente loggato.az logout
rimuove il token.Le versioni precedenti di
Az PowerShell
memorizzavano token di accesso in chiaro inTokenCache.dat
. Memorizzava anche ServicePrincipalSecret in chiaro inAzureRmContext.json
. Il cmdletSave-AzContext
può essere utilizzato per memorizzare i token. UsaDisconnect-AzAccount
per rimuoverli.Terze parti violato
Dipendente Interno
Phishing Comune (credenziali o App Oauth)
Anche se non hai compromesso alcun utente all'interno del tenant Azure che stai attaccando, puoi raccogliere alcune informazioni da esso:
pageAz - Unauthenticated Enum & Initial EntryDopo aver ottenuto le credenziali, devi sapere a chi appartengono quelle credenziali, e a cosa hanno accesso, quindi devi eseguire una semplice enumerazione:
Enumerazione di Base
Ricorda che la parte più rumorosa dell'enumerazione è il login, non l'enumerazione stessa.
SSRF
Se hai trovato un SSRF in una macchina all'interno di Azure, controlla questa pagina per trucchi:
Bypass delle Condizioni di Login
Nei casi in cui hai delle credenziali valide ma non puoi effettuare il login, queste sono alcune protezioni comuni che potrebbero essere in atto:
Whitelisting degli IP -- Devi compromettere un IP valido
Restrizioni Geografiche -- Trova dove vive l'utente o dove si trovano gli uffici dell'azienda e ottieni un IP dalla stessa città (o almeno dallo stesso paese)
Browser -- Forse è consentito solo un browser da determinati OS (Windows, Linux, Mac, Android, iOS). Scopri quale OS utilizza la vittima/l'azienda.
Puoi anche provare a compromettere le credenziali del Service Principal poiché di solito sono meno limitate e il suo login è meno controllato
Dopo averlo bypassato, potresti essere in grado di tornare alla tua configurazione iniziale e avrai comunque accesso.
Takeover del Sottodominio
Whoami
Impara come installare az cli, AzureAD e Az PowerShell nella sezione Az - AzureAD.
Una delle prime cose che devi sapere è chi sei (in quale ambiente ti trovi):
Scansione di Azure AD
Per condurre una scansione di Azure AD, è possibile utilizzare strumenti come Azure AD Recon o Azure AD Connect per raccogliere informazioni utili sull'organizzazione, come utenti, gruppi, ruoli e autorizzazioni. Queste informazioni possono essere utilizzate per identificare potenziali vulnerabilità e punti deboli nel sistema di gestione delle identità.
Passaggi per la scansione di Azure AD:
Raccolta di informazioni: Utilizzare strumenti come Azure AD Recon per raccogliere informazioni sull'organizzazione, inclusi utenti, gruppi e ruoli.
Analisi delle informazioni raccolte: Esaminare attentamente le informazioni raccolte per identificare eventuali vulnerabilità o punti deboli nel sistema di gestione delle identità.
Identificazione delle vulnerabilità: Utilizzare le informazioni raccolte per identificare potenziali vulnerabilità come password deboli, autorizzazioni eccessive o configurazioni errate.
Rapporto delle vulnerabilità: Creare un rapporto dettagliato sulle vulnerabilità identificate e raccomandare azioni correttive per mitigare i rischi.
La scansione di Azure AD è un passo importante nel garantire la sicurezza dell'ambiente cloud e nel proteggere le risorse dell'organizzazione da potenziali minacce.
Az PowerShell
Connect to Azure
To connect to Azure using Az PowerShell module, use the following command:
List all Azure subscriptions
To list all Azure subscriptions associated with the account, use the following command:
Select a specific Azure subscription
To select a specific Azure subscription, use the following command:
Replace <SubscriptionId>
with the ID of the subscription you want to select.
List all resource groups
To list all resource groups within a subscription, use the following command:
List all resources within a resource group
To list all resources within a specific resource group, use the following command:
Replace <ResourceGroupName>
with the name of the resource group.
Get details of a specific resource
To get details of a specific resource, use the following command:
Replace <ResourceId>
with the ID of the resource.
Uno dei comandi più importanti per enumerare Azure è Get-AzResource
da Az PowerShell poiché ti permette di conoscere le risorse su cui il tuo utente attuale ha visibilità.
Puoi ottenere le stesse informazioni nella console web andando su https://portal.azure.com/#view/HubsExtension/BrowseAll o cercando "Tutte le risorse"
Enumerazione di AzureAD
Per impostazione predefinita, qualsiasi utente dovrebbe avere abbastanza autorizzazioni per enumerare cose come utenti, gruppi, ruoli, principali dei servizi... (controlla le autorizzazioni predefinite di AzureAD). Puoi trovare qui una guida:
pageAz - AzureAD (AAD)Ora che hai alcune informazioni sulle tue credenziali (e se sei un team red, sperabilmente non sei stato rilevato). È il momento di capire quali servizi vengono utilizzati nell'ambiente. Nella sezione seguente puoi controllare alcuni modi per enumerare alcuni servizi comuni.
Principale del Servizio e Politica di Accesso
Un servizio Azure può avere un'Identità di Sistema (del servizio stesso) o utilizzare un'Identità Gestita Assegnata dall'Utente. Questa Identità può avere una Politica di Accesso per, ad esempio, un KeyVault per leggere segreti. Queste Politiche di Accesso dovrebbero essere limitate (principio del privilegio minimo), ma potrebbero avere più autorizzazioni del necessario. Tipicamente un Servizio App utilizzerebbe KeyVault per recuperare segreti e certificati.
Quindi è utile esplorare queste identità.
Servizio App SCM
Console Kudu per accedere al 'container' del Servizio App.
Webshell
Usa portal.azure.com e seleziona la shell, o usa shell.azure.com, per un bash o powershell. Il 'disco' di questa shell è memorizzato come un file immagine in un account di archiviazione.
Azure DevOps
Azure DevOps è separato da Azure. Ha repository, pipeline (yaml o release), board, wiki e altro ancora. I Gruppi di Variabili vengono utilizzati per memorizzare valori di variabili e segreti.
Strumenti di Ricognizione Automatica
Last updated