Az - Service Bus Enum
Reading time: 8 minutes
tip
Impara 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)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Service Bus
Azure Service Bus è un servizio di messaggistica basato su cloud progettato per abilitare una comunicazione affidabile tra diverse parti di un'applicazione o applicazioni separate. Funziona come un intermediario sicuro, garantendo che i messaggi vengano consegnati in modo sicuro, anche se il mittente e il destinatario non operano simultaneamente. Decoupling dei sistemi consente alle applicazioni di lavorare in modo indipendente pur continuando a scambiare dati o istruzioni. È particolarmente utile per scenari che richiedono bilanciamento del carico tra più lavoratori, consegna affidabile dei messaggi o coordinamento complesso, come l'elaborazione di compiti in ordine o la gestione sicura dell'accesso.
Concetti Chiave
- Namespaces: Un namespace nei sistemi di messaggistica è un contenitore logico che organizza e gestisce componenti di messaggistica, code e argomenti. Fornisce un ambiente isolato in cui le applicazioni possono inviare, ricevere e elaborare messaggi. Le code e gli argomenti condividono la stessa infrastruttura e configurazione all'interno di un namespace di Service Bus, ma operano in modo indipendente senza interagire tra loro.
- Queues: il suo scopo è memorizzare i messaggi fino a quando il destinatario è pronto.
- I messaggi sono ordinati, timestampati e memorizzati in modo durevole.
- Consegnati in modalità pull (recupero su richiesta) a un consumatore.
- Può essere configurato in modo che quando il messaggio viene condiviso venga automaticamente eliminato o in modalità "Peek lock" in cui il consumatore deve riconoscere che può essere eliminato. In caso contrario, il messaggio tornerà nella coda.
- Supporta la comunicazione punto a punto.
- Topics: Messaggistica publish-subscribe per la trasmissione.
- Più sottoscrizioni indipendenti ricevono copie dei messaggi.
- Ogni sottoscrizione è come una coda all'interno dell'argomento.
- Le sottoscrizioni possono avere regole/filtri per controllare la consegna o aggiungere metadati.
La stringa di connessione/endpoint del service bus è:
https://<namespace>.servicebus.windows.net:443/
Funzioni Avanzate
Alcune funzioni avanzate sono:
- Message Sessions: Garantisce l'elaborazione FIFO e supporta modelli di richiesta-risposta.
- Auto-Forwarding: Trasferisce messaggi tra code o argomenti nello stesso namespace.
- Dead-Lettering: Cattura messaggi non consegnabili per la revisione.
- Scheduled Delivery: Ritarda l'elaborazione dei messaggi per compiti futuri.
- Message Deferral: Rimanda il recupero dei messaggi fino a quando non è pronto.
- Transactions: Raggruppa operazioni in esecuzione atomica.
- Filters & Actions: Applica regole per filtrare o annotare messaggi.
- Auto-Delete on Idle: Elimina le code dopo inattività (min: 5 minuti).
- Duplicate Detection: Rimuove messaggi duplicati durante i reinvii.
- Batch Deletion: Elimina in blocco messaggi scaduti o non necessari.
Autenticazione Locale
Il parametro --disable-local-auth
di az cli viene utilizzato per controllare se l'autenticazione locale (che consente l'uso di chiavi Shared Access Signature (SAS)) è abilitata per il tuo namespace di Service Bus.
- Quando disable è impostato su true: L'autenticazione locale utilizzando le chiavi SAS è disabilitata e l'autenticazione con Entrad ID è consentita.
- Quando disable è impostato su false (predefinito): Sia l'autenticazione locale SAS che l'autenticazione con Entra ID sono disponibili e puoi utilizzare le stringhe di connessione con le chiavi SAS per accedere alle risorse del tuo Service Bus.
Regola di Autorizzazione / Politica SAS
Le Politiche SAS definiscono i permessi di accesso per le entità del namespace di Azure Service Bus (la più importante), code e argomenti. Ogni politica ha i seguenti componenti:
- Permissions: Caselle di controllo per specificare i livelli di accesso:
- Manage: Concede il pieno controllo sull'entità, inclusa la gestione della configurazione e dei permessi.
- Send: Consente l'invio di messaggi all'entità.
- Listen: Consente di ricevere messaggi dall'entità.
- Primary and Secondary Keys: Queste sono chiavi crittografiche utilizzate per generare token sicuri per autenticare l'accesso.
- Primary and Secondary Connection Strings: Stringhe di connessione preconfigurate che includono l'endpoint e la chiave per un uso facile nelle applicazioni.
- SAS Policy ARM ID: Il percorso di Azure Resource Manager (ARM) per la politica per identificazione programmatica.
È importante notare che un namespace ha una singola politica SAS che influisce su ogni entità al suo interno, mentre code e argomenti possono avere le proprie politiche SAS individuali per un controllo più granulare.
Enumerazione
# Namespace Enumeration
az servicebus namespace list
az servicebus namespace network-rule-set list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus namespace show --resource-group <MyResourceGroup> --name <MyNamespace>
az servicebus namespace network-rule-set show --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus namespace private-endpoint-connection list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus namespace exists --name ProposedNamespace
# Authorization Rule Enumeration
az servicebus namespace authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus queue authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --queue-name <MyQueue>
az servicebus topic authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
az servicebus namespace authorization-rule keys list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyAuthRule>
# Get keys
az servicebus namespace authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> [--authorization-rule-name RootManageSharedAccessKey]
az servicebus topic authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
az servicebus queue authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --queue-name <topic-name> --name <auth-rule-name>
# Queue Enumeration
az servicebus queue list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus queue show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyQueue>
# Topic Enumeration
az servicebus topic list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus topic show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyTopic>
# Susbscription Enumeration
az servicebus topic subscription list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
az servicebus topic subscription show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic> --name <MySubscription>
Escalation dei privilegi
Post Exploitation
Az - Service Bus Post Exploitation
Riferimenti
- https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-cli
tip
Impara 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)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.