Az - CosmosDB Post Exploitation
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
CosmosDB Post Exploitation
Aby uzyskać więcej informacji na temat SQL Database, sprawdź:
Microsoft.DocumentDB/databaseAccounts/read && Microsoft.DocumentDB/databaseAccounts/write
Dzięki temu uprawnieniu możesz tworzyć lub aktualizować konta Azure Cosmos DB. Obejmuje to modyfikowanie konfiguracji na poziomie konta, włączanie lub wyłączanie automatycznego przełączania awaryjnego, zarządzanie kontrolami dostępu do sieci, ustawianie polityk kopii zapasowych oraz dostosowywanie poziomów spójności. Atakujący z tym uprawnieniem mogą zmieniać ustawienia, aby osłabić kontrole bezpieczeństwa, zakłócić dostępność lub wykradać dane, modyfikując zasady sieciowe.
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
Dodatkowo możesz włączyć zarządzane tożsamości w koncie:
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
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować kontenery (kolekcje) w bazie danych SQL konta Azure Cosmos DB. Kontenery służą do przechowywania danych, a zmiany w nich mogą wpływać na strukturę bazy danych i wzorce dostępu.
# 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
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować bazy danych SQL w ramach konta Azure Cosmos DB. Umożliwia to zarządzanie strukturą bazy danych i dodawanie nowych baz danych do konta. Chociaż to uprawnienie umożliwia tworzenie baz danych, niewłaściwe lub nieautoryzowane użycie może prowadzić do niepotrzebnego zużycia zasobów, zwiększonych kosztów lub nieefektywności operacyjnych.
az cosmosdb sql database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action
Dzięki temu uprawnieniu możesz zmienić priorytet awaryjny regionów dla konta bazy danych Azure Cosmos DB. Ta akcja określa kolejność, w jakiej regiony stają się główne podczas zdarzenia awaryjnego. Niewłaściwe użycie tego uprawnienia może zakłócić wysoką dostępność bazy danych lub prowadzić do niezamierzonych skutków operacyjnych.
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
Dzięki temu uprawnieniu możesz regenerować klucze główne lub pomocnicze dla konta Azure Cosmos DB. Zazwyczaj jest to używane w celu zwiększenia bezpieczeństwa poprzez zastąpienie starych kluczy, ale może to zakłócić dostęp do usług lub aplikacji, które polegają na bieżących kluczach.
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
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować wyzwalacze w kontenerze bazy danych SQL w koncie Azure Cosmos DB. Wyzwalacze pozwalają na wykonywanie logiki po stronie serwera w odpowiedzi na operacje.
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
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować procedury składowane w kontenerze bazy danych SQL w koncie Azure Cosmos DB. Procedury składowane w Cosmos DB to funkcje JavaScript po stronie serwera, które pozwalają na enkapsulację logiki przetwarzania danych lub wykonywania operacji bezpośrednio w bazie danych.
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
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować wyzwalacze w kontenerze bazy danych SQL w koncie Azure Cosmos DB. Wyzwalacze pozwalają na wykonywanie logiki po stronie serwera w odpowiedzi na operacje takie jak wstawienia, aktualizacje lub usunięcia.
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
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować kolekcje w bazach danych MongoDB w koncie Azure Cosmos DB. Kolekcje służą do przechowywania dokumentów oraz definiowania struktury i partycjonowania danych.
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
Dzięki temu uprawnieniu możesz tworzyć nowe bazy danych MongoDB w ramach konta Azure Cosmos DB. Umożliwia to provisionowanie nowych baz danych do przechowywania i zarządzania kolekcjami oraz dokumentami.
az cosmosdb mongodb database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

