Translated ['src/pentesting-cloud/azure-security/az-persistence/az-queue

This commit is contained in:
Translator
2025-02-20 00:54:51 +00:00
parent 4d60f68e4b
commit a548af231f
10 changed files with 64 additions and 32 deletions

View File

@@ -425,8 +425,8 @@
- [Az - Management Groups, Subscriptions & Resource Groups](pentesting-cloud/azure-security/az-services/az-management-groups-subscriptions-and-resource-groups.md)
- [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql.md)
- [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql.md)
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue-enum.md)
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus-enum.md)
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue.md)
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus.md)
- [Az - SQL](pentesting-cloud/azure-security/az-services/az-sql.md)
- [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md)
- [Az - Storage Accounts & Blobs](pentesting-cloud/azure-security/az-services/az-storage.md)
@@ -489,6 +489,7 @@
- [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md)
- [Az - Automation Accounts Persistence](pentesting-cloud/azure-security/az-persistence/az-automation-accounts-persistence.md)
- [Az - Cloud Shell Persistence](pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md)
- [Az - Queue SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md)
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md)
- [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md)
- [Az - Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-storage-persistence.md)

View File

@@ -7,7 +7,7 @@
Per ulteriori informazioni controlla:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### Azioni: `Microsoft.Storage/storageAccounts/queueServices/queues/write`

View File

@@ -0,0 +1,20 @@
# Az - SQL Persistence
{{#include ../../../banners/hacktricks-training.md}}
## SQL
Per ulteriori informazioni controlla:
{{#ref}}
../az-services/az-sql.md
{{#endref}}
### Tecniche di Persistenza Comuni
- Compromettere le credenziali SQL o creare un utente SQL (abilitando l'autenticazione SQL se necessario)
- Assegnare un utente compromesso come amministratore di Entra ID (abilitando l'autenticazione di Entra ID se necessario)
- Backdoor nella VM (se viene utilizzata una VM SQL)
- Creare una regola FW per mantenere l'accesso al database SQL
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -7,7 +7,7 @@
Per ulteriori informazioni controlla:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`

View File

@@ -7,7 +7,7 @@
Per ulteriori informazioni controlla:
{{#ref}}
../az-services/az-servicebus-enum.md
../az-services/az-servicebus.md
{{#endref}}
### Azioni: `Microsoft.ServiceBus/namespaces/Delete`
@@ -30,7 +30,7 @@ az servicebus queue delete --resource-group <ResourceGroupName> --namespace-name
```
### 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 i flussi di lavoro, l'elaborazione dei dati e le operazioni di sistema che dipendono dall'abbonamento.
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>
```

View File

@@ -7,7 +7,7 @@
Per ulteriori informazioni controlla:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`

View File

@@ -7,14 +7,14 @@
Per ulteriori informazioni controlla:
{{#ref}}
../az-services/az-servicebus-enum.md
../az-services/az-servicebus.md
{{#endref}}
### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
Queste autorizzazioni ti consentono di ottenere o rigenerare le chiavi per le regole di autorizzazione locali all'interno di uno spazio dei nomi di Service Bus. Utilizzando queste chiavi è possibile autenticarsi come lo spazio dei nomi di 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.
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, permettendoti 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 messaggistica.
Nota che per impostazione predefinita la **`RootManageSharedAccessKey` regola ha il controllo completo** sullo spazio dei nomi di Service Bus ed è utilizzata dal `az` cli, tuttavia, potrebbero esistere altre regole con altri valori di chiave.
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]
@@ -41,7 +41,7 @@ az servicebus namespace authorization-rule update \
```
### 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.
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 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>
@@ -78,17 +78,18 @@ az servicebus queue authorization-rule update --resource-group <res-group> --nam
```
### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read if az cli is used)
Con questi permessi **un attaccante può riattivare "l'autenticazione locale"** con il seguente comando e quindi tutte le chiavi delle politiche condivise funzioneranno.
Con questi permessi **un attaccante può riabilitare "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)
### Invia Messaggi con chiavi (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/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. Questo metodo funziona se `--disable-local-auth` è impostato su false.
Puoi recuperare il `PrimaryConnectionString`, che funge da credenziale per il namespace di Service Bus. Con questa stringa di connessione, puoi autenticarti completamente come il namespace di 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. Questo metodo funziona se `--disable-local-auth` è impostato su false (quindi l'autenticazione locale è abilitata).
```python
import asyncio
from azure.servicebus.aio import ServiceBusClient
from azure.servicebus import ServiceBusMessage
# pip install azure-servicebus
NAMESPACE_CONNECTION_STR = "<PrimaryConnectionString>"
TOPIC_OR_QUEUE_NAME = "<TOPIC_OR_QUEUE_NAME>"
@@ -129,12 +130,13 @@ az rest --method post \
--body "<MESSAGE_BODY>"
```
### Ricevi con chiavi (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
### Ricevi con chiavi (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action O Microsoft.ServiceBus/namespaces/[queues|topics]/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'esfiltrazione dei dati o interferendo con l'elaborazione dei messaggi e i flussi di lavoro delle applicazioni. Questo metodo funziona se `--disable-local-auth` è impostato su false.
Puoi recuperare il PrimaryConnectionString, che funge da credenziale per il namespace di 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. Questo metodo funziona se `--disable-local-auth` è impostato su false.
```python
import asyncio
from azure.servicebus.aio import ServiceBusClient
# pip install azure-servicebus
CONN_STR = "<PrimaryConnectionString>"
QUEUE = "<QUEUE_NAME>"
@@ -199,7 +201,7 @@ az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<ENTITY>/messages?timeout=60&PreviousSequenceNumber=<LAST_SEQUENCE_NUMBER>&api-version=2017-04" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
```
Please provide the text you would like translated.
Please provide the text you would like me to translate.
```bash
#Get a message
az rest --method post \
@@ -224,13 +226,15 @@ import asyncio
from azure.identity.aio import DefaultAzureCredential
from azure.servicebus.aio import ServiceBusClient
from azure.servicebus import ServiceBusMessage
# pip install azure-servicebus
NS = "<namespace>.servicebus.windows.net" # Your namespace
QUEUE_OR_TOPIC = "<QUEUE_OR_TOPIC>" # Your queue name
QUEUE_OR_TOPIC = "<QUEUE_OR_TOPIC>" # Your queue name
async def run():
credential = DefaultAzureCredential()
async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client:
#async with client.get_topic_sender(topic_name=TOPIC) as sender: # Use this to send the message to a topic
async with client.get_queue_sender(queue_name=QUEUE) as sender:
await sender.send_messages(ServiceBusMessage("Single Message"))
print("Sent a single message")
@@ -246,6 +250,7 @@ Puoi utilizzare queste autorizzazioni per ricevere messaggi, anche se `--disable
import asyncio
from azure.identity.aio import DefaultAzureCredential
from azure.servicebus.aio import ServiceBusClient
# pip install azure-servicebus
NS = "<namespace>.servicebus.windows.net"
QUEUE = "<QUEUE>"

View File

@@ -2,9 +2,9 @@
{{#include ../../../banners/hacktricks-training.md}}
## Informazioni di base
## Informazioni di Base
Azure Queue Storage è un servizio nella piattaforma cloud Azure di Microsoft progettato per la messaggistica tra i componenti dell'applicazione, **abilitando comunicazione asincrona e disaccoppiamento**. Consente di memorizzare un numero illimitato di messaggi, ciascuno fino a 64 KB di dimensione, e supporta operazioni come la creazione e la cancellazione di code, l'aggiunta, il recupero, l'aggiornamento e la cancellazione di messaggi, oltre alla gestione dei metadati e delle politiche di accesso. Sebbene elabori tipicamente i messaggi in un ordine first-in-first-out (FIFO), la FIFO rigorosa non è garantita.
Azure Queue Storage è un servizio nella piattaforma cloud Azure di Microsoft progettato per la messaggistica tra i componenti dell'applicazione, **abilitando la comunicazione asincrona e il disaccoppiamento**. Ti consente di memorizzare un numero illimitato di messaggi, ciascuno fino a 64 KB di dimensione, e supporta operazioni come la creazione e la cancellazione di code, l'aggiunta, il recupero, l'aggiornamento e la cancellazione di messaggi, oltre alla gestione dei metadati e delle politiche di accesso. Sebbene elabori tipicamente i messaggi in un ordine di tipo first-in-first-out (FIFO), non è garantito un FIFO rigoroso.
### Enumerazione
@@ -70,7 +70,7 @@ $queueMessage.Value
../az-privilege-escalation/az-queue-privesc.md
{{#endref}}
### Post Exploitation
### Post Sfruttamento
{{#ref}}
../az-post-exploitation/az-queue-post-exploitation.md

View File

@@ -4,15 +4,15 @@
## 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 degli accessi.
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.
### Key Concepts
### Concetti Chiave
1. **Namespaces:** Un namespace nei sistemi di messaggistica è un contenitore logico che organizza e gestisce i componenti di messaggistica, le code e gli 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.
2. **Queues:** il suo scopo è memorizzare i messaggi fino a quando il destinatario non è pronto.
- I messaggi sono ordinati, timestamped e memorizzati in modo durevole.
1. **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.
2. **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.
- 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.
3. **Topics:** Messaggistica publish-subscribe per la trasmissione.
- Più sottoscrizioni indipendenti ricevono copie dei messaggi.
@@ -32,8 +32,8 @@ Alcune funzioni avanzate sono:
- **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 le operazioni in esecuzione atomica.
- **Filters & Actions**: Applica regole per filtrare o annotare i messaggi.
- **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.
@@ -51,7 +51,7 @@ Le Politiche SAS definiscono i permessi di accesso per le entità del namespace
- **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 di inviare messaggi all'entità.
- 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.

View File

@@ -70,9 +70,9 @@ Per creare un database SQL è necessario indicare il server SQL dove sarà ospit
- Backup
-
- **Ridondanza dei dati:** Le opzioni sono locale, zona, Geo o Geo-Zona ridondante.
- **Registro:** Verifica crittograficamente l'integrità dei dati, assicurando che qualsiasi manomissione venga rilevata. Utile per finanziario, medico e qualsiasi organizzazione che gestisce dati sensibili.
- **Registro:** Verifica crittograficamente l'integrità dei dati, assicurando che qualsiasi manomissione venga rilevata. Utile per finanziarie, mediche e qualsiasi organizzazione che gestisce dati sensibili.
Un database SQL potrebbe far parte di un **pool elastico**. I pool elastici sono una soluzione economica per gestire più database condividendo risorse di calcolo (eDTUs) e di archiviazione configurabili tra di loro, con prezzi basati esclusivamente sulle risorse allocate piuttosto che sul numero di database.
Un database SQL potrebbe far parte di un **pool elastico**. I pool elastici sono una soluzione economica per gestire più database condividendo risorse di calcolo configurabili (eDTUs) e di archiviazione tra di essi, con prezzi basati esclusivamente sulle risorse allocate piuttosto che sul numero di database.
#### Sicurezza a Livello di Colonna (Mascheramento) e Sicurezza a Livello di Riga di Azure SQL
@@ -302,4 +302,10 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
../az-post-exploitation/az-sql-post-exploitation.md
{{#endref}}
### Persistenza
{{#ref}}
../az-persistence/az-sql-persistance.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}