Az - CosmosDB Post Exploitation

Reading time: 6 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

CosmosDB Post Exploitation

Для отримання додаткової інформації про SQL Database перегляньте:

Az - CosmosDB

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

З цією дозволом ви можете створювати або оновлювати облікові записи Azure Cosmos DB. Це включає зміну конфігурацій на рівні облікового запису, увімкнення або вимкнення автоматичного переключення на резервування, управління контролем доступу до мережі, налаштування політик резервного копіювання та коригування рівнів узгодженості. Зловмисники з цим дозволом можуть змінювати налаштування, щоб послабити контроль безпеки, порушити доступність або ексфільтрувати дані, змінюючи мережеві правила.

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

Додатково ви можете увімкнути керовані ідентичності в обліковому записі:

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

З цією дозволом ви можете створювати або змінювати контейнери (колекції) в SQL базі даних облікового запису Azure Cosmos DB. Контейнери використовуються для зберігання даних, і зміни в них можуть вплинути на структуру бази даних та шаблони доступу.

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

З цією дозволом ви можете створювати або змінювати SQL бази даних в обліковому записі Azure Cosmos DB. Це дозволяє керувати структурою бази даних та додавати нові бази даних до облікового запису. Хоча цей дозвіл дозволяє створення бази даних, неналежне або несанкціоноване використання може призвести до непотрібного споживання ресурсів, збільшення витрат або операційних неефективностей.

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

Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action

З цією дозволом ви можете змінити пріоритет відмови регіонів для облікового запису бази даних Azure Cosmos DB. Ця дія визначає порядок, у якому регіони стають основними під час події відмови. Неправильне використання цього дозволу може порушити високу доступність бази даних або призвести до непередбачуваних операційних наслідків.

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

З цією дозволом ви можете регенерувати основні або вторинні ключі для облікового запису Azure Cosmos DB. Це зазвичай використовується для підвищення безпеки шляхом заміни старих ключів, але це може порушити доступ для служб або додатків, які покладаються на поточні ключі.

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

З цією дозволом ви можете створювати або змінювати тригери в контейнері SQL бази даних в обліковому записі Azure Cosmos DB. Тригери дозволяють виконувати логіку на стороні сервера у відповідь на операції.

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

З цією дозволом ви можете створювати або змінювати збережені процедури в контейнері SQL бази даних в обліковому записі Azure Cosmos DB. Збережені процедури в Cosmos DB - це серверні JavaScript функції, які дозволяють вам інкапсулювати логіку для обробки даних або виконання операцій безпосередньо в базі даних.

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

З цією дозволом ви можете створювати або змінювати тригери в контейнері SQL бази даних в обліковому записі Azure Cosmos DB. Тригери дозволяють виконувати логіку на стороні сервера у відповідь на операції, такі як вставки, оновлення або видалення.

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

З цією дозволом ви можете створювати або змінювати колекції в базах даних MongoDB в обліковому записі Azure Cosmos DB. Колекції використовуються для зберігання документів та визначення структури і розподілу даних.

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

З цією дозволом ви можете створювати нові бази даних MongoDB в обліковому записі Azure Cosmos DB. Це дозволяє створювати нові бази даних для зберігання та управління колекціями та документами.

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

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks