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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
CosmosDB Post Exploitation
Для отримання додаткової інформації про SQL Database перегляньте:
Microsoft.DocumentDB/databaseAccounts/read
&& Microsoft.DocumentDB/databaseAccounts/write
З цією дозволом ви можете створювати або оновлювати облікові записи Azure Cosmos DB. Це включає зміну конфігурацій на рівні облікового запису, увімкнення або вимкнення автоматичного переключення на резервування, управління контролем доступу до мережі, налаштування політик резервного копіювання та коригування рівнів узгодженості. Зловмисники з цим дозволом можуть змінювати налаштування, щоб послабити контроль безпеки, порушити доступність або ексфільтрувати дані, змінюючи мережеві правила.
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
Додатково ви можете увімкнути керовані ідентичності в обліковому записі:
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. Контейнери використовуються для зберігання даних, і зміни в них можуть вплинути на структуру бази даних та шаблони доступу.
# 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. Це дозволяє керувати структурою бази даних та додавати нові бази даних до облікового запису. Хоча цей дозвіл дозволяє створення бази даних, неналежне або несанкціоноване використання може призвести до непотрібного споживання ресурсів, збільшення витрат або операційних неефективностей.
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. Ця дія визначає порядок, у якому регіони стають основними під час події відмови. Неправильне використання цього дозволу може порушити високу доступність бази даних або призвести до непередбачуваних операційних наслідків.
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. Це зазвичай використовується для підвищення безпеки шляхом заміни старих ключів, але це може порушити доступ для служб або додатків, які покладаються на поточні ключі.
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. Тригери дозволяють виконувати логіку на стороні сервера у відповідь на операції.
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 функції, які дозволяють вам інкапсулювати логіку для обробки даних або виконання операцій безпосередньо в базі даних.
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. Тригери дозволяють виконувати логіку на стороні сервера у відповідь на операції, такі як вставки, оновлення або видалення.
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. Колекції використовуються для зберігання документів та визначення структури і розподілу даних.
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. Це дозволяє створювати нові бази даних для зберігання та управління колекціями та документами.
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.