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
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
CosmosDB Post Exploitation
SQL Database hakkında daha fazla bilgi için kontrol edin:
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
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

