
Raccolta di strumenti offensivi che prendono di mira Microsoft Azure scritti in Python per essere indipendenti dalla piattaforma. L'elenco attuale degli strumenti è riportato di seguito con una breve descrizione delle loro funzionalità.
./Device_Code/device_code_easy_mode.py
- Genera un codice da inserire da parte dell'utente bersaglio
- Può essere utilizzato per la generazione di token generici o durante una campagna di phishing/ingegneria sociale.
./Access_Tokens/token_juggle.py
- Riceve un token di aggiornamento in vari modi e recupera un nuovo token di aggiornamento e un token di accesso per la risorsa specificata
./Access_Tokens/read_token.py
- Riceve un token di accesso, analizza le informazioni sui claim inclusi, controlla la scadenza, tenta di convalidare la firma
./Outsider_Recon/outsider_recon.py
- Riceve un dominio ed enumera quante più informazioni possibili sul tenant senza richiedere autenticazione
./User_Enum/user_enum.py
- Riceve un nome utente o un elenco di nomi utente e tenta di enumerare account validi utilizzando uno dei tre metodi
- Può anche essere utilizzato per eseguire un password spray
./Azure_AD/get_tenant.py
- Riceve un token di accesso o token di aggiornamento, restituisce l'ID tenant e il nome tenant
- Crea un file di output di testo e un file aztenant compatibile con BloodHound
./Azure_AD/get_users.py
- Riceve un token di accesso o token di aggiornamento, restituisce tutti gli utenti in Azure AD e tutte le proprietà utente disponibili in Microsoft Graph
- Crea tre file di dati: un file json condensato, un file json grezzo e un file azusers compatibile con BloodHound
./Azure_AD/get_groups.py
- Riceve un token di accesso o token di aggiornamento, restituisce tutti i gruppi in Azure AD e tutte le proprietà dei gruppi disponibili in Microsoft Graph
- Crea tre file di dati: un file json condensato, un file json grezzo e un file azgroups compatibile con BloodHound
./Azure_AD/get_group_members.py
- Riceve un token di accesso o token di aggiornamento, restituisce tutte le appartenenze ai gruppi in Azure AD e tutte le proprietà dei membri del gruppo disponibili in Microsoft Graph
- Crea tre file di dati: un file json condensato, un file json grezzo e un file azgroups compatibile con BloodHound
./Azure_AD/get_subscriptions.py
- Riceve un token ARM o token di aggiornamento, restituisce tutte le sottoscrizioni in Azure e tutte le proprietà delle sottoscrizioni disponibili in Gestione risorse di Azure
- Crea tre file di dati: un file json condensato, un file json grezzo e un file azgroups compatibile con BloodHound
./Azure_AD/get_resource_groups.py
- Riceve un token ARM o token di aggiornamento, restituisce tutti i gruppi di risorse in Azure e tutte le proprietà dei gruppi di risorse disponibili in Gestione risorse di Azure
- Crea due file di dati: un file json grezzo e un file azgroups compatibile con BloodHound
./Azure_AD/get_vms.py
- Riceve un token ARM o token di aggiornamento, restituisce tutte le macchine virtuali in Azure e tutte le proprietà delle VM disponibili in Gestione risorse di Azure
- Crea due file di dati: un file json grezzo e un file azgroups compatibile con BloodHound
Installazione
Offensive Azure può essere installato in vari modi o non installato affatto.
Sei libero di clonare il repository ed eseguire gli script specifici che desideri. Per ogni modulo è incluso un file requirements.txt per semplificare questa operazione.
Poetry
Il progetto è realizzato per funzionare con poetry. Per utilizzarlo, segui questi passaggi:
git clone https://github.com/blacklanternsecurity/offensive-azure.git
cd ./offensive-azure
poetry install
Pip
La versione pacchettizzata del repository è anche mantenuta su pypi, quindi puoi utilizzare pip per installarla. Ti consigliamo di usare pipenv per mantenere l'ambiente il più pulito possibile.
pipenv shell
pip install offensive_azure
Utilizzo
Sta a te decidere come utilizzare questo toolkit. Ogni modulo può essere eseguito in modo indipendente, oppure puoi installarlo come pacchetto e utilizzarlo in quel modo. Ogni modulo è esportato in uno script con lo stesso nome del file del modulo. Ad esempio:
Poetry
poetry install
poetry run outsider_recon your-domain.com
Pip
pipenv shell
pip install offensive_azure
outsider_recon your-domain.com