Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation

This commit is contained in:
Translator
2025-02-15 03:25:22 +00:00
parent 3b60c91ed0
commit 33cbfda3aa
2 changed files with 101 additions and 34 deletions

View File

@@ -10,9 +10,81 @@
../az-services/az-servicebus-enum.md
{{#endref}}
### संदेश भेजें। क्रिया: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` या `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action या Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
आप `PrimaryConnectionString` प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इनेक्शन स्ट्रिंग के साथ, आप Service Bus namespace के रूप में पूरी तरह से प्रमाणित हो सकते है, जिससे आप किसी भी कतार या विषय में संदेश भेज सकते हैं और संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं।
ये अनुमतियाँ आपको एक Service Bus namespace के भीतर स्थानीय प्राधिकरण नियमों के लिए कुंजी प्राप्त करने या पुनः उत्पन्न करने की अनुमति देती है। इुंजियों का उपयोग करके Service Bus namespace के रूप में प्रमाणीकरण करना संभव है, जिससे आप किसी भी कतार या विषय में संदेश भेज सकते हैं, किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, या संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं।
ध्यान दें कि डिफ़ॉल्ट रूप से **`RootManageSharedAccessKey` नियम का Service Bus namespace पर पूर्ण नियंत्रण है** और इसका उपयोग `az` cli द्वारा किया जाता है, हालाँकि, अन्य कुंजी मानों के साथ अन्य नियम भी हो सकते हैं।
```bash
# List keys
az servicebus namespace authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --authorization-rule-name RootManageSharedAccessKey [--authorization-rule-name RootManageSharedAccessKey]
# Regenerate keys
az servicebus namespace authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> [--authorization-rule-name RootManageSharedAccessKey]
```
### Microsoft.ServiceBus/namespaces/AuthorizationRules/write
इस अनुमति के साथ, **एक नया प्राधिकरण नियम** सभी अनुमतियों और इसके अपने कुंजियों के साथ बनाना संभव है:
```bash
az servicebus namespace authorization-rule create --authorization-rule-name "myRule" --namespace-name mynamespacespdemo --resource-group Resource_Group_1 --rights Manage Listen Send
```
>[!WARNING]
>यह कमांड कुंजियों के साथ प्रतिक्रिया नहीं करता है, इसलिए आपको विशेषाधिकार बढ़ाने के लिए उन्हें पिछले कमांड (और अनुमतियों) के साथ प्राप्त करना होगा।
इसके अलावा, उस कमांड (और `Microsoft.ServiceBus/namespaces/authorizationRules/read`) के साथ, यदि आप Azure CLI के माध्यम से यह क्रिया करते हैं, तो एक मौजूदा प्राधिकरण नियम को अपडेट करना और उसे अधिक अनुमतियाँ देना संभव है (यदि इसमें कुछ की कमी थी) निम्नलिखित कमांड के साथ:
```bash
az servicebus namespace authorization-rule update \
--resource-group <MyResourceGroup> \
--namespace-name <MyNamespace> \
--name RootManageSharedAccessKey \
--rights Manage Listen Send
```
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action
एक Service Bus namespace के अंदर विशिष्ट विषय और कतारें अपनी स्वयं की प्राधिकरण नियमों को रख सकती हैं, जिन्हें इकाई तक पहुँच को नियंत्रित करने के लिए उपयोग किया जा सकता है। इन अनुमतियों के साथ, आप **इन स्थानीय प्राधिकरण नियमों के लिए कुंजी प्राप्त या पुन: उत्पन्न कर सकते हैं**, जिससे आप इकाई के रूप में प्रमाणीकरण कर सकते हैं और संभावित रूप से संदेश भेजने या प्राप्त करने, सदस्यता प्रबंधित करने, या सिस्टम के साथ ऐसे तरीकों से बातचीत कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं।
```bash
# List keys (topics)
az servicebus topic authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
# Regenerate keys (topics)
az servicebus topic authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
# List keys (queues)
az servicebus queue authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name>
# Regenerate keys (queues)
az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name>
```
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/write
इस अनुमति के साथ, यह संभव है कि **एक नई प्राधिकरण नियम** सभी अनुमतियों और इसके अपने कुंजियों के साथ बनाया जाए:
```bash
# In a topic
az servicebus topic authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
# In a queue
az servicebus queue authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name> --rights Manage Listen Send
```
>[!WARNING]
>यह कमांड कुंजियों के साथ प्रतिक्रिया नहीं करता है, इसलिए आपको विशेषाधिकार बढ़ाने के लिए उन्हें पिछले कमांड (और अनुमतियों) के साथ प्राप्त करना होगा।
इसके अलावा, उस कमांड (और `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`) के साथ, यदि आप Azure CLI के माध्यम से यह क्रिया करते हैं, तो एक मौजूदा प्राधिकरण नियम को अपडेट करना संभव है और इसे अधिक अनुमतियाँ देना (यदि यह कुछ की कमी थी) निम्नलिखित कमांड के साथ:
```bash
# In a topic
az servicebus topic authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
# In a queue
az servicebus queue authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name> --rights Manage Listen Send
```
### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read if az cli is used)
इन अनुमतियों के साथ **एक हमलावर "स्थानीय प्रमाणीकरण" को फिर से सक्षम कर सकता है** निम्नलिखित कमांड के साथ और इसलिए साझा नीतियों से सभी कुंजी काम करेंगी।
```bash
az servicebus namespace update --disable-local-auth false -n <namespace-name> --resource-group <res-group>
```
### Send Messages with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
आप `PrimaryConnectionString` प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग के साथ, आप Service Bus namespace के रूप में पूरी तरह से प्रमाणीकरण कर सकते हैं, जिससे आप किसी भी कतार या विषय में संदेश भेजने में सक्षम होते हैं और संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं।
```python
#You need to install the following libraries
#pip install azure-servicebus
@@ -81,9 +153,9 @@ print("Messages Sent")
print("----------------------------")
```
### संदेश प्राप्त करें। क्रिया: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` या `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
### Recieve with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
आप PrimaryConnectionString प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग का उपयोग करके, आप namespace के भीतर किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, जिससे संभावित संवेदनशील या महत्वपूर्ण डेटा तक पहुंच मिलती है, डेटा निकासी की अनुमति मिलती है, या संदेश प्रसंस्करण और अनुप्रयोग कार्यप्रवाह में हस्तक्षेप कर सकते है
आप PrimaryConnectionString प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग का उपयोग करके, आप namespace के भीतर किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, जिससे संभावित संवेदनशील या महत्वपूर्ण डेटा तक पहुंच मिलती है, डेटा निकासी की अनुमति मिलती है, या संदेश प्रसंस्करण और अनुप्रयोग कार्यप्रवाह में हस्तक्षेप होता है।
```python
#You need to install the following libraries
#pip install azure-servicebus
@@ -127,16 +199,6 @@ asyncio.run(receive_and_process_messages())
print("Message Receiving Completed")
print("----------------------------")
```
### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
यदि आपके पास ये अनुमतियाँ हैं, तो आप साझा पहुँच कुंजी पढ़कर या बनाकर विशेषाधिकार बढ़ा सकते हैं। ये कुंजी Service Bus namespace पर पूर्ण नियंत्रण की अनुमति देती हैं, जिसमें कतारों, विषयों का प्रबंधन और संदेश भेजना/प्राप्त करना शामिल है, जो संभावित रूप से भूमिका-आधारित पहुँच नियंत्रण (RBAC) को बायपास कर सकती हैं।
```bash
az servicebus namespace authorization-rule update \
--resource-group <MyResourceGroup> \
--namespace-name <MyNamespace> \
--name RootManageSharedAccessKey \
--rights Manage Listen Send
```
## संदर्भ
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues

View File

@@ -4,15 +4,15 @@
## Service Bus
Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों** के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है ज कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना।
Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने** के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है जिनमें कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कि कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना।
### Key Concepts
1. **Queues:** इसका उद्देश्य संदेशों को तब तक संग्रहीत करना है जब तक प्राप्तकर्ता तैयार न हो।
- संदेश क्रमबद्ध, टाइमस्टैम्प किए गए और स्थायी रूप से संग्रहीत होते हैं।
- पुल मोड (ऑन-डिमांड पुनर्प्राप्ति) में वितरित कि जात है
- खींचने के मोड में वितरित किया जात है (आवश्यकता पर पुनर्प्राप्ति)
- बिंदु-से-बिंदु संचार का समर्थन करता है।
2. **Topics:** प्रसारण के लिए प्रकाशन-ग्राहक मैसेजिंग।
2. **Topics:** प्रसारण के लिए प्रकाशन-सदस्यता मैसेजिंग।
- कई स्वतंत्र सदस्यताएँ संदेशों की प्रतियाँ प्राप्त करती हैं।
- सदस्यताओं में वितरण को नियंत्रित करने या मेटाडेटा जोड़ने के लिए नियम/फिल्टर हो सकते हैं।
- कई-से-कई संचार का समर्थन करता है।
@@ -31,18 +31,18 @@ Azure Service Bus एक क्लाउड-आधारित **मैसेज
- **Filters & Actions**: संदेशों को फ़िल्टर या एनोटेट करने के लिए नियम लागू करता है।
- **Auto-Delete on Idle**: निष्क्रियता के बाद कतारों को हटा देता है (न्यूनतम: 5 मिनट)।
- **Duplicate Detection**: पुनः भेजने के दौरान डुप्लिकेट संदेशों को हटा देता है।
- **Batch Deletion**: समाप्त या अनावश्यक संदेशों को बल्क में हटाता है।
- **Batch Deletion**: समाप्त या अनावश्यक संदेशों को थोक में हटाता है।
### Authorization-Rule / SAS Policy
SAS नीतियाँ Azure Service Bus संस्थाओं के नामस्थान (सबसे महत्वपूर्ण) के लिए पहुँच अनुमतियों को परिभाषित करती हैं, कतारें और विषय। प्रत्येक नीति में निम्नलिखित घटक होते हैं:
- **Permissions**: पहुँच स्तर निर्दिष्ट करने के लिए चेकबॉक्स:
- प्रबंधित करें: इकाई पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है।
- भेजें: इकाई को संदेश भेजने की अनुमति देता है।
- सुनें: इकाई से संदेश प्राप्त करने की अनुमति देता है।
- प्रबंधित करें: संस्थाओं पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है।
- भेजें: संस्थाओं को संदेश भेजने की अनुमति देता है।
- सुनें: संस्थाओं से संदेश प्राप्त करने की अनुमति देता है।
- **Primary and Secondary Keys**: ये क्रिप्टोग्राफिक कुंजी हैं जो पहुँच को प्रमाणित करने के लिए सुरक्षित टोकन उत्पन्न करने के लिए उपयोग की जाती हैं।
- **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो एप्लिकेशन में उपयोग के लिए एंडपॉइंट और कुंजी शामिल करती हैं।
- **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो उपयोग में आसानी के लिए एंडपॉइंट और कुंजी शामिल करती हैं।
- **SAS Policy ARM ID**: प्रोग्रामेटिक पहचान के लिए नीति का Azure Resource Manager (ARM) पथ।
### NameSpace
@@ -54,18 +54,6 @@ sku, authrorization rule,
{{#tabs }}
{{#tab name="az cli" }}
```bash
# Queue Enumeration
az servicebus queue list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus queue show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyQueue>
# Topic Enumeration
az servicebus topic list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus topic show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyTopic>
# Susbscription Enumeration
az servicebus topic subscription list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
az servicebus topic subscription show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic> --name <MySubscription>
# Namespace Enumeration
az servicebus namespace list
az servicebus namespace network-rule-set list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
@@ -79,6 +67,23 @@ az servicebus namespace authorization-rule list --resource-group <MyResourceGrou
az servicebus queue authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --queue-name <MyQueue>
az servicebus topic authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
az servicebus namespace authorization-rule keys list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyAuthRule>
# Get keys
az servicebus namespace authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> [--authorization-rule-name RootManageSharedAccessKey]
az servicebus topic authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
az servicebus queue authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --queue-name <topic-name> --name <auth-rule-name>
# Queue Enumeration
az servicebus queue list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus queue show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyQueue>
# Topic Enumeration
az servicebus topic list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus topic show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyTopic>
# Susbscription Enumeration
az servicebus topic subscription list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
az servicebus topic subscription show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic> --name <MySubscription>
```
{{#endtab }}