# Az - Service Bus Post Exploitation

{{#include ../../../banners/hacktricks-training.md}}

## Service Bus

Per ulteriori informazioni controlla:

{{#ref}}
../az-services/az-servicebus.md
{{#endref}}

### Azioni: `Microsoft.ServiceBus/namespaces/Delete`

Un attaccante con questo permesso può eliminare un intero namespace di Azure Service Bus. Questa azione rimuove il namespace e tutte le risorse associate, comprese code, argomenti, iscrizioni e i loro messaggi, causando ampie interruzioni e perdita permanente di dati in tutti i sistemi e flussi di lavoro dipendenti.
```bash
az servicebus namespace delete --resource-group <ResourceGroupName> --name <NamespaceName>
```
### Azioni: `Microsoft.ServiceBus/namespaces/topics/Delete`

Un attaccante con questo permesso può eliminare un argomento di Azure Service Bus. Questa azione rimuove l'argomento e tutte le sue sottoscrizioni e messaggi associati, causando potenzialmente la perdita di dati critici e interrompendo i sistemi e i flussi di lavoro che si basano sull'argomento.
```bash
az servicebus topic delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
```
### Azioni: `Microsoft.ServiceBus/namespaces/queues/Delete`

Un attaccante con questo permesso può eliminare una coda di Azure Service Bus. Questa azione rimuove la coda e tutti i messaggi al suo interno, causando potenzialmente la perdita di dati critici e interrompendo i sistemi e i flussi di lavoro dipendenti dalla coda.
```bash
az servicebus queue delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
```
### Azioni: `Microsoft.ServiceBus/namespaces/topics/subscriptions/Delete`

Un attaccante con questo permesso può eliminare un'abbonamento di Azure Service Bus. Questa azione rimuove l'abbonamento e tutti i suoi messaggi associati, potenzialmente interrompendo flussi di lavoro, elaborazione dei dati e operazioni di sistema che dipendono dall'abbonamento.
```bash
az servicebus topic subscription delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
```
### Azioni: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`)

Un attaccante con permessi per creare o modificare le code di Azure Service Bus (per modificare la coda è necessario anche l'Action:`Microsoft.ServiceBus/namespaces/queues/read`) può sfruttare questo per intercettare dati, interrompere flussi di lavoro o abilitare accessi non autorizzati. Possono alterare configurazioni critiche come l'inoltro di messaggi a endpoint malevoli, regolare il TTL dei messaggi per mantenere o eliminare dati in modo improprio, o abilitare il dead-lettering per interferire con la gestione degli errori. Inoltre, potrebbero manipolare le dimensioni delle code, le durate di blocco o gli stati per interrompere la funzionalità del servizio o eludere la rilevazione, rendendo questo un rischio significativo post-exploitation.
```bash
az servicebus queue create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
az servicebus queue update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
```
### Azioni: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`)

Un attaccante con permessi per creare o modificare argomenti (per modificare l'argomento è necessario anche l'azione: `Microsoft.ServiceBus/namespaces/topics/read`) all'interno di uno spazio dei nomi di Azure Service Bus può sfruttare questo per interrompere i flussi di lavoro dei messaggi, esporre dati sensibili o abilitare azioni non autorizzate. Utilizzando comandi come az servicebus topic update, possono manipolare configurazioni come abilitare il partizionamento per un uso improprio della scalabilità, modificare le impostazioni TTL per mantenere o scartare i messaggi in modo improprio, o disabilitare il rilevamento dei duplicati per eludere i controlli. Inoltre, potrebbero regolare i limiti di dimensione degli argomenti, cambiare lo stato per interrompere la disponibilità, o configurare argomenti espressi per memorizzare temporaneamente i messaggi intercettati, rendendo la gestione degli argomenti un focus critico per la mitigazione post-exploitation.
```bash
az servicebus topic create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
az servicebus topic update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
```
### Azioni: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`)

Un attaccante con permessi per creare o modificare le sottoscrizioni (per modificare la sottoscrizione è necessario anche l'Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) all'interno di un argomento di Azure Service Bus può sfruttare questo per intercettare, reindirizzare o interrompere i flussi di lavoro dei messaggi. Utilizzando comandi come az servicebus topic subscription update, possono manipolare configurazioni come l'abilitazione del dead lettering per deviare i messaggi, inoltrare messaggi a endpoint non autorizzati o modificare la durata TTL e di blocco per trattenere o interferire con la consegna dei messaggi. Inoltre, possono alterare le impostazioni di stato o il conteggio massimo di consegna per interrompere le operazioni o eludere la rilevazione, rendendo il controllo delle sottoscrizioni un aspetto critico degli scenari di post-exploitation.
```bash
az servicebus topic subscription create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
az servicebus topic subscription update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
```
### Azioni: `AuthorizationRules` Invia & Ricevi Messaggi

Dai un'occhiata qui:

{{#ref}}
../az-privilege-escalation/az-queue-privesc.md
{{#endref}}

## Riferimenti

- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless)
- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus)
- [https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest)
- [https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest)

{{#include ../../../banners/hacktricks-training.md}}
