Az - CosmosDB Privesc
Reading time: 4 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
CosmosDB Privesc
SQL Database के बारे में अधिक जानकारी के लिए देखें:
(Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write
, Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read
) & (Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write
, Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read
)
इन अनुमतियों के साथ आप एक उपयोगकर्ता को क्वेरी निष्पादित करने और डेटाबेस से कनेक्ट करने के लिए अनुमतियाँ देकर विशेषाधिकार बढ़ा सकते हैं। सबसे पहले एक परिभाषा भूमिका बनाई जाती है जो आवश्यक अनुमतियाँ और दायरे देती है।
az cosmosdb sql role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<Random-Unique-ID>", # For example 12345678-1234-1234-1234-123456789az
"RoleName": "CustomReadRole",
"Type": "CustomRole",
"AssignableScopes": [
"/subscriptions/<subscription_id>/resourceGroups/sqldatabase/providers/Microsoft.DocumentDB/databaseAccounts/<account_name>"
],
"Permissions": [
{
"DataActions": [
"Microsoft.DocumentDB/databaseAccounts/readMetadata",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
]
}
]
}'
इसके बाद परिभाषा का असाइनमेंट एक उपयोगकर्ता को दिया जाता है। इसके बाद वह उपयोगकर्ता DefaultAzureCredential() कनेक्शन विधि का उपयोग करके क्वेरी निष्पादित कर सकता है।
az cosmosdb sql role assignment create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--role-definition-id <Random-Unique-ID-used-in-definition> \
--principal-id <principal_id-togive-perms> \
--scope "/"
(Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write
&& Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read
)&& (Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write
&& Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read
)
इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB भूमिका परिभाषाएँ बना सकते हैं। यह MongoDB उपयोगकर्ताओं के लिए विशिष्ट अनुमतियों के साथ कस्टम भूमिकाएँ परिभाषित करने की अनुमति देता है। इसका उपयोग करने के लिए RBAC कार्यक्षमताएँ सक्षम होनी चाहिए।
az cosmosdb mongodb role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.readWriteRole",
"RoleName": "readWriteRole",
"Type": "CustomRole",
"DatabaseName": "<mydatabase>",
"Privileges": [
{
"Resource": {
"Db": "<mydatabase>",
"Collection": "mycollection"
},
"Actions": [
"insert",
"find",
"update"
]
}
],
"Roles": []
}'
आप Azure Cosmos DB खाते के भीतर नए MongoDB उपयोगकर्ता परिभाषाएँ बना सकते हैं। यह MongoDB डेटाबेस तक विशिष्ट भूमिकाओं और पहुँच के साथ उपयोगकर्ताओं की प्रोविजनिंग की अनुमति देता है।
az cosmosdb mongodb user definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.myUser",
"UserName": "<myUser>",
"Password": "<mySecurePassword>",
"DatabaseName": "<mydatabase>",
"CustomData": "TestCustomData",
"Mechanisms": "SCRAM-SHA-256",
"Roles": [
{
"Role": "readWriteRole",
"Db": "<mydatabase>"
}
]
}'
उसके बाद एक नया उपयोगकर्ता MongoDB के भीतर बनाया जाता है, हम इसे एक्सेस कर सकते हैं:
mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure.com:10255/<mymongodatabase>?ssl=true&replicaSet=globaldb&retrywrites=false"
Microsoft.DocumentDB/databaseAccounts/listKeys/action
इस अनुमति के साथ, आप Azure Cosmos DB खाते के प्राथमिक और द्वितीयक कुंजी प्राप्त कर सकते हैं। ये कुंजी डेटाबेस खाते और इसके संसाधनों तक पूर्ण पहुंच प्रदान करती हैं, जिससे डेटा पढ़ने, लिखने और कॉन्फ़िगरेशन परिवर्तनों जैसी क्रियाएँ सक्षम होती हैं।
az cosmosdb keys list \
--name <account_name> \
--resource-group <resource_group_name>
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।