Az - Unauthenticated Enum & Initial Entry
Az - Enumerazione non autenticata e Accesso Iniziale
Tenant Azure
Enumerazione del Tenant
Ci sono alcune API pubbliche di Azure che, conoscendo solo il dominio del tenant, un attaccante potrebbe interrogare per raccogliere ulteriori informazioni al riguardo. Puoi interrogare direttamente l'API o utilizzare la libreria PowerShell AADInternals:
API | Informazioni | Funzione AADInternals |
---|---|---|
login.microsoftonline.com/<domain>/.well-known/openid-configuration | Informazioni di accesso, inclusa l'ID del tenant |
|
autodiscover-s.outlook.com/autodiscover/autodiscover.svc | Tutti i domini del tenant |
|
login.microsoftonline.com/GetUserRealm.srf?login=<UserName> | Informazioni di accesso del tenant, inclusi il nome del tenant e il dominio del tipo di autenticazione.
Se |
|
login.microsoftonline.com/common/GetCredentialType | Informazioni di accesso, inclusi informazioni sul Desktop SSO |
|
Puoi interrogare tutte le informazioni di un tenant Azure con solo un comando della libreria AADInternals:
Output Esempio delle informazioni del tenant di Azure:
È possibile osservare i dettagli sul nome del tenant, l'ID e il nome "brand". Inoltre, viene visualizzato lo stato del Desktop Single Sign-On (SSO), noto anche come Seamless SSO. Quando abilitata, questa funzionalità facilita la determinazione della presenza (enumeration) di un utente specifico all'interno dell'organizzazione target.
Inoltre, l'output presenta i nomi di tutti i domini verificati associati al tenant target, insieme ai rispettivi tipi di identità. Nel caso dei domini federati, viene anche divulgato il Fully Qualified Domain Name (FQDN) del provider di identità in uso, tipicamente un server ADFS. La colonna "MX" specifica se le email vengono instradate verso Exchange Online, mentre la colonna "SPF" indica l'elenco di Exchange Online come mittente di email. È importante notare che la funzione corrente di ricognizione non analizza le dichiarazioni "include" all'interno dei record SPF, il che potrebbe causare falsi negativi.
Enumerazione degli Utenti
È possibile verificare se esiste un nome utente all'interno di un tenant. Questo include anche gli utenti ospiti, il cui nome utente è nel formato:
L'email è l'indirizzo email dell'utente in cui il simbolo "@" è sostituito con l'underscore "_".
Con AADInternals, puoi facilmente verificare se l'utente esiste o meno:
Enumerazione non autenticata e accesso iniziale
Nel contesto di Azure e di altri servizi cloud, la fase di enumerazione non autenticata è spesso un punto di partenza comune per gli attaccanti. Durante questa fase, gli attaccanti raccolgono informazioni sensibili sulle risorse, le configurazioni e le vulnerabilità senza la necessità di autenticarsi.
Tecniche di Enumerazione non Autenticata
Le seguenti tecniche possono essere utilizzate per condurre un'enumerazione non autenticata su Azure e altri servizi cloud:
Raccolta di informazioni pubbliche: Utilizzare fonti pubbliche come siti web, documentazione e repository di codice per raccogliere informazioni sul target.
Scansione di porte e servizi: Utilizzare strumenti come Nmap per identificare i servizi in ascolto e le porte aperte sul target.
Enumerazione di endpoint API: Identificare ed esplorare gli endpoint delle API esposte per raccogliere informazioni sulle risorse e le operazioni supportate.
Accesso Iniziale
Una volta completata l'enumerazione non autenticata, gli attaccanti possono cercare di ottenere un accesso iniziale al sistema o alle risorse di Azure. Questo può essere ottenuto sfruttando vulnerabilità identificate durante la fase di enumerazione o utilizzando tecniche come l'ingegneria sociale per ottenere credenziali valide.
È importante che gli amministratori di sistema e i professionisti della sicurezza comprendano queste tecniche per poter identificare e mitigare le potenziali minacce alla sicurezza dei servizi cloud.
Puoi anche utilizzare un file di testo contenente un indirizzo email per riga:
Ci sono tre diversi metodi di enumerazione tra cui scegliere:
Metodo | Descrizione |
---|---|
Normale | Questo si riferisce all'API GetCredentialType menzionata sopra. Il metodo predefinito. |
Login | Questo metodo cerca di effettuare l'accesso come l'utente. Nota: le query verranno registrate nel registro degli accessi. |
Autologon | Questo metodo cerca di effettuare l'accesso come l'utente tramite il punto di accesso autologon. Le query non vengono registrate nel registro degli accessi! Pertanto, funziona bene anche per attacchi di password spray e forza bruta. |
Dopo aver scoperto i nomi utente validi è possibile ottenere informazioni su un utente con:
Lo script o365creeper ti permette anche di scoprire se un'email è valida.
Enumerazione degli utenti tramite Microsoft Teams
Un'altra buona fonte di informazioni è Microsoft Teams.
L'API di Microsoft Teams consente di cercare utenti. In particolare, i punti finali "user search" externalsearchv3 e searchUsers potrebbero essere utilizzati per richiedere informazioni generali sugli account utente iscritti a Teams.
In base alla risposta dell'API è possibile distinguere tra utenti inesistenti e utenti esistenti che hanno una sottoscrizione Teams valida.
Lo script TeamsEnum potrebbe essere utilizzato per convalidare un dato insieme di nomi utente rispetto all'API di Teams.
Enumerazione non autenticata e accesso iniziale
Nel contesto di Azure, la fase di enumerazione non autenticata è fondamentale per identificare informazioni sensibili e possibili vettori di attacco senza la necessità di autenticarsi. Questo processo può includere la ricerca di risorse pubbliche, raccolta di informazioni sull'organizzazione, identificazione di servizi esposti e altro ancora.
Una volta completata l'enumerazione non autenticata, è possibile utilizzare le informazioni raccolte per tentare un accesso iniziale al sistema target. Questo può avvenire sfruttando vulnerabilità note, configurazioni errate o utilizzando tecniche di social engineering per ottenere credenziali valide.
È importante svolgere queste attività con il permesso esplicito del proprietario del sistema e nel rispetto delle leggi sulla sicurezza informatica.
Inoltre è possibile enumerare le informazioni sulla disponibilità degli utenti esistenti come segue:
Disponibile
Assente
Non disturbare
Occupato
Offline
Se è configurato un messaggio di fuori sede, è anche possibile recuperare il messaggio utilizzando TeamsEnum. Se è stato specificato un file di output, i messaggi di fuori sede vengono automaticamente memorizzati all'interno del file JSON:
Enumerazione non autenticata e accesso iniziale
Nel contesto di Azure, la fase di enumerazione non autenticata è fondamentale per raccogliere informazioni sensibili sul target senza la necessità di autenticarsi. Queste informazioni possono poi essere utilizzate per ottenere un accesso iniziale al sistema.
Tecniche di Enumerazione non Autenticata
Alcune tecniche comuni per condurre l'enumerazione non autenticata includono:
Enumerazione DNS: Ottenere informazioni sui record DNS del target.
Enumerazione di servizi: Identificare i servizi in esecuzione sul target.
Enumerazione di risorse: Identificare le risorse disponibili sul target.
Enumerazione di account utente: Raccogliere informazioni sugli account utente presenti.
Accesso Iniziale
Una volta raccolte le informazioni durante la fase di enumerazione non autenticata, è possibile utilizzarle per ottenere un accesso iniziale al sistema. Questo può avvenire sfruttando vulnerabilità o debolezze identificate durante la fase di enumerazione.
Ricordati sempre di condurre queste attività nel rispetto delle leggi e degli accordi legali.
Servizi Azure
Ora che conosciamo i domini utilizzati dal tenant Azure è il momento di cercare i servizi Azure esposti.
Puoi utilizzare un metodo da MicroBust per raggiungere questo obiettivo. Questa funzione cercherà il nome di dominio di base (e alcune permutazioni) in diversi domini dei servizi Azure:
Archiviazione aperta
Potresti scoprire l'archiviazione aperta con uno strumento come InvokeEnumerateAzureBlobs.ps1 che utilizzerà il file Microburst/Misc/permitations.txt
per generare permutazioni (molto semplici) per cercare di trovare account di archiviazione aperti.
URL SAS
Un URL di firma di accesso condiviso (SAS) è un URL che fornisce accesso a una determinata parte di un account di archiviazione (potrebbe essere un intero contenitore, un file...) con specifici permessi (lettura, scrittura...) sulle risorse. Se ne trovi uno che è stato divulgato potresti essere in grado di accedere a informazioni sensibili, hanno questo aspetto (questo è per accedere a un contenitore, se stesse concedendo l'accesso a un file, il percorso dell'URL conterrà anche quel file):
https://<storage_account_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D
Usa Storage Explorer per accedere ai dati
Compromissione delle credenziali
Phishing
Phishing Comune (credenziali o App OAuth -Attacco Illecito di Concessione di Consenso-)
Password Spraying / Brute-Force
Az - Password SprayingRiferimenti
Last updated