Az - CosmosDB पोस्ट एक्सप्लोइटेशन

Reading time: 7 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 का समर्थन करें

CosmosDB पोस्ट एक्सप्लोइटेशन

SQL डेटाबेस के बारे में अधिक जानकारी के लिए देखें:

Az - CosmosDB

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

इस अनुमति के साथ, आप Azure Cosmos DB खातों को बना या अपडेट कर सकते हैं। इसमें खाता-स्तरीय कॉन्फ़िगरेशन को संशोधित करना, स्वचालित फेलओवर को सक्षम या अक्षम करना, नेटवर्क एक्सेस नियंत्रण प्रबंधित करना, बैकअप नीतियों को सेट करना, और स्थिरता स्तरों को समायोजित करना शामिल है। इस अनुमति वाले हमलावर सेटिंग्स को बदलकर सुरक्षा नियंत्रणों को कमजोर कर सकते हैं, उपलब्धता को बाधित कर सकते हैं, या नेटवर्क नियमों को संशोधित करके डेटा को एक्सफिल्ट्रेट कर सकते हैं।

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

इसके अलावा, आप खाते में प्रबंधित पहचान सक्षम कर सकते हैं:

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

इस अनुमति के साथ, आप Azure Cosmos DB खाते के SQL डेटाबेस के भीतर कंटेनर (संग्रह) बना या संशोधित कर सकते हैं। कंटेनर डेटा संग्रहीत करने के लिए उपयोग किए जाते हैं, और उनमें किए गए परिवर्तन डेटाबेस की संरचना और पहुंच पैटर्न को प्रभावित कर सकते हैं।

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

इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर SQL डेटाबेस बना या संशोधित कर सकते हैं। यह डेटाबेस संरचना को प्रबंधित करने और खाते में नए डेटाबेस जोड़ने की अनुमति देता है। जबकि यह अनुमति डेटाबेस निर्माण को सक्षम बनाती है, अनुचित या अनधिकृत उपयोग अनावश्यक संसाधन खपत, बढ़ी हुई लागत, या परिचालन अक्षमताओं का परिणाम बन सकता है।

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

Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action

इस अनुमति के साथ, आप Azure Cosmos DB डेटाबेस खाते के लिए क्षेत्रों की फेलओवर प्राथमिकता बदल सकते हैं। यह क्रिया निर्धारित करती है कि फेलओवर घटना के दौरान क्षेत्रों का प्राथमिकता क्रम क्या होगा। इस अनुमति का अनुचित उपयोग डेटाबेस की उच्च उपलब्धता को बाधित कर सकता है या अनपेक्षित संचालनात्मक प्रभावों का कारण बन सकता है।

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

इस अनुमति के साथ, आप Azure Cosmos DB खाते के प्राथमिक या द्वितीयक कुंजी को पुनः उत्पन्न कर सकते हैं। इसका उपयोग आमतौर पर सुरक्षा को बढ़ाने के लिए पुराने कुंजी को बदलने के लिए किया जाता है, लेकिन यह उन सेवाओं या अनुप्रयोगों के लिए पहुंच को बाधित कर सकता है जो वर्तमान कुंजी पर निर्भर करते हैं।

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

इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको संचालन के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं।

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

इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर स्टोर किए गए प्रक्रियाओं को बना या संशोधित कर सकते हैं। Cosmos DB में स्टोर की गई प्रक्रियाएँ सर्वर-साइड जावास्क्रिप्ट फ़ंक्शन हैं जो आपको डेटा को संसाधित करने या सीधे डेटाबेस के भीतर संचालन करने के लिए लॉजिक को संलग्न करने की अनुमति देती हैं।

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

इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको इनसर्ट, अपडेट या डिलीट जैसे ऑपरेशनों के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं।

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

इस अनुमति के साथ, आप Azure Cosmos DB खाते में MongoDB डेटाबेस के भीतर संग्रह बना या संशोधित कर सकते हैं। संग्रह दस्तावेज़ों को संग्रहीत करने और डेटा के लिए संरचना और विभाजन को परिभाषित करने के लिए उपयोग किए जाते हैं।

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

इस अनुमति के साथ, आप Azure Cosmos DB खाते के भीतर नए MongoDB डेटाबेस बना सकते हैं। यह संग्रह और दस्तावेज़ों को स्टोर और प्रबंधित करने के लिए नए डेटाबेस को प्रोविजन करने की अनुमति देता है।

bash
az cosmosdb mongodb database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_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 का समर्थन करें