16 KiB
Az - CosmosDB Post Exploitation
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या telegram समूह में शामिल हों या Twitter 🐦 पर हमें फॉलो करें @hacktricks_live.
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PR सबमिट करें।
CosmosDB Post Exploitation
SQL Database के बारे में अधिक जानकारी के लिए देखें:
{% content-ref url="../az-services/az-cosmosDB.md" %} az-cosmosDB.md {% endcontent-ref %}
"Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write"
इस अनुमति के साथ, आप Azure Cosmos DB खातों को बना या अपडेट कर सकते हैं। इसमें खाता-स्तरीय सेटिंग्स को संशोधित करना, क्षेत्रों को जोड़ना या हटाना, स्थिरता स्तरों को बदलना, और मल्टी-क्षेत्र लेखन जैसी सुविधाओं को सक्षम या अक्षम करना शामिल है।
{% code overflow="wrap" %}
az cosmosdb update \
--name <account_name> \
--resource-group <resource_group_name> \
--public-network-access ENABLED
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write"
इस अनुमति के साथ, आप Azure Cosmos DB खाते के SQL डेटाबेस के भीतर कंटेनर (संग्रह) बना या संशोधित कर सकते हैं। कंटेनर डेटा संग्रहीत करने के लिए उपयोग किए जाते हैं, और उनमें किए गए परिवर्तन डेटाबेस की संरचना और पहुंच पैटर्न को प्रभावित कर सकते हैं।
{% code overflow="wrap" %}
# 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
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read"
इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर SQL डेटाबेस बना या संशोधित कर सकते हैं। यह डेटाबेस संरचना को प्रबंधित करने और खाते में नए डेटाबेस जोड़ने की अनुमति देता है। जबकि यह अनुमति डेटाबेस निर्माण को सक्षम बनाती है, अनुचित या अनधिकृत उपयोग अनावश्यक संसाधन खपत, बढ़ी हुई लागत, या परिचालन अक्षमताओं का परिणाम हो सकता है।
{% code overflow="wrap" %}
az cosmosdb sql database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action"
इस अनुमति के साथ, आप Azure Cosmos DB डेटाबेस खाते के लिए क्षेत्रों की फेलओवर प्राथमिकता बदल सकते हैं। यह क्रिया निर्धारित करती है कि फेलओवर घटना के दौरान क्षेत्रों का प्राथमिकता क्रम क्या होगा। इस अनुमति का अनुचित उपयोग डेटाबेस की उच्च उपलब्धता को बाधित कर सकता है या अनपेक्षित संचालनात्मक प्रभावों का कारण बन सकता है।
{% code overflow="wrap" %}
az cosmosdb failover-priority-change \
--name <database_account_name> \
--resource-group <resource_group_name> \
--failover-policies <region1=priority1> <region2=priority2>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/regenerateKey/action"
इस अनुमति के साथ, आप Azure Cosmos DB खाते के प्राथमिक या द्वितीयक कुंजियों को पुनः उत्पन्न कर सकते हैं। इसका उपयोग आमतौर पर सुरक्षा को बढ़ाने के लिए पुराने कुंजियों को बदलने के लिए किया जाता है, लेकिन यह उन सेवाओं या अनुप्रयोगों के लिए पहुंच को बाधित कर सकता है जो वर्तमान कुंजियों पर निर्भर करते हैं।
{% code overflow="wrap" %}
az cosmosdb keys regenerate \
--name <account_name> \
--resource-group <resource_group_name> \
--key-kind <primary|secondary>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read"
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको संचालन के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं।
{% code overflow="wrap" %}
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
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read"
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर स्टोर किए गए प्रक्रियाओं को बना या संशोधित कर सकते हैं। Cosmos DB में स्टोर की गई प्रक्रियाएँ सर्वर-साइड जावास्क्रिप्ट फ़ंक्शन हैं जो आपको डेटा को संसाधित करने या सीधे डेटाबेस के भीतर संचालन करने के लिए लॉजिक को संलग्न करने की अनुमति देती हैं।
{% code overflow="wrap" %}
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!"; }'
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read"
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको इनसर्ट, अपडेट या डिलीट जैसी ऑपरेशनों के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं।
{% code overflow="wrap" %}
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
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write"
इस अनुमति के साथ, आप Azure Cosmos DB खाते में MongoDB डेटाबेस के भीतर संग्रह बना या संशोधित कर सकते हैं। संग्रह दस्तावेज़ों को संग्रहीत करने और डेटा के लिए संरचना और विभाजन को परिभाषित करने के लिए उपयोग किए जाते हैं।
{% code overflow="wrap" %}
az cosmosdb mongodb collection create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <mongodb_database_name> \
--name <collection_name>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read"
इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB डेटाबेस बना सकते हैं। यह संग्रह और दस्तावेज़ों को स्टोर और प्रबंधित करने के लिए नए डेटाबेस को प्रोविजन करने की अनुमति देता है।
{% code overflow="wrap" %}
az cosmosdb mongodb database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read"
इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB भूमिका परिभाषाएँ बना सकते हैं। यह MongoDB उपयोगकर्ताओं के लिए विशिष्ट अनुमतियों के साथ कस्टम भूमिकाएँ परिभाषित करने की अनुमति देता है।
{% code overflow="wrap" %}
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": []
}'
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read"
इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB उपयोगकर्ता परिभाषाएँ बना सकते हैं। यह MongoDB डेटाबेसों के लिए विशिष्ट भूमिकाओं और पहुँच स्तरों के साथ उपयोगकर्ताओं की प्रोविजनिंग की अनुमति देता है। {% code overflow="wrap" %}
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>"
}
]
}'
{% endcode %}
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या telegram समूह में शामिल हों या Twitter 🐦 पर हमें फॉलो करें @hacktricks_live.
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।