Az - CosmosDB Post Exploitation
Reading time: 6 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.
CosmosDB Post Exploitation
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 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.
az cosmosdb update \
--name <account_name> \
--resource-group <resource_group_name> \
--public-network-access ENABLED
az cosmosdb update \
--account-name <account_name> \
--resource-group <resource_group_name> \
--capabilities EnableMongoRoleBasedAccessControl
Inoltre, puoi abilitare le identità gestite nell'account:
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.
# Create
az cosmosdb sql container create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <database_name> \
--name <container_name> \
--partition-key-path <partition_key_path>
#Update
az cosmosdb sql container update \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <database_name> \
--name <container_name> \
--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 di risorse non necessario, costi aumentati o inefficienze operative.
az cosmosdb sql database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action
Con questo permesso, puoi cambiare la priorità di failover delle regioni per un account di database Azure Cosmos DB. Questa azione determina l'ordine in cui le regioni diventano primarie durante un evento di failover. Un uso improprio di questo permesso può interrompere l'alta disponibilità del database o portare a impatti operativi indesiderati.
az cosmosdb failover-priority-change \
--name <database_account_name> \
--resource-group <resource_group_name> \
--failover-policies <region1=priority1> <region2=priority2>
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 i servizi o le applicazioni che dipendono dalle chiavi attuali.
az cosmosdb keys regenerate \
--name <account_name> \
--resource-group <resource_group_name> \
--key-kind <primary|secondary>
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write
&& Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read
Con questo permesso, puoi creare o modificare trigger all'interno di un contenitore di un database SQL in un account Azure Cosmos DB. I trigger ti consentono di eseguire logica lato server in risposta a operazioni.
az cosmosdb sql trigger create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <trigger_name> \
--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
--type Pre \
--operation All
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write
&& Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read
Con questo permesso, puoi creare o modificare procedure memorizzate all'interno di un contenitore di un database SQL in un account Azure Cosmos DB. Le procedure memorizzate in Cosmos DB sono funzioni JavaScript lato server che ti consentono di incapsulare la logica per l'elaborazione dei dati o per eseguire operazioni direttamente all'interno del database.
az cosmosdb sql stored-procedure create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <stored_procedure_name> \
--body 'function sample() { return "Hello, Cosmos!"; }'
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write
&& Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read
Con questo permesso, puoi creare o modificare trigger all'interno di un contenitore di un database SQL in un account Azure Cosmos DB. I trigger ti consentono di eseguire logica lato server in risposta a operazioni come inserimenti, aggiornamenti o eliminazioni.
az cosmosdb sql trigger create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <trigger_name> \
--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
--type Pre \
--operation All
Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read
&& Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write
Con questo permesso, puoi creare o modificare collezioni all'interno dei database MongoDB in un account Azure Cosmos DB. Le collezioni vengono utilizzate per memorizzare documenti e definire la struttura e la partizione per i dati.
az cosmosdb mongodb collection create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <mongodb_database_name> \
--name <collection_name>
Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write
&& Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read
Con questo permesso, puoi creare nuovi database MongoDB all'interno di un account Azure Cosmos DB. Questo consente di fornire nuovi database per memorizzare e gestire collezioni e documenti.
az cosmosdb mongodb database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
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.