Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az

This commit is contained in:
Translator
2025-02-20 23:14:41 +00:00
parent 54a025a07f
commit 556d46cc3d
7 changed files with 74 additions and 198 deletions

View File

@@ -1,29 +0,0 @@
# Az - Queue Storage Persistence
{{#include ../../../banners/hacktricks-training.md}}
## Queue
Per ulteriori informazioni controlla:
{{#ref}}
../az-services/az-queue.md
{{#endref}}
### Azioni: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Questo permesso consente a un attaccante di creare o modificare code e le loro proprietà all'interno dell'account di archiviazione. Può essere utilizzato per creare code non autorizzate, modificare i metadati o cambiare le liste di controllo degli accessi (ACL) per concedere o limitare l'accesso. Questa capacità potrebbe interrompere i flussi di lavoro, iniettare dati dannosi, esfiltrare informazioni sensibili o manipolare le impostazioni della coda per abilitare ulteriori attacchi.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
az storage queue metadata update --name <queue-name> --metadata key1=value1 key2=value2 --account-name <storage-account>
az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-12-31T23:59:59Z --account-name <storage-account>
```
## 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)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,20 +0,0 @@
# 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

@@ -11,13 +11,26 @@ Per ulteriori informazioni su SQL Database controlla:
### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
Con questo permesso, puoi creare o aggiornare gli account di Azure Cosmos DB. Questo include la modifica delle impostazioni a livello di account, l'aggiunta o la rimozione di regioni, la modifica dei livelli di coerenza e l'abilitazione o disabilitazione di funzionalità come le scritture multi-regione.
Con questo permesso, puoi creare o aggiornare gli account di Azure Cosmos DB. Questo include la modifica delle configurazioni a livello di account, l'abilitazione o la disabilitazione del failover automatico, la gestione dei controlli di accesso alla rete, l'impostazione delle politiche di backup e l'aggiustamento dei livelli di coerenza. Gli attaccanti con questo permesso potrebbero alterare le impostazioni per indebolire i controlli di sicurezza, interrompere la disponibilità o esfiltrare dati modificando le regole di rete.
```bash
az cosmosdb update \
--name <account_name> \
--resource-group <resource_group_name> \
--public-network-access ENABLED
```
```bash
az cosmosdb update \
--account-name <account_name> \
--resource-group <resource_group_name> \
--capabilities EnableMongoRoleBasedAccessControl
```
Inoltre, puoi abilitare le identità gestite nell'account:
```bash
az cosmosdb identity assign \
--name <cosmosdb_account_name> \
--resource-group <resource_group_name>
```
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write`
Con questo permesso, puoi creare o modificare contenitori (collezioni) all'interno di un database SQL di un account Azure Cosmos DB. I contenitori sono utilizzati per memorizzare dati e le modifiche a essi possono influenzare la struttura del database e i modelli di accesso.
```bash
@@ -38,7 +51,7 @@ az cosmosdb sql container update \
--ttl 3600
```
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read`
Con questo permesso, puoi creare o modificare database SQL all'interno di un account Azure Cosmos DB. Questo consente di gestire la struttura del database e aggiungere nuovi database all'account. Sebbene questo permesso consenta la creazione di database, un uso improprio o non autorizzato potrebbe comportare un consumo eccessivo di risorse, costi aumentati o inefficienze operative.
Con questo permesso, puoi creare o modificare database SQL all'interno di un account Azure Cosmos DB. Questo consente di gestire la struttura del database e aggiungere nuovi database all'account. Sebbene questo permesso consenta la creazione di database, un uso improprio o non autorizzato potrebbe comportare un consumo di risorse non necessario, costi aumentati o inefficienze operative.
```bash
az cosmosdb sql database create \
--account-name <account_name> \
@@ -56,7 +69,7 @@ az cosmosdb failover-priority-change \
```
### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action`
Con questo permesso, puoi rigenerare le chiavi primarie o secondarie per un account Azure Cosmos DB. Questo viene solitamente utilizzato per migliorare la sicurezza sostituendo le chiavi vecchie, ma può interrompere l'accesso per servizi o applicazioni che dipendono dalle chiavi attuali.
Con questo permesso, puoi rigenerare le chiavi primarie o secondarie per un account Azure Cosmos DB. Questo viene solitamente utilizzato per migliorare la sicurezza sostituendo le chiavi vecchie, ma può interrompere l'accesso per i servizi o le applicazioni che dipendono dalle chiavi attuali.
```bash
az cosmosdb keys regenerate \
--name <account_name> \
@@ -119,52 +132,4 @@ az cosmosdb mongodb database create \
--resource-group <resource_group_name> \
--name <database_name>
```
### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`
Con questo permesso, puoi creare nuove definizioni di ruolo MongoDB all'interno di un account Azure Cosmos DB. Questo consente di definire ruoli personalizzati con permessi specifici per gli utenti MongoDB.
```bash
az cosmosdb mongodb role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.readWriteRole",
"RoleName": "readWriteRole",
"Type": "CustomRole",
"DatabaseName": "<mydatabase>",
"Privileges": [
{
"Resource": {
"Db": "<mydatabase>",
"Collection": "mycollection"
},
"Actions": [
"insert",
"find",
"update"
]
}
],
"Roles": []
}'
```
### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`
Con questo permesso, puoi creare nuove definizioni di utenti MongoDB all'interno di un account Azure Cosmos DB. Questo consente il provisioning di utenti con ruoli e livelli di accesso specifici ai database MongoDB.
```bash
az cosmosdb mongodb user definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.myUser",
"UserName": "myUser",
"Password": "mySecurePassword",
"DatabaseName": "<mydatabase>",
"CustomData": "TestCustomData",
"Mechanisms": "SCRAM-SHA-256",
"Roles": [
{
"Role": "readWriteRole",
"Db": "<mydatabase>"
}
]
}'
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -34,7 +34,7 @@ az cosmosdb sql role definition create \
]
}'
```
Dopo che l'assegnazione della definizione è stata data a un utente. Dopo di che, quell'utente può utilizzare il metodo di connessione DefaultAzureCredential() per eseguire query.
Dopo che l'assegnazione della definizione è stata data a un utente. Dopo di c, quell'utente può utilizzare il metodo di connessione DefaultAzureCredential() per eseguire query.
```bash
az cosmosdb sql role assignment create \
--account-name <account_name> \
@@ -43,12 +43,63 @@ az cosmosdb sql role assignment create \
--principal-id <principal_id-togive-perms> \
--scope "/"
```
### (`Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`)&& (`Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`)
Con questo permesso, puoi creare nuove definizioni di ruolo MongoDB all'interno di un account Azure Cosmos DB. Questo consente di definire ruoli personalizzati con permessi specifici per gli utenti MongoDB. Le funzionalità RBAC devono essere abilitate per utilizzare questo.
```bash
az cosmosdb mongodb role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.readWriteRole",
"RoleName": "readWriteRole",
"Type": "CustomRole",
"DatabaseName": "<mydatabase>",
"Privileges": [
{
"Resource": {
"Db": "<mydatabase>",
"Collection": "mycollection"
},
"Actions": [
"insert",
"find",
"update"
]
}
],
"Roles": []
}'
```
Puoi creare nuove definizioni di utenti MongoDB all'interno di un account Azure Cosmos DB. Questo consente il provisioning di utenti con ruoli specifici e accesso ai database MongoDB.
```bash
az cosmosdb mongodb user definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.myUser",
"UserName": "<myUser>",
"Password": "<mySecurePassword>",
"DatabaseName": "<mydatabase>",
"CustomData": "TestCustomData",
"Mechanisms": "SCRAM-SHA-256",
"Roles": [
{
"Role": "readWriteRole",
"Db": "<mydatabase>"
}
]
}'
```
Dopo che un nuovo utente è stato creato all'interno del MongoDB, possiamo accedervi:
```bash
mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure.com:10255/<mymongodatabase>?ssl=true&replicaSet=globaldb&retrywrites=false"
```
### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
Con questo permesso, puoi recuperare le chiavi primaria e secondaria per un account Azure Cosmos DB. Queste chiavi forniscono accesso completo all'account del database e alle sue risorse, abilitando azioni come letture, scritture e modifiche di configurazione dei dati.
```bash
az cosmosdb keys list \
--name <account_name> \
--resource-group <resource_group_name>
```
{{#include ../../../banners/hacktricks-training.md}}