Az - CosmosDB Post Exploitation

Reading time: 6 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

CosmosDB Post Exploitation

Für weitere Informationen zur SQL-Datenbank siehe:

Az - CosmosDB

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

Mit dieser Berechtigung können Sie Azure Cosmos DB-Konten erstellen oder aktualisieren. Dies umfasst die Änderung von kontobezogenen Konfigurationen, das Aktivieren oder Deaktivieren von automatischem Failover, das Verwalten von Netzwerkzugriffssteuerungen, das Festlegen von Backup-Richtlinien und das Anpassen von Konsistenzstufen. Angreifer mit dieser Berechtigung könnten Einstellungen ändern, um Sicherheitskontrollen zu schwächen, die Verfügbarkeit zu stören oder Daten durch die Änderung von Netzwerkregeln zu exfiltrieren.

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

Zusätzlich können Sie verwaltete Identitäten im Konto aktivieren:

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

Mit dieser Berechtigung können Sie Container (Sammlungen) innerhalb einer SQL-Datenbank eines Azure Cosmos DB-Kontos erstellen oder ändern. Container werden verwendet, um Daten zu speichern, und Änderungen an ihnen können die Struktur und Zugriffsarten der Datenbank beeinflussen.

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

Mit dieser Berechtigung können Sie SQL-Datenbanken innerhalb eines Azure Cosmos DB-Kontos erstellen oder ändern. Dies ermöglicht die Verwaltung der Datenbankstruktur und das Hinzufügen neuer Datenbanken zum Konto. Während diese Berechtigung die Erstellung von Datenbanken ermöglicht, könnte unsachgemäße oder unbefugte Nutzung zu unnötigem Ressourcenverbrauch, erhöhten Kosten oder betrieblichen Ineffizienzen führen.

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

Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action

Mit dieser Berechtigung können Sie die Failover-Priorität von Regionen für ein Azure Cosmos DB-Datenbankkonto ändern. Diese Aktion bestimmt die Reihenfolge, in der Regionen während eines Failover-Ereignisses primär werden. Unsachgemäße Verwendung dieser Berechtigung kann die hohe Verfügbarkeit der Datenbank stören oder unbeabsichtigte betriebliche Auswirkungen haben.

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

Mit dieser Berechtigung können Sie die primären oder sekundären Schlüssel für ein Azure Cosmos DB-Konto regenerieren. Dies wird typischerweise verwendet, um die Sicherheit zu erhöhen, indem alte Schlüssel ersetzt werden, kann jedoch den Zugriff auf Dienste oder Anwendungen stören, die auf die aktuellen Schlüssel angewiesen sind.

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

Mit dieser Berechtigung können Sie Trigger innerhalb eines Containers einer SQL-Datenbank in einem Azure Cosmos DB-Konto erstellen oder ändern. Trigger ermöglichen es Ihnen, serverseitige Logik als Reaktion auf Operationen auszuführen.

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

Mit dieser Berechtigung können Sie gespeicherte Prozeduren innerhalb eines Containers einer SQL-Datenbank in einem Azure Cosmos DB-Konto erstellen oder ändern. Gespeicherte Prozeduren in Cosmos DB sind serverseitige JavaScript-Funktionen, die es Ihnen ermöglichen, Logik zur Verarbeitung von Daten oder zur Durchführung von Operationen direkt innerhalb der Datenbank zu kapseln.

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

Mit dieser Berechtigung können Sie Trigger innerhalb eines Containers einer SQL-Datenbank in einem Azure Cosmos DB-Konto erstellen oder ändern. Trigger ermöglichen es Ihnen, serverseitige Logik als Reaktion auf Operationen wie Einfügungen, Aktualisierungen oder Löschungen auszuführen.

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

Mit dieser Berechtigung können Sie Sammlungen innerhalb von MongoDB-Datenbanken in einem Azure Cosmos DB-Konto erstellen oder ändern. Sammlungen werden verwendet, um Dokumente zu speichern und die Struktur sowie die Partitionierung für Daten zu definieren.

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

Mit dieser Berechtigung können Sie neue MongoDB-Datenbanken innerhalb eines Azure Cosmos DB-Kontos erstellen. Dies ermöglicht die Bereitstellung neuer Datenbanken zum Speichern und Verwalten von Sammlungen und Dokumenten.

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

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks