Az - CosmosDB Pós Exploração

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

CosmosDB Pós Exploração

Para mais informações sobre SQL Database, consulte:

Az - CosmosDB

Microsoft.DocumentDB/databaseAccounts/read && Microsoft.DocumentDB/databaseAccounts/write

Com esta permissão, você pode criar ou atualizar contas do Azure Cosmos DB. Isso inclui modificar configurações em nível de conta, habilitar ou desabilitar failover automático, gerenciar controles de acesso à rede, definir políticas de backup e ajustar níveis de consistência. Atacantes com essa permissão poderiam alterar configurações para enfraquecer controles de segurança, interromper a disponibilidade ou exfiltrar dados modificando regras de rede.

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

Além disso, você pode habilitar identidades gerenciadas na conta:

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

Com esta permissão, você pode criar ou modificar contêineres (coleções) dentro de um banco de dados SQL de uma conta do Azure Cosmos DB. Contêineres são usados para armazenar dados, e alterações neles podem impactar a estrutura e os padrões de acesso do banco de dados.

# 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

Com esta permissão, você pode criar ou modificar bancos de dados SQL dentro de uma conta do Azure Cosmos DB. Isso permite gerenciar a estrutura do banco de dados e adicionar novos bancos de dados à conta. Embora essa permissão possibilite a criação de bancos de dados, o uso inadequado ou não autorizado pode resultar em consumo desnecessário de recursos, aumento de custos ou ineficiências operacionais.

az cosmosdb sql database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>

Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action

Com esta permissão, você pode alterar a prioridade de failover das regiões para uma conta de banco de dados Azure Cosmos DB. Esta ação determina a ordem em que as regiões se tornam primárias durante um evento de failover. O uso inadequado desta permissão pode interromper a alta disponibilidade do banco de dados ou levar a impactos operacionais indesejados.

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

Com esta permissão, você pode regenerar as chaves primárias ou secundárias para uma conta do Azure Cosmos DB. Isso é tipicamente usado para aumentar a segurança substituindo chaves antigas, mas pode interromper o acesso para serviços ou aplicações que dependem das chaves atuais.

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

Com esta permissão, você pode criar ou modificar gatilhos dentro de um contêiner de um banco de dados SQL em uma conta do Azure Cosmos DB. Gatilhos permitem que você execute lógica do lado do servidor em resposta a operações.

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

Com esta permissão, você pode criar ou modificar procedimentos armazenados dentro de um contêiner de um banco de dados SQL em uma conta do Azure Cosmos DB. Procedimentos armazenados no Cosmos DB são funções JavaScript do lado do servidor que permitem encapsular lógica para processar dados ou realizar operações diretamente dentro do banco de dados.

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

Com esta permissão, você pode criar ou modificar gatilhos dentro de um contêiner de um banco de dados SQL em uma conta do Azure Cosmos DB. Gatilhos permitem que você execute lógica do lado do servidor em resposta a operações como inserções, atualizações ou exclusões.

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

Com esta permissão, você pode criar ou modificar coleções dentro de bancos de dados MongoDB em uma conta do Azure Cosmos DB. As coleções são usadas para armazenar documentos e definir a estrutura e a partição dos dados.

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

Com esta permissão, você pode criar novos bancos de dados MongoDB dentro de uma conta do Azure Cosmos DB. Isso permite a provisão de novos bancos de dados para armazenar e gerenciar coleções e documentos.

az cosmosdb mongodb database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks