Az - CosmosDB Pós Exploração

Reading time: 6 minutes

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.

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

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

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

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.

bash
# 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.

bash
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.

bash
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.

bash
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.

bash
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.

bash
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.

bash
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.

bash
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.

bash
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