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

CosmosDB Post Exploitation

Aby uzyskać więcej informacji na temat SQL Database, sprawdź:

Az - CosmosDB

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