Az - CosmosDB Post Exploitation

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

CosmosDB Post Exploitation

SQL Database hakkında daha fazla bilgi için kontrol edin:

Az - CosmosDB

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

Bu izinle, Azure Cosmos DB hesapları oluşturabilir veya güncelleyebilirsiniz. Bu, hesap düzeyindeki yapılandırmaları değiştirmeyi, otomatik failover’ı etkinleştirmeyi veya devre dışı bırakmayı, ağ erişim kontrollerini yönetmeyi, yedekleme politikalarını ayarlamayı ve tutarlılık seviyelerini ayarlamayı içerir. Bu izne sahip saldırganlar, güvenlik kontrollerini zayıflatmak, kullanılabilirliği bozmak veya ağ kurallarını değiştirerek veri sızdırmak için ayarları değiştirebilir.

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

Ayrıca, hesapta yönetilen kimlikleri etkinleştirebilirsiniz:

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

Bu izinle, bir Azure Cosmos DB hesabının SQL veritabanı içinde konteynerler (koleksiyonlar) oluşturabilir veya bunları değiştirebilirsiniz. Konteynerler verileri depolamak için kullanılır ve bunlardaki değişiklikler veritabanının yapısını ve erişim desenlerini etkileyebilir.

# 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

Bu izinle, bir Azure Cosmos DB hesabı içinde SQL veritabanları oluşturabilir veya değiştirebilirsiniz. Bu, veritabanı yapısını yönetmeyi ve hesaba yeni veritabanları eklemeyi sağlar. Bu izin veritabanı oluşturmayı sağlasa da, uygunsuz veya yetkisiz kullanım gereksiz kaynak tüketimine, artan maliyetlere veya operasyonel verimsizliklere yol açabilir.

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

Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action

Bu izinle, bir Azure Cosmos DB veritabanı hesabı için bölgelerin failover önceliğini değiştirebilirsiniz. Bu eylem, bir failover olayı sırasında bölgelerin birincil hale gelme sırasını belirler. Bu iznin yanlış kullanımı, veritabanının yüksek kullanılabilirliğini bozabilir veya istenmeyen operasyonel etkilere yol açabilir.

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

Bu izinle, bir Azure Cosmos DB hesabı için birincil veya ikincil anahtarları yeniden oluşturabilirsiniz. Bu genellikle eski anahtarları değiştirmek suretiyle güvenliği artırmak için kullanılır, ancak mevcut anahtarlara bağımlı olan hizmetler veya uygulamalar için erişimi kesintiye uğratabilir.

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

Bu izinle, bir Azure Cosmos DB hesabındaki SQL veritabanı konteynerinde tetikleyiciler oluşturabilir veya değiştirebilirsiniz. Tetikleyiciler, işlemlere yanıt olarak sunucu tarafı mantığını yürütmenizi sağlar.

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

Bu izinle, bir Azure Cosmos DB hesabındaki SQL veritabanı konteynerinde saklanan prosedürleri oluşturabilir veya değiştirebilirsiniz. Cosmos DB’deki saklanan prosedürler, verileri işlemek veya doğrudan veritabanında işlemler gerçekleştirmek için mantığı kapsüllemenizi sağlayan sunucu tarafı JavaScript fonksiyonlarıdır.

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

Bu izinle, bir Azure Cosmos DB hesabındaki SQL veritabanı konteynerinde tetikleyiciler oluşturabilir veya değiştirebilirsiniz. Tetikleyiciler, ekleme, güncelleme veya silme gibi işlemlere yanıt olarak sunucu tarafı mantığını çalıştırmanıza olanak tanır.

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

Bu izinle, bir Azure Cosmos DB hesabındaki MongoDB veritabanları içinde koleksiyonlar oluşturabilir veya değiştirebilirsiniz. Koleksiyonlar, belgeleri depolamak ve veriler için yapı ve bölümlendirme tanımlamak için kullanılır.

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

Bu izinle, bir Azure Cosmos DB hesabı içinde yeni MongoDB veritabanları oluşturabilirsiniz. Bu, koleksiyonları ve belgeleri depolamak ve yönetmek için yeni veritabanları sağlamanıza olanak tanır.

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

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin