mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-01 07:25:51 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-organiza
This commit is contained in:
@@ -8,10 +8,10 @@ AWS Organizations नए AWS खातों के निर्माण को
|
||||
|
||||
मुख्य बिंदु:
|
||||
|
||||
- **नया खाता निर्माण**: AWS Organizations नए AWS खातों के निर्माण की अनुमति देता है बिना अतिरिक्त शुल्क के।
|
||||
- **नया खाता निर्माण**: AWS Organizations अतिरिक्त शुल्क के बिना नए AWS खातों के निर्माण की अनुमति देता है।
|
||||
- **संसाधन आवंटन**: यह खातों के बीच संसाधनों को आवंटित करने की प्रक्रिया को सरल बनाता है।
|
||||
- **खाता समूह बनाना**: खातों को एक साथ समूहित किया जा सकता है, जिससे प्रबंधन अधिक सुव्यवस्थित हो जाता है।
|
||||
- **गवर्नेंस नीतियाँ**: नीतियाँ खातों या खातों के समूहों पर लागू की जा सकती हैं, जिससे संगठन में अनुपालन और शासन सुनिश्चित होता है।
|
||||
- **शासन नीतियाँ**: नीतियाँ खातों या खातों के समूहों पर लागू की जा सकती हैं, जिससे संगठन में अनुपालन और शासन सुनिश्चित होता है।
|
||||
|
||||
आप अधिक जानकारी यहाँ पा सकते हैं:
|
||||
|
||||
@@ -40,6 +40,6 @@ aws iam get-account-summary
|
||||
```
|
||||
## संदर्भ
|
||||
|
||||
- https://aws.amazon.com/organizations/
|
||||
- [https://aws.amazon.com/organizations/](https://aws.amazon.com/organizations/)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -20,32 +20,32 @@ aws sqs send-message --queue-url <value> --message-body <value>
|
||||
> [!CAUTION]
|
||||
> इसके अलावा, यदि `--queue-url` में क्षेत्र शामिल है, तो सुनिश्चित करें कि आप **`--region`** में सही क्षेत्र निर्दिष्ट करें, अन्यथा आपको एक त्रुटि मिलेगी जो यह संकेत करती है कि आपके पास पहुंच नहीं है, लेकिन समस्या क्षेत्र है।
|
||||
|
||||
#### अनधिकृत पहुंच
|
||||
#### Unauthenticated Access
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-sqs-unauthenticated-enum.md
|
||||
{{#endref}}
|
||||
|
||||
#### विशेषाधिकार वृद्धि
|
||||
#### Privilege Escalation
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-sqs-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
#### पोस्ट एक्सप्लोइटेशन
|
||||
#### Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-sqs-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
#### स्थिरता
|
||||
#### Persistence
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-sqs-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
## संदर्भ
|
||||
## References
|
||||
|
||||
- https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html
|
||||
- [https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html](https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -22,8 +22,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
|
||||
```
|
||||
## संदर्भ
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
|
||||
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
|
||||
|
||||
इस अनुमति के साथ एक हमलावर Azure Storage Queue से संदेशों को देख सकता है। इससे हमलावर को संदेशों की सामग्री को बिना उन्हें संसाधित किए या उनकी स्थिति को बदले देखने की अनुमति मिलती है। इससे संवेदनशील जानकारी तक अनधिकृत पहुंच हो सकती है, जिससे डेटा निकासी या आगे के हमलों के लिए खुफिया जानकारी इकट्ठा करने की अनुमति मिलती है।
|
||||
इस अनुमति के साथ एक हमलावर Azure Storage Queue से संदेशों को देख सकता है। यह हमलावर को संदेशों की सामग्री को बिना उन्हें संसाधित किए या उनकी स्थिति को बदले देखने की अनुमति देता है। इससे संवेदनशील जानकारी तक अनधिकृत पहुंच हो सकती है, जिससे डेटा निकासी या आगे के हमलों के लिए खुफिया जानकारी इकट्ठा करने की अनुमति मिलती है।
|
||||
```bash
|
||||
az storage message peek --queue-name <queue_name> --account-name <storage_account>
|
||||
```
|
||||
@@ -26,13 +26,13 @@ az storage message get --queue-name <queue_name> --account-name <storage_account
|
||||
```
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action`
|
||||
|
||||
इस अनुमति के साथ, एक हमलावर Azure Storage Queue में नए संदेश जोड़ सकता है। यह उन्हें कतार में दुर्भावनापूर्ण या अनधिकृत डेटा इंजेक्ट करने की अनुमति देता है, जो संभावित रूप से अनपेक्षित क्रियाओं को ट्रिगर कर सकता है या उन डाउनस्ट्रीम सेवाओं को बाधित कर सकता है जो संदेशों को प्रोसेस करती हैं।
|
||||
इस अनुमति के साथ, एक हमलावर Azure Storage Queue में नए संदेश जोड़ सकता है। इससे उन्हें कतार में दुर्भावनापूर्ण या अनधिकृत डेटा इंजेक्ट करने की अनुमति मिलती है, जो संभावित रूप से अनपेक्षित क्रियाओं को ट्रिगर कर सकता है या उन डाउनस्ट्रीम सेवाओं को बाधित कर सकता है जो संदेशों को प्रोसेस करती हैं।
|
||||
```bash
|
||||
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
|
||||
```
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write`
|
||||
|
||||
यह अनुमति एक हमलावर को Azure Storage Queue में नए संदेश जोड़ने या मौजूदा संदेशों को अपडेट करने की अनुमति देती है। इसका उपयोग करके, वे हानिकारक सामग्री डाल सकते हैं या मौजूदा संदेशों को बदल सकते हैं, जो संभावित रूप से अनुप्रयोगों को भ्रामक बना सकता है या उन सिस्टम में अवांछित व्यवहार पैदा कर सकता है जो कतार पर निर्भर करते हैं।
|
||||
यह अनुमति एक हमलावर को Azure Storage Queue में नए संदेश जोड़ने या मौजूदा संदेशों को अपडेट करने की अनुमति देती है। इसका उपयोग करके, वे हानिकारक सामग्री डाल सकते हैं या मौजूदा संदेशों को बदल सकते हैं, जो संभावित रूप से अनुप्रयोगों को भ्रामक बना सकता है या उन सिस्टमों में अवांछित व्यवहार पैदा कर सकता है जो कतार पर निर्भर करते हैं।
|
||||
```bash
|
||||
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
|
||||
|
||||
@@ -46,19 +46,19 @@ az storage message update --queue-name <queue-name> \
|
||||
```
|
||||
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/delete`
|
||||
|
||||
यह अनुमति एक हमलावर को स्टोरेज खाते के भीतर कतारों को हटाने की अनुमति देती है। इस क्षमता का लाभ उठाकर, एक हमलावर कतारों और उनके सभी संबंधित संदेशों को स्थायी रूप से हटा सकता है, जिससे कार्यप्रवाह में महत्वपूर्ण व्यवधान उत्पन्न होता है और प्रभावित कतारों पर निर्भर करने वाले अनुप्रयोगों के लिए महत्वपूर्ण डेटा हानि होती है। इस क्रिया का उपयोग सेवाओं को बाधित करने के लिए भी किया जा सकता है, सिस्टम के आवश्यक घटकों को हटाकर।
|
||||
यह अनुमति एक हमलावर को स्टोरेज अकाउंट के भीतर कतारों को हटाने की अनुमति देती है। इस क्षमता का लाभ उठाकर, एक हमलावर कतारों और उनके सभी संबंधित संदेशों को स्थायी रूप से हटा सकता है, जिससे कार्यप्रवाह में महत्वपूर्ण व्यवधान उत्पन्न होता है और प्रभावित कतारों पर निर्भर करने वाले अनुप्रयोगों के लिए महत्वपूर्ण डेटा हानि होती है। इस क्रिया का उपयोग सेवाओं को बाधित करने के लिए भी किया जा सकता है, जिससे सिस्टम के आवश्यक घटकों को हटाया जा सकता है।
|
||||
```bash
|
||||
az storage queue delete --name <queue-name> --account-name <storage-account>
|
||||
```
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete`
|
||||
|
||||
इस अनुमति के साथ, एक हमलावर Azure Storage Queue से सभी संदेश हटा सकता है। यह क्रिया सभी संदेशों को हटा देती है, कार्यप्रवाहों को बाधित करती है और कतार पर निर्भर सिस्टम के लिए डेटा हानि का कारण बनती है।
|
||||
इस अनुमति के साथ, एक हमलावर Azure Storage Queue से सभी संदेशों को हटा सकता है। यह क्रिया सभी संदेशों को हटा देती है, कार्यप्रवाहों को बाधित करती है और कतार पर निर्भर सिस्टम के लिए डेटा हानि का कारण बनती है।
|
||||
```bash
|
||||
az storage message clear --queue-name <queue-name> --account-name <storage-account>
|
||||
```
|
||||
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
|
||||
|
||||
यह अनुमति एक हमलावर को स्टोरेज खाते के भीतर कतारें और उनकी विशेषताओं को बनाने या संशोधित करने की अनुमति देती है। इसका उपयोग अनधिकृत कतारें बनाने, मेटाडेटा को संशोधित करने, या एक्सेस कंट्रोल सूचियों (ACLs) को बदलने के लिए किया जा सकता है ताकि पहुँच को प्रदान या प्रतिबंधित किया जा सके। यह क्षमता कार्यप्रवाहों को बाधित कर सकती है, दुर्भावनापूर्ण डेटा इंजेक्ट कर सकती है, संवेदनशील जानकारी को एक्सफिल्ट्रेट कर सकती है, या आगे के हमलों को सक्षम करने के लिए कतार सेटिंग्स में हेरफेर कर सकती है।
|
||||
यह अनुमति एक हमलावर को स्टोरेज अकाउंट के भीतर कतारें और उनकी विशेषताओं को बनाने या संशोधित करने की अनुमति देती है। इसका उपयोग अनधिकृत कतारें बनाने, मेटाडेटा को संशोधित करने, या एक्सेस कंट्रोल सूचियों (ACLs) को बदलने के लिए किया जा सकता है ताकि पहुँच को प्रदान या प्रतिबंधित किया जा सके। यह क्षमता कार्यप्रवाहों को बाधित कर सकती है, दुर्भावनापूर्ण डेटा इंजेक्ट कर सकती है, संवेदनशील जानकारी को एक्सफिल्ट्रेट कर सकती है, या आगे के हमलों को सक्षम करने के लिए कतार सेटिंग्स में हेरफेर कर सकती है।
|
||||
```bash
|
||||
az storage queue create --name <new-queue-name> --account-name <storage-account>
|
||||
|
||||
@@ -68,8 +68,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
|
||||
```
|
||||
## संदर्भ
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
|
||||
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -18,46 +18,39 @@ az servicebus namespace delete --resource-group <ResourceGroupName> --name <Name
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/topics/Delete`
|
||||
|
||||
इस अनुमति के साथ एक हमलावर Azure Service Bus टॉपिक को हटा सकता है। यह क्रिया टॉपिक और इसके सभी संबंधित सब्सक्रिप्शन और संदेशों को हटा देती है, जिससे महत्वपूर्ण डेटा का नुकसान और उस टॉपिक पर निर्भर सिस्टम और वर्कफ़्लो में बाधा उत्पन्न हो सकती है।
|
||||
इस अनुमति के साथ एक हमलावर Azure Service Bus टॉपिक को हटा सकता है। यह क्रिया टॉपिक और इसके सभी संबंधित सब्सक्रिप्शन और संदेशों को हटा देती है, जिससे महत्वपूर्ण डेटा का नुकसान और उन सिस्टमों और कार्यप्रवाहों में व्यवधान हो सकता है जो टॉपिक पर निर्भर करते हैं।
|
||||
```bash
|
||||
az servicebus topic delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/queues/Delete`
|
||||
|
||||
इस अनुमति के साथ एक हमलावर Azure Service Bus कतार को हटा सकता है। यह क्रिया कतार और इसके भीतर सभी संदेशों को हटा देती है, जिससे महत्वपूर्ण डेटा का नुकसान और कतार पर निर्भर सिस्टम और कार्यप्रवाहों में व्यवधान उत्पन्न हो सकता है।
|
||||
इस अनुमति के साथ एक हमलावर Azure Service Bus कतार को हटा सकता है। यह क्रिया कतार और इसके भीतर सभी संदेशों को हटा देती है, जिससे महत्वपूर्ण डेटा का नुकसान और कतार पर निर्भर सिस्टम और कार्यप्रवाहों में बाधा उत्पन्न हो सकती है।
|
||||
```bash
|
||||
az servicebus queue delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/Delete`
|
||||
|
||||
इस अनुमति के साथ एक हमलावर Azure Service Bus सदस्यता को हटा सकता है। यह क्रिया सदस्यता और इसके सभी संबंधित संदेशों को हटा देती है, जो कार्यप्रवाह, डेटा प्रोसेसिंग और सिस्टम संचालन को बाधित कर सकती है जो सदस्यता पर निर्भर करते हैं।
|
||||
इस अनुमति के साथ एक हमलावर Azure Service Bus सदस्यता को हटा सकता है। यह क्रिया सदस्यता और इसके सभी संबंधित संदेशों को हटा देती है, जो संभावित रूप से कार्यप्रवाह, डेटा प्रसंस्करण, और सिस्टम संचालन को बाधित कर सकती है जो सदस्यता पर निर्भर करते हैं।
|
||||
```bash
|
||||
az servicebus topic subscription delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/write` & `Microsoft.ServiceBus/namespaces/read`
|
||||
|
||||
एक हमलावर जिसके पास Azure Service Bus namespaces बनाने या संशोधित करने की अनुमति है, इसका उपयोग संचालन को बाधित करने, अनधिकृत संसाधनों को तैनात करने, या संवेदनशील डेटा को उजागर करने के लिए कर सकता है। वे महत्वपूर्ण कॉन्फ़िगरेशन को बदल सकते हैं जैसे सार्वजनिक नेटवर्क एक्सेस को सक्षम करना, एन्क्रिप्शन सेटिंग्स को डाउनग्रेड करना, या प्रदर्शन को कम करने या लागत बढ़ाने के लिए SKUs को बदलना। इसके अतिरिक्त, वे स्थानीय प्रमाणीकरण को निष्क्रिय कर सकते हैं, प्रतिकृति स्थानों में हेरफेर कर सकते हैं, या सुरक्षा नियंत्रणों को कमजोर करने के लिए TLS संस्करणों को समायोजित कर सकते हैं, जिससे namespace misconfiguration एक महत्वपूर्ण पोस्ट-एक्सप्लॉइटेशन जोखिम बन जाता है।
|
||||
```bash
|
||||
az servicebus namespace create --resource-group <ResourceGroupName> --name <NamespaceName> --location <Location>
|
||||
az servicebus namespace update --resource-group <ResourceGroupName> --name <NamespaceName> --tags <Key=Value>
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`)
|
||||
|
||||
एक हमलावर जिसके पास Azure Service Bus queues बनाने या संशोधित करने की अनुमति है (queue को संशोधित करने के लिए आपको Action:`Microsoft.ServiceBus/namespaces/queues/read` की भी आवश्यकता होगी) इसका उपयोग डेटा को इंटरसेप्ट करने, कार्यप्रवाहों को बाधित करने, या अनधिकृत पहुंच सक्षम करने के लिए कर सकता है। वे महत्वपूर्ण कॉन्फ़िगरेशन को बदल सकते हैं जैसे कि संदेशों को दुर्भावनापूर्ण एंडपॉइंट्स पर अग्रेषित करना, डेटा को अनुचित रूप से बनाए रखने या हटाने के लिए संदेश TTL को समायोजित करना, या त्रुटि प्रबंधन में हस्तक्षेप करने के लिए डेड-लेटरिंग सक्षम करना। इसके अतिरिक्त, वे सेवा कार्यक्षमता को बाधित करने या पहचान से बचने के लिए queue के आकार, लॉक अवधि, या स्थिति को भी हेरफेर कर सकते हैं, जिससे यह एक महत्वपूर्ण पोस्ट-एक्सप्लॉइटेशन जोखिम बन जाता है।
|
||||
एक हमलावर जिसके पास Azure Service Bus queues बनाने या संशोधित करने की अनुमति है (queue को संशोधित करने के लिए आपको Action:`Microsoft.ServiceBus/namespaces/queues/read` की भी आवश्यकता होगी) इसका उपयोग डेटा को इंटरसेप्ट करने, कार्यप्रवाहों को बाधित करने, या अनधिकृत पहुंच सक्षम करने के लिए कर सकता है। वे महत्वपूर्ण कॉन्फ़िगरेशन को बदल सकते हैं जैसे कि संदेशों को दुर्भावनापूर्ण एंडपॉइंट्स पर अग्रेषित करना, डेटा को अनुचित तरीके से बनाए रखने या हटाने के लिए संदेश TTL को समायोजित करना, या त्रुटि प्रबंधन में हस्तक्षेप करने के लिए डेड-लेटरिंग सक्षम करना। इसके अतिरिक्त, वे सेवा कार्यक्षमता को बाधित करने या पहचान से बचने के लिए queue के आकार, लॉक अवधि, या स्थिति में हेरफेर कर सकते हैं, जिससे यह एक महत्वपूर्ण पोस्ट-एक्सप्लॉइटेशन जोखिम बन जाता है।
|
||||
```bash
|
||||
az servicebus queue create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
|
||||
az servicebus queue update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`)
|
||||
|
||||
एक हमलावर जिसे Azure Service Bus namespace के भीतर विषय बनाने या संशोधित करने की अनुमति है (विषय को संशोधित करने के लिए आपको Action:`Microsoft.ServiceBus/namespaces/topics/read` की भी आवश्यकता होगी) इसका उपयोग संदेश कार्यप्रवाहों को बाधित करने, संवेदनशील डेटा को उजागर करने, या अनधिकृत क्रियाओं को सक्षम करने के लिए कर सकता है। az servicebus topic update जैसे कमांड का उपयोग करके, वे कॉन्फ़िगरेशन में हेरफेर कर सकते हैं जैसे कि स्केलेबिलिटी दुरुपयोग के लिए विभाजन को सक्षम करना, संदेशों को अनुचित रूप से बनाए रखने या त्यागने के लिए TTL सेटिंग्स को बदलना, या नियंत्रणों को बायपास करने के लिए डुप्लिकेट पहचान को अक्षम करना। इसके अतिरिक्त, वे विषय आकार सीमाओं को समायोजित कर सकते हैं, उपलब्धता को बाधित करने के लिए स्थिति बदल सकते हैं, या अस्थायी रूप से इंटरसेप्ट किए गए संदेशों को स्टोर करने के लिए एक्सप्रेस विषयों को कॉन्फ़िगर कर सकते हैं, जिससे विषय प्रबंधन पोस्ट-एक्सप्लॉइटेशन शमन के लिए एक महत्वपूर्ण ध्यान केंद्र बन जाता है।
|
||||
एक हमलावर जिसके पास Azure Service Bus namespace के भीतर विषय बनाने या संशोधित करने की अनुमति है (विषय को संशोधित करने के लिए आपको Action:`Microsoft.ServiceBus/namespaces/topics/read` की भी आवश्यकता होगी) इसका उपयोग संदेश कार्यप्रवाहों को बाधित करने, संवेदनशील डेटा को उजागर करने, या अनधिकृत क्रियाओं को सक्षम करने के लिए कर सकता है। az servicebus topic update जैसे कमांड का उपयोग करके, वे कॉन्फ़िगरेशन को इस तरह से हेरफेर कर सकते हैं जैसे कि स्केलेबिलिटी दुरुपयोग के लिए विभाजन को सक्षम करना, संदेशों को अनुचित रूप से बनाए रखने या त्यागने के लिए TTL सेटिंग्स को बदलना, या नियंत्रणों को बायपास करने के लिए डुप्लिकेट पहचान को अक्षम करना। इसके अतिरिक्त, वे विषय आकार सीमाओं को समायोजित कर सकते हैं, उपलब्धता को बाधित करने के लिए स्थिति बदल सकते हैं, या अस्थायी रूप से इंटरसेप्टेड संदेशों को स्टोर करने के लिए एक्सप्रेस विषयों को कॉन्फ़िगर कर सकते हैं, जिससे विषय प्रबंधन पोस्ट-एक्सप्लॉइटेशन शमन के लिए एक महत्वपूर्ण ध्यान केंद्र बन जाता है।
|
||||
```bash
|
||||
az servicebus topic create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
|
||||
az servicebus topic update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`)
|
||||
|
||||
एक हमलावर जिसके पास Azure Service Bus टॉपिक के भीतर सब्सक्रिप्शन बनाने या संशोधित करने की अनुमति है (सब्सक्रिप्शन को संशोधित करने के लिए आपको Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read` की भी आवश्यकता होगी) इसका उपयोग संदेश कार्यप्रवाहों को इंटरसेप्ट, रीरूट या बाधित करने के लिए कर सकता है। az servicebus topic subscription update जैसे कमांड का उपयोग करके, वे संदेशों को मोड़ने के लिए डेड लेटरिंग सक्षम करने, संदेशों को अनधिकृत एंडपॉइंट्स पर अग्रेषित करने, या संदेश वितरण को बनाए रखने या हस्तक्षेप करने के लिए TTL और लॉक अवधि को संशोधित करने जैसी कॉन्फ़िगरेशन में हेरफेर कर सकते हैं। इसके अतिरिक्त, वे संचालन को बाधित करने या पहचान से बचने के लिए स्थिति या अधिकतम वितरण गणना सेटिंग्स को भी बदल सकते हैं, जिससे सब्सक्रिप्शन नियंत्रण पोस्ट-एक्सप्लॉइटेशन परिदृश्यों का एक महत्वपूर्ण पहलू बन जाता है।
|
||||
एक हमलावर जिसके पास Azure Service Bus टॉपिक के भीतर सब्सक्रिप्शन बनाने या संशोधित करने की अनुमति है (सब्सक्रिप्शन को संशोधित करने के लिए आपको Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read` की भी आवश्यकता होगी) इसका उपयोग संदेश कार्यप्रवाहों को इंटरसेप्ट, रीरूट या बाधित करने के लिए कर सकता है। az servicebus topic subscription update जैसे कमांड का उपयोग करके, वे संदेशों को मोड़ने के लिए डेड लेटरिंग सक्षम करने, संदेशों को अनधिकृत एंडपॉइंट्स पर अग्रेषित करने, या संदेश वितरण को बनाए रखने या बाधित करने के लिए TTL और लॉक अवधि को संशोधित करने जैसी कॉन्फ़िगरेशन में हेरफेर कर सकते हैं। इसके अतिरिक्त, वे संचालन को बाधित करने या पहचान से बचने के लिए स्थिति या अधिकतम वितरण गणना सेटिंग्स को भी बदल सकते हैं, जिससे सब्सक्रिप्शन नियंत्रण पोस्ट-एक्सप्लॉइटेशन परिदृश्यों का एक महत्वपूर्ण पहलू बन जाता है।
|
||||
```bash
|
||||
az servicebus topic subscription create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
|
||||
az servicebus topic subscription update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
|
||||
@@ -72,12 +65,12 @@ az servicebus topic subscription update --resource-group <ResourceGroupName> --n
|
||||
|
||||
## संदर्भ
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
|
||||
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless
|
||||
- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus
|
||||
- https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest
|
||||
- https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
|
||||
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
|
||||
- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless)
|
||||
- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus)
|
||||
- [https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest)
|
||||
- [https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -19,10 +19,20 @@ az sql db create --resource-group <resource-group> --server <server-name> --name
|
||||
|
||||
# Update Database
|
||||
az sql db update --resource-group <resource-group> --server <server-name> --name <database-name> --max-size <max-size-in-bytes>
|
||||
```
|
||||
इन अनुमतियों के साथ (`Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`) आप एक हटाई गई डेटाबेस को पुनर्स्थापित कर सकते हैं:
|
||||
```bash
|
||||
az sql db restore \
|
||||
--dest-name <new_database_name> \
|
||||
--name <original_database_name> \
|
||||
--resource-group <resource_group> \
|
||||
--server <server_name> \
|
||||
--deleted-time "<deleted_time_ISO_format>"
|
||||
|
||||
```
|
||||
### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read`
|
||||
|
||||
इन अनुमतियों के साथ, एक हमलावर समझौता किए गए वातावरण में elasticPools बना और अपडेट कर सकता है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि एक हमलावर को दुर्भावनापूर्ण डेटा जोड़ने, डेटाबेस कॉन्फ़िगरेशन को संशोधित करने, या आगे की स्थिरता के लिए बैकडोर डालने की अनुमति दे सकती है, जो संभावित रूप से संचालन को बाधित कर सकती है या अतिरिक्त दुर्भावनापूर्ण क्रियाओं को सक्षम कर सकती है।
|
||||
इन अनुमतियों के साथ, एक हमलावर समझौता किए गए वातावरण में elasticPools बना और अपडेट कर सकता है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि एक हमलावर को दुर्भावनापूर्ण डेटा जोड़ने, डेटाबेस कॉन्फ़िगरेशन को संशोधित करने, या आगे की स्थिरता के लिए बैकडोर डालने की अनुमति दे सकती है, संभावित रूप से संचालन को बाधित करने या अतिरिक्त दुर्भावनापूर्ण क्रियाओं को सक्षम करने के लिए।
|
||||
```bash
|
||||
# Create Elastic Pool
|
||||
az sql elastic-pool create \
|
||||
@@ -76,7 +86,7 @@ az sql db export \
|
||||
```
|
||||
### `Microsoft.Sql/servers/databases/import/action`
|
||||
|
||||
इस अनुमति के साथ, आप Azure SQL Server में एक डेटाबेस आयात कर सकते हैं। एक हमलावर या अधिकृत उपयोगकर्ता जिसके पास यह अनुमति है, संभावित रूप से दुर्भावनापूर्ण या हेरफेर किए गए डेटाबेस अपलोड कर सकता है। इससे संवेदनशील डेटा पर नियंत्रण प्राप्त करने या आयातित डेटाबेस के भीतर हानिकारक स्क्रिप्ट या ट्रिगर्स को एम्बेड करने की संभावना हो सकती है। इसके अतिरिक्त, आप इसे अपने स्वयं के सर्वर में Azure में आयात कर सकते हैं। नोट: सर्वर को Azure सेवाओं और संसाधनों को सर्वर तक पहुंचने की अनुमति देनी चाहिए।
|
||||
इस अनुमति के साथ, आप Azure SQL Server में एक डेटाबेस आयात कर सकते हैं। एक हमलावर या अधिकृत उपयोगकर्ता जिसके पास यह अनुमति है, संभावित रूप से दुर्भावनापूर्ण या हेरफेर किए गए डेटाबेस अपलोड कर सकता है। इससे संवेदनशील डेटा पर नियंत्रण प्राप्त करने या आयातित डेटाबेस के भीतर हानिकारक स्क्रिप्ट या ट्रिगर्स को एम्बेड करने की संभावना हो सकती है। अतिरिक्त रूप से, आप इसे अपने स्वयं के सर्वर में Azure में आयात कर सकते हैं। नोट: सर्वर को Azure सेवाओं और संसाधनों को सर्वर तक पहुंचने की अनुमति देनी चाहिए।
|
||||
```bash
|
||||
az sql db import --admin-user <admin-user> \
|
||||
--admin-password <admin-password> \
|
||||
@@ -87,4 +97,41 @@ az sql db import --admin-user <admin-user> \
|
||||
--storage-key <storage-account-key> \
|
||||
--storage-uri `https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
|
||||
```
|
||||
### `Microsoft.Sql/servers/connectionPolicies/write` && `Microsoft.Sql/servers/connectionPolicies/read`
|
||||
|
||||
इन अनुमतियों के साथ, एक उपयोगकर्ता Azure SQL सर्वर की कनेक्शन नीतियों को संशोधित और प्राप्त कर सकता है। ये अनुमतियाँ किसी को सर्वर से कनेक्ट करने के तरीके को बदलने की अनुमति देती हैं—जैसे कि रीडायरेक्ट या प्रॉक्सी के बीच चयन करना—जो सुरक्षा को कमजोर करने, ट्रैफ़िक को रीडायरेक्ट करने, या संवेदनशील डेटा को इंटरसेप्ट करने के लिए शोषित किया जा सकता है यदि इसे गलत तरीके से कॉन्फ़िगर किया गया हो।
|
||||
```bash
|
||||
az sql server conn-policy update \
|
||||
--resource-group <resource_group> \
|
||||
--server <server_name> \
|
||||
--connection-policy <policy>
|
||||
```
|
||||
### `Microsoft.Sql/servers/keys/write` && `Microsoft.Sql/servers/keys/read`
|
||||
|
||||
इन अनुमतियों के साथ, एक उपयोगकर्ता Azure SQL Server से जुड़े एन्क्रिप्शन कुंजियों को अपडेट और पुनर्प्राप्त कर सकता है। ये कुंजियाँ अक्सर एन्क्रिप्शन के माध्यम से संवेदनशील डेटा को सुरक्षित करने के लिए उपयोग की जाती हैं, इसलिए इन्हें संशोधित करना डेटा सुरक्षा को खतरे में डाल सकता है, जिससे अनधिकृत डिक्रिप्शन या कुंजी रोटेशन परिवर्तनों की अनुमति मिल सकती है।
|
||||
```bash
|
||||
az sql server key create \
|
||||
--resource-group MyResourceGroup \
|
||||
--server MyServer \
|
||||
--kid "https://mykeyvault.vault.azure.net/keys/mykey/1234567890abcdef
|
||||
```
|
||||
### `Microsoft.Sql/servers/databases/ledgerDigestUploads/disable/action`, `Microsoft.Sql/locations/ledgerDigestUploadsAzureAsyncOperation/read`, `Microsoft.Sql/locations/ledgerDigestUploadsOperationResults/read`
|
||||
|
||||
यह अनुमति Azure SQL Database के लिए Ledger Digest को निष्क्रिय करने की अनुमति देती है, जो Azure Blob Storage पर डेटा की अखंडता की पुष्टि करने वाले क्रिप्टोग्राफिक डाइजेस्ट रिकॉर्ड के आवधिक अपलोड को रोकती है।
|
||||
```bash
|
||||
az sql db ledger-digest-uploads disable \
|
||||
--name ledgerDB \
|
||||
--resource-group myResourceGroup \
|
||||
--server my-sql-server
|
||||
```
|
||||
### `Microsoft.Sql/servers/databases/transparentDataEncryption/write`, `Microsoft.Sql/locations/transparentDataEncryptionAzureAsyncOperation/read`, `Microsoft.Sql/servers/databases/transparentDataEncryption/read`
|
||||
|
||||
यह अनुमति एक अधिकृत उपयोगकर्ता या हमलावर को Azure SQL डेटाबेस पर Transparent Data Encryption (TDE) सेटिंग्स को सक्षम, अक्षम या संशोधित करने की अनुमति देती है, जो एन्क्रिप्शन कॉन्फ़िगरेशन को बदलकर डेटा सुरक्षा को प्रभावित कर सकती है।
|
||||
```bash
|
||||
az sql db tde set \
|
||||
--database <database-name> \
|
||||
--resource-group <resource-group-name> \
|
||||
--server <server-name> \
|
||||
--status <Enabled|Disabled>
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
# Az - Azure Container Instances Privesc
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Azure Container Instances
|
||||
|
||||
अधिक जानकारी के लिए देखें:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-container-instances.md
|
||||
{{#endref}}
|
||||
|
||||
### `Microsoft.ContainerInstance/containerGroups/read`, `Microsoft.ContainerInstance/containerGroups/containers/exec/action`
|
||||
|
||||
ये अनुमतियाँ उपयोगकर्ता को **एक कमांड निष्पादित** करने की अनुमति देती हैं एक चल रहे कंटेनर में। यदि कंटेनर में कोई प्रबंधित पहचान जुड़ी हुई है, तो इसका उपयोग **अधिकार बढ़ाने** के लिए किया जा सकता है। बेशक, कंटेनर के अंदर संग्रहीत स्रोत कोड और किसी अन्य संवेदनशील जानकारी तक पहुंच प्राप्त करना भी संभव है।
|
||||
|
||||
`ls` निष्पादित करने और आउटपुट प्राप्त करने के लिए यह उतना ही सरल है:
|
||||
```bash
|
||||
az container exec --name <container-name> --resource-group <res-group> --exec-command 'ls'
|
||||
```
|
||||
यह भी संभव है कि **कंटेनर का आउटपुट पढ़ा जाए**:
|
||||
```bash
|
||||
az container attach --name <container-name> --resource-group <res-group>
|
||||
```
|
||||
या लॉग प्राप्त करें:
|
||||
```bash
|
||||
az container logs --name <container-name> --resource-group <res-group>
|
||||
```
|
||||
### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
ये अनुमतियाँ **एक उपयोगकर्ता प्रबंधित पहचान** को एक कंटेनर समूह से जोड़ने की अनुमति देती हैं। यह कंटेनर में विशेषाधिकार बढ़ाने के लिए बहुत उपयोगी है।
|
||||
|
||||
एक उपयोगकर्ता प्रबंधित पहचान को एक कंटेनर समूह से जोड़ने के लिए:
|
||||
```bash
|
||||
az rest \
|
||||
--method PATCH \
|
||||
--url "/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ContainerInstance/containerGroups/<container-name>?api-version=2021-09-01" \
|
||||
--body '{
|
||||
"identity": {
|
||||
"type": "UserAssigned",
|
||||
"userAssignedIdentities": {
|
||||
"/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-namaged-identity-name>": {}
|
||||
}
|
||||
}
|
||||
}' \
|
||||
--headers "Content-Type=application/json"
|
||||
```
|
||||
### `Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
ये अनुमति **एक कंटेनर समूह बनाने या अपडेट करने** की अनुमति देती हैं जिसमें **एक उपयोगकर्ता प्रबंधित पहचान** संलग्न होती है। यह कंटेनर में विशेषाधिकार बढ़ाने के लिए बहुत उपयोगी है।
|
||||
```bash
|
||||
az container create \
|
||||
--resource-group <res-group>> \
|
||||
--name nginx2 \
|
||||
--image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \
|
||||
--assign-identity "/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-namaged-identity-name>" \
|
||||
--restart-policy OnFailure \
|
||||
--os-type Linux \
|
||||
--cpu 1 \
|
||||
--memory 1.0
|
||||
```
|
||||
इसके अलावा, एक मौजूदा कंटेनर समूह को अपडेट करना भी संभव है, उदाहरण के लिए **`--command-line` तर्क** के साथ एक रिवर्स शेल जोड़ना।
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -16,11 +16,11 @@
|
||||
```bash
|
||||
az storage message peek --queue-name <queue_name> --account-name <storage_account>
|
||||
```
|
||||
**संभावित प्रभाव**: कतार तक अनधिकृत पहुंच, संदेशों का प्रदर्शन, या अनधिकृत उपयोगकर्ताओं या सेवाओं द्वारा कतार में हेरफेर।
|
||||
**संभावित प्रभाव**: कतार तक अनधिकृत पहुंच, संदेशों का खुलासा, या अनधिकृत उपयोगकर्ताओं या सेवाओं द्वारा कतार में हेरफेर।
|
||||
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action`
|
||||
|
||||
इस अनुमति के साथ, एक हमलावर Azure Storage Queue से संदेशों को पुनः प्राप्त और संसाधित कर सकता है। इसका मतलब है कि वे संदेश की सामग्री को पढ़ सकते हैं और इसे संसाधित के रूप में चिह्नित कर सकते हैं, प्रभावी रूप से इसे वैध प्रणालियों से छिपा सकते हैं। इससे संवेदनशील डेटा का प्रदर्शन, संदेशों के प्रबंधन में व्यवधान, या यहां तक कि महत्वपूर्ण कार्यप्रवाहों को रोकने का कारण बन सकता है, जिससे संदेश उनके इच्छित उपयोगकर्ताओं के लिए अनुपलब्ध हो जाते हैं।
|
||||
इस अनुमति के साथ, एक हमलावर Azure Storage Queue से संदेशों को पुनः प्राप्त और संसाधित कर सकता है। इसका मतलब है कि वे संदेश की सामग्री को पढ़ सकते हैं और इसे संसाधित के रूप में चिह्नित कर सकते हैं, प्रभावी रूप से इसे वैध प्रणालियों से छिपा सकते हैं। इससे संवेदनशील डेटा का खुलासा, संदेशों के प्रबंधन में व्यवधान, या यहां तक कि महत्वपूर्ण कार्यप्रवाहों को रोकने का कारण बन सकता है, जिससे संदेश उनके लक्षित उपयोगकर्ताओं के लिए अनुपलब्ध हो जाते हैं।
|
||||
```bash
|
||||
az storage message get --queue-name <queue_name> --account-name <storage_account>
|
||||
```
|
||||
@@ -32,7 +32,7 @@ az storage message put --queue-name <queue-name> --content "Injected malicious m
|
||||
```
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write`
|
||||
|
||||
यह अनुमति एक हमलावर को Azure Storage Queue में नए संदेश जोड़ने या मौजूदा संदेशों को अपडेट करने की अनुमति देती है। इसका उपयोग करके, वे हानिकारक सामग्री डाल सकते हैं या मौजूदा संदेशों को बदल सकते हैं, जो संभावित रूप से अनुप्रयोगों को भ्रामक बना सकता है या उन सिस्टमों में अवांछित व्यवहार पैदा कर सकता है जो कतार पर निर्भर करते हैं।
|
||||
यह अनुमति एक हमलावर को Azure Storage Queue में नए संदेश जोड़ने या मौजूदा संदेशों को अपडेट करने की अनुमति देती है। इसका उपयोग करके, वे हानिकारक सामग्री डाल सकते हैं या मौजूदा संदेशों को बदल सकते हैं, जिससे अनुप्रयोगों को भ्रामक जानकारी मिल सकती है या उन सिस्टमों में अवांछित व्यवहार उत्पन्न हो सकता है जो कतार पर निर्भर करते हैं।
|
||||
```bash
|
||||
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
|
||||
|
||||
@@ -56,8 +56,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
|
||||
```
|
||||
## संदर्भ
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
|
||||
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
../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 OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
|
||||
|
||||
ये अनुमतियाँ आपको एक Service Bus namespace के भीतर स्थानीय प्राधिकरण नियमों के लिए कुंजी प्राप्त करने या पुनः उत्पन्न करने की अनुमति देती हैं। इन कुंजियों का उपयोग करके Service Bus namespace के रूप में प्रमाणीकरण करना संभव है, जिससे आप किसी भी कतार या विषय में संदेश भेज सकते हैं, किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, या संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं।
|
||||
ये अनुमतियाँ आपको एक Service Bus namespace के भीतर स्थानीय प्राधिकरण नियमों के लिए कुंजी प्राप्त करने या पुनः उत्पन्न करने की अनुमति देती हैं। इन कुंजियों का उपयोग करके Service Bus namespace के रूप में प्रमाणीकरण करना संभव है, जिससे आप किसी भी कतार या विषय को संदेश भेज सकते हैं, किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, या संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं।
|
||||
|
||||
ध्यान दें कि डिफ़ॉल्ट रूप से **`RootManageSharedAccessKey` नियम का Service Bus namespace पर पूर्ण नियंत्रण है** और इसका उपयोग `az` cli द्वारा किया जाता है, हालाँकि, अन्य कुंजी मानों के साथ अन्य नियम भी हो सकते हैं।
|
||||
```bash
|
||||
@@ -24,14 +24,14 @@ az servicebus namespace authorization-rule keys renew --key [PrimaryKey|Secondar
|
||||
```
|
||||
### 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 के माध्यम से यह क्रिया करते हैं, तो एक मौजूदा प्राधिकरण नियम को अपडेट करना और उसे अधिक अनुमतियाँ देना संभव है (यदि इसमें कुछ की कमी थी) निम्नलिखित कमांड के साथ:
|
||||
इसके अलावा, उस कमांड (और `Microsoft.ServiceBus/namespaces/authorizationRules/read`) के साथ, यदि आप Azure CLI के माध्यम से यह क्रिया करते हैं, तो एक मौजूदा प्राधिकरण नियम को अपडेट करना संभव है और इसे अधिक अनुमतियाँ देना (यदि यह कुछ की कमी थी) निम्नलिखित कमांड के साथ:
|
||||
```bash
|
||||
az servicebus namespace authorization-rule update \
|
||||
--resource-group <MyResourceGroup> \
|
||||
@@ -41,7 +41,7 @@ az servicebus namespace authorization-rule update \
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action
|
||||
|
||||
एक Service Bus namespace के अंदर विशिष्ट विषय और कतारें अपनी स्वयं की प्राधिकरण नियमों को रख सकती हैं, जिन्हें इकाई तक पहुँच को नियंत्रित करने के लिए उपयोग किया जा सकता है। इन अनुमतियों के साथ, आप **इन स्थानीय प्राधिकरण नियमों के लिए कुंजी प्राप्त या पुन: उत्पन्न कर सकते हैं**, जिससे आप इकाई के रूप में प्रमाणीकरण कर सकते हैं और संभावित रूप से संदेश भेजने या प्राप्त करने, सदस्यता प्रबंधित करने, या सिस्टम के साथ ऐसे तरीकों से बातचीत कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं।
|
||||
एक 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>
|
||||
@@ -57,7 +57,7 @@ az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey
|
||||
```
|
||||
### 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
|
||||
@@ -68,7 +68,7 @@ az servicebus queue authorization-rule create --resource-group <res-group> --nam
|
||||
>[!WARNING]
|
||||
>यह कमांड कुंजियों के साथ प्रतिक्रिया नहीं करता है, इसलिए आपको विशेषाधिकार बढ़ाने के लिए उन्हें पिछले कमांड (और अनुमतियों) के साथ प्राप्त करना होगा।
|
||||
|
||||
इसके अलावा, उस कमांड (और `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`) के साथ, यदि आप Azure CLI के माध्यम से यह क्रिया करते हैं, तो एक मौजूदा प्राधिकरण नियम को अपडेट करना संभव है और इसे अधिक अनुमतियाँ देना (यदि यह कुछ की कमी थी) निम्नलिखित कमांड के साथ:
|
||||
इसके अलावा, उस कमांड (और `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
|
||||
@@ -84,127 +84,202 @@ az servicebus namespace update --disable-local-auth false -n <namespace-name> --
|
||||
```
|
||||
### Send Messages with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
|
||||
आप `PrimaryConnectionString` प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग के साथ, आप Service Bus namespace के रूप में पूरी तरह से प्रमाणीकरण कर सकते हैं, जिससे आप किसी भी कतार या विषय में संदेश भेजने में सक्षम होते हैं और संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं।
|
||||
आप `PrimaryConnectionString` प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग के साथ, आप Service Bus namespace के रूप में पूरी तरह से प्रमाणीकरण कर सकते हैं, जिससे आप किसी भी कतार या विषय में संदेश भेजने में सक्षम होते हैं और संभावित रूप से सिस्टम के साथ ऐसे तरीकों से इंटरैक्ट कर सकते हैं जो संचालन को बाधित कर सकते हैं, वैध उपयोगकर्ताओं का अनुकरण कर सकते हैं, या संदेश प्रवाह में दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं। यह विधि काम करती है यदि `--disable-local-auth` को false पर सेट किया गया है।
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
#pip install aiohttp
|
||||
#pip install azure-identity
|
||||
|
||||
import asyncio
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
from azure.servicebus import ServiceBusMessage
|
||||
|
||||
# Constants
|
||||
NAMESPACE_CONNECTION_STR = "<PrimaryConnectionString>"
|
||||
TOPIC_NAME = "<TOPIC_NAME>"
|
||||
TOPIC_OR_QUEUE_NAME = "<TOPIC_OR_QUEUE_NAME>"
|
||||
|
||||
# Function to send a single message to a Service Bus topic
|
||||
async def send_individual_message(publisher):
|
||||
# Prepare a single message with updated content
|
||||
single_message = ServiceBusMessage("Hacktricks-Training: Single Item")
|
||||
# Send the message to the topic
|
||||
await publisher.send_messages(single_message)
|
||||
print("Sent a single message containing 'Hacktricks-Training'")
|
||||
async def send_message():
|
||||
async with ServiceBusClient.from_connection_string(NAMESPACE_CONNECTION_STR) as client:
|
||||
async with client.get_topic_sender(topic_name=TOPIC_OR_QUEUE_NAME) as sender:
|
||||
await sender.send_messages(ServiceBusMessage("Hacktricks-Training: Single Item"))
|
||||
print("Sent message")
|
||||
|
||||
# Function to send multiple messages to a Service Bus topic
|
||||
async def send_multiple_messages(publisher):
|
||||
# Generate a collection of messages with updated content
|
||||
message_list = [ServiceBusMessage(f"Hacktricks-Training: Item {i+1} in list") for i in range(5)]
|
||||
# Send the entire collection of messages to the topic
|
||||
await publisher.send_messages(message_list)
|
||||
print("Sent a list of 5 messages containing 'Hacktricks-Training'")
|
||||
asyncio.run(send_message())
|
||||
```
|
||||
इसके अलावा, आप az rest के साथ संदेश भेज सकते हैं, इस मामले में आपको उपयोग करने के लिए एक sas टोकन उत्पन्न करने की आवश्यकता है।
|
||||
```python
|
||||
import time, urllib.parse, hmac, hashlib, base64
|
||||
|
||||
# Function to send a grouped batch of messages to a Service Bus topic
|
||||
async def send_grouped_messages(publisher):
|
||||
# Send a grouped batch of messages with updated content
|
||||
async with publisher:
|
||||
grouped_message_batch = await publisher.create_message_batch()
|
||||
for i in range(10):
|
||||
try:
|
||||
# Append a message to the batch with updated content
|
||||
grouped_message_batch.add_message(ServiceBusMessage(f"Hacktricks-Training: Item {i+1}"))
|
||||
except ValueError:
|
||||
# If batch reaches its size limit, handle by creating another batch
|
||||
break
|
||||
# Dispatch the batch of messages to the topic
|
||||
await publisher.send_messages(grouped_message_batch)
|
||||
print("Sent a batch of 10 messages containing 'Hacktricks-Training'")
|
||||
def generate_sas_token(uri, key_name, key, expiry_in_seconds=3600):
|
||||
expiry = int(time.time() + expiry_in_seconds)
|
||||
string_to_sign = urllib.parse.quote_plus(uri) + "\n" + str(expiry)
|
||||
signed_hmac_sha256 = hmac.new(key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256).digest()
|
||||
signature = urllib.parse.quote_plus(base64.b64encode(signed_hmac_sha256))
|
||||
token = f"SharedAccessSignature sr={urllib.parse.quote_plus(uri)}&sig={signature}&se={expiry}&skn={key_name}"
|
||||
return token
|
||||
|
||||
# Main function to execute all tasks
|
||||
async def execute():
|
||||
# Instantiate the Service Bus client with the connection string
|
||||
async with ServiceBusClient.from_connection_string(
|
||||
conn_str=NAMESPACE_CONNECTION_STR,
|
||||
logging_enable=True) as sb_client:
|
||||
# Create a topic sender for dispatching messages to the topic
|
||||
publisher = sb_client.get_topic_sender(topic_name=TOPIC_NAME)
|
||||
async with publisher:
|
||||
# Send a single message
|
||||
await send_individual_message(publisher)
|
||||
# Send multiple messages
|
||||
await send_multiple_messages(publisher)
|
||||
# Send a batch of messages
|
||||
await send_grouped_messages(publisher)
|
||||
# Replace these with your actual values
|
||||
resource_uri = "https://<namespace>.servicebus.windows.net/<queue_or_topic>"
|
||||
key_name = "<SharedKeyName>"
|
||||
primary_key = "<PrimaryKey>"
|
||||
|
||||
# Run the asynchronous execution
|
||||
asyncio.run(execute())
|
||||
print("Messages Sent")
|
||||
print("----------------------------")
|
||||
sas_token = generate_sas_token(resource_uri, key_name, primary_key)
|
||||
print(sas_token)
|
||||
```
|
||||
|
||||
```bash
|
||||
az rest --method post \
|
||||
--uri "https://<NAMESPACE>.servicebus.windows.net/<queue>/messages" \
|
||||
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=https%3A%2F%2F<NAMESPACE>.servicebus.windows.net%2F<TOPIC_OR_QUEUE_NAME>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>" \
|
||||
--body "<MESSAGE_BODY>"
|
||||
|
||||
```
|
||||
### Recieve with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
### Receive 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 के भीतर किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, जिससे संभावित संवेदनशील या महत्वपूर्ण डेटा तक पहुंच मिलती है, डेटा निकासी की अनुमति मिलती है, या संदेश प्रसंस्करण और अनुप्रयोग कार्यप्रवाह में हस्तक्षेप होता है। यह विधि तब काम करती है जब `--disable-local-auth` को false पर सेट किया गया हो।
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
#pip install aiohttp
|
||||
#pip install azure-identity
|
||||
|
||||
import asyncio
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
|
||||
NAMESPACE_CONNECTION_STR = "<PrimaryConnectionString>"
|
||||
TOPIC_NAME = "<TOPIC_NAME>"
|
||||
SUBSCRIPTION_NAME = "<TOPIC_SUBSCRIPTION_NAME>" #Topic Subscription
|
||||
CONN_STR = "<PrimaryConnectionString>"
|
||||
QUEUE = "<QUEUE_NAME>"
|
||||
|
||||
# Function to receive and process messages from a Service Bus subscription
|
||||
async def receive_and_process_messages():
|
||||
# Create a Service Bus client using the connection string
|
||||
async with ServiceBusClient.from_connection_string(
|
||||
conn_str=NAMESPACE_CONNECTION_STR,
|
||||
logging_enable=True) as servicebus_client:
|
||||
# For topics/subscriptions, you would use:
|
||||
# TOPIC = "<TOPIC_NAME>"
|
||||
# SUBSCRIPTION = "<TOPIC_SUBSCRIPTION_NAME>"
|
||||
|
||||
# Get the Subscription Receiver object for the specified topic and subscription
|
||||
receiver = servicebus_client.get_subscription_receiver(
|
||||
topic_name=TOPIC_NAME,
|
||||
subscription_name=SUBSCRIPTION_NAME,
|
||||
max_wait_time=5
|
||||
)
|
||||
|
||||
async with receiver:
|
||||
# Receive messages with a defined maximum wait time and count
|
||||
received_msgs = await receiver.receive_messages(
|
||||
max_wait_time=5,
|
||||
max_message_count=20
|
||||
)
|
||||
for msg in received_msgs:
|
||||
print("Received: " + str(msg))
|
||||
# Complete the message to remove it from the subscription
|
||||
async def receive():
|
||||
async with ServiceBusClient.from_connection_string(CONN_STR) as client:
|
||||
# For a queue receiver:
|
||||
async with client.get_queue_receiver(queue_name=QUEUE, max_wait_time=5) as receiver:
|
||||
msgs = await receiver.receive_messages(max_wait_time=5, max_message_count=20)
|
||||
for msg in msgs:
|
||||
print("Received:", msg)
|
||||
await receiver.complete_message(msg)
|
||||
|
||||
# Run the asynchronous message processing function
|
||||
asyncio.run(receive_and_process_messages())
|
||||
print("Message Receiving Completed")
|
||||
print("----------------------------")
|
||||
# For a topic/subscription receiver (commented out):
|
||||
# async with client.get_subscription_receiver(topic_name=TOPIC, subscription_name=SUBSCRIPTION, max_wait_time=5) as receiver:
|
||||
# msgs = await receiver.receive_messages(max_wait_time=5, max_message_count=20)
|
||||
# for msg in msgs:
|
||||
# print("Received:", msg)
|
||||
# await receiver.complete_message(msg)
|
||||
|
||||
asyncio.run(receive())
|
||||
print("Done receiving messages")
|
||||
```
|
||||
इसके अतिरिक्त, आप az rest के साथ संदेश भेज सकते हैं, इस मामले में आपको उपयोग करने के लिए एक sas टोकन उत्पन्न करने की आवश्यकता है।
|
||||
```python
|
||||
import time, urllib.parse, hmac, hashlib, base64
|
||||
|
||||
def generate_sas_token(uri, key_name, key, expiry_in_seconds=3600):
|
||||
expiry = int(time.time() + expiry_in_seconds)
|
||||
string_to_sign = urllib.parse.quote_plus(uri) + "\n" + str(expiry)
|
||||
signature = urllib.parse.quote_plus(base64.b64encode(
|
||||
hmac.new(key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256).digest()
|
||||
))
|
||||
token = f"SharedAccessSignature sr={urllib.parse.quote_plus(uri)}&sig={signature}&se={expiry}&skn={key_name}"
|
||||
return token
|
||||
|
||||
# Example usage:
|
||||
resource_uri = "https://<namespace>.servicebus.windows.net/queue" # For queue
|
||||
# resource_uri = "https://<namespace>.servicebus.windows.net/<topic>/subscriptions/<subscription>" # For topic subscription
|
||||
sas_token = generate_sas_token(resource_uri, "<KEYNAME>", "<PRIMARY_KEY>")
|
||||
print(sas_token)
|
||||
|
||||
```
|
||||
क्यू के लिए आप संदेश को प्राप्त कर सकते हैं या उसे देख सकते हैं (संदेश प्राप्त करने से उन्हें हटा दिया जाएगा, जबकि देखने से ऐसा नहीं होगा):
|
||||
```bash
|
||||
#Get a message
|
||||
az rest --method post \
|
||||
--uri "https://<NAMESPACE>.servicebus.windows.net/<QUEUE>/messages/head?timeout=60" \
|
||||
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
|
||||
|
||||
#Peek a message
|
||||
az rest --method get \
|
||||
--uri "https://<NAMESPACE>.servicebus.windows.net/<QUEUE>/messages/head?peekonly=true&timeout=60" \
|
||||
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
|
||||
|
||||
#You can select the meesage changing the field PreviousSequenceNumber
|
||||
az rest --method get \
|
||||
--uri "https://<NAMESPACE>.servicebus.windows.net/<ENTITY>/messages?timeout=60&PreviousSequenceNumber=<LAST_SEQUENCE_NUMBER>&api-version=2017-04" \
|
||||
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
|
||||
```
|
||||
Please provide the text you would like me to translate.
|
||||
```bash
|
||||
#Get a message
|
||||
az rest --method post \
|
||||
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages/head?timeout=60" \
|
||||
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
|
||||
|
||||
#Peek a message
|
||||
az rest --method get \
|
||||
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages/head?timeout=60&api-version=2017-04" \
|
||||
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
|
||||
|
||||
#You can select the meesage changing the field PreviousSequenceNumber
|
||||
az rest --method get \
|
||||
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages?timeout=60&PreviousSequenceNumber=<LAST_SEQUENCE_NUMBER>&api-version=2017-04" \
|
||||
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
|
||||
```
|
||||
### संदेश भेजें। DataActions: `Microsoft.ServiceBus/namespaces/messages/send/action`
|
||||
|
||||
आप इस अनुमति का उपयोग संदेश भेजने के लिए कर सकते हैं, भले ही `--disable-local-auth` को सत्य पर सेट किया गया हो।
|
||||
```python
|
||||
import asyncio
|
||||
from azure.identity.aio import DefaultAzureCredential
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
from azure.servicebus import ServiceBusMessage
|
||||
|
||||
NS = "<namespace>.servicebus.windows.net" # Your namespace
|
||||
QUEUE_OR_TOPIC = "<QUEUE_OR_TOPIC>" # Your queue name
|
||||
|
||||
async def run():
|
||||
credential = DefaultAzureCredential()
|
||||
async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client:
|
||||
async with client.get_queue_sender(queue_name=QUEUE) as sender:
|
||||
await sender.send_messages(ServiceBusMessage("Single Message"))
|
||||
print("Sent a single message")
|
||||
await credential.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(run())
|
||||
```
|
||||
### संदेश प्राप्त करें। DataActions: `Microsoft.ServiceBus/namespaces/messages/receive/action`
|
||||
|
||||
आप इन अनुमतियों का उपयोग संदेश प्राप्त करने के लिए कर सकते हैं, भले ही `--disable-local-auth` को सत्य पर सेट किया गया हो।
|
||||
```python
|
||||
import asyncio
|
||||
from azure.identity.aio import DefaultAzureCredential
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
|
||||
NS = "<namespace>.servicebus.windows.net"
|
||||
QUEUE = "<QUEUE>"
|
||||
|
||||
# For a topic subscription, uncomment and set these values:
|
||||
# TOPIC = "<TOPIC>"
|
||||
# SUBSCRIPTION = "<SUBSCRIPTION>"
|
||||
|
||||
async def run():
|
||||
credential = DefaultAzureCredential()
|
||||
async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client:
|
||||
# Receiving from a queue:
|
||||
async with client.get_queue_receiver(queue_name=QUEUE, max_wait_time=5) as receiver:
|
||||
async for msg in receiver:
|
||||
print("Received from Queue:", msg)
|
||||
await receiver.complete_message(msg)
|
||||
|
||||
# To receive from a topic subscription, uncomment the code below and comment out the queue receiver above:
|
||||
# async with client.get_subscription_receiver(topic_name=TOPIC, subscription_name=SUBSCRIPTION, max_wait_time=5) as receiver:
|
||||
# async for msg in receiver:
|
||||
# print("Received from Topic Subscription:", msg)
|
||||
# await receiver.complete_message(msg)
|
||||
|
||||
await credential.close()
|
||||
|
||||
asyncio.run(run())
|
||||
print("Done receiving messages")
|
||||
```
|
||||
## संदर्भ
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
|
||||
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless
|
||||
- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
|
||||
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
|
||||
- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless)
|
||||
- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -26,7 +26,7 @@ az sql server create \
|
||||
--resource-group <resource_group_name> \
|
||||
--location <location> \
|
||||
--admin-user <admin_username> \
|
||||
--admin-password <admin_password>
|
||||
--admin-password <admin_passwor d>
|
||||
```
|
||||
इसके अलावा, यदि आप किसी गैर-निजी एंडपॉइंट से एक्सेस करना चाहते हैं तो सार्वजनिक एक्सेस सक्षम होना आवश्यक है, इसे सक्षम करने के लिए:
|
||||
```bash
|
||||
@@ -35,9 +35,34 @@ az sql server update \
|
||||
--resource-group <resource-group> \
|
||||
--enable-public-network true
|
||||
```
|
||||
इसके अलावा, अनुमतियों के साथ आप असाइन पहचान सक्षम कर सकते हैं, जो सर्वर से जुड़े प्रबंधित पहचान के साथ कार्य करता है। उदाहरण के लिए, यहां एक प्रबंधित पहचान है जो Azure Storage तक पहुंच सकता है:
|
||||
```bash
|
||||
az sql server update \
|
||||
--name <server-name> \
|
||||
--resource-group <resource-group> \
|
||||
--assign_identity
|
||||
```
|
||||
|
||||
```sql
|
||||
CREATE EXTERNAL DATA SOURCE ManagedIdentity
|
||||
WITH (
|
||||
TYPE = BLOB_STORAGE,
|
||||
LOCATION = 'https://<storage-account>.blob.core.windows.net/<container>',
|
||||
CREDENTIAL = ManagedIdentityCredential
|
||||
);
|
||||
GO
|
||||
|
||||
SELECT *
|
||||
FROM OPENROWSET(
|
||||
BULK 'message.txt',
|
||||
DATA_SOURCE = 'ManagedIdentity',
|
||||
SINGLE_CLOB
|
||||
) AS DataFile;
|
||||
GO
|
||||
```
|
||||
### `Microsoft.Sql/servers/firewallRules/write`
|
||||
|
||||
एक हमलावर Azure SQL सर्वरों पर फ़ायरवॉल नियमों में हेरफेर कर सकता है ताकि अनधिकृत पहुँच की अनुमति मिल सके। इसका उपयोग विशिष्ट IP पते या पूरे IP रेंज, जिसमें सार्वजनिक IP शामिल हैं, को सर्वर खोलने के लिए किया जा सकता है, जिससे दुर्भावनापूर्ण अभिनेताओं के लिए पहुँच सक्षम होती है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि मौजूदा नेटवर्क सुरक्षा नियंत्रणों को बायपास करने, स्थिरता स्थापित करने, या संवेदनशील संसाधनों को उजागर करके वातावरण के भीतर पार्श्व आंदोलन को सुविधाजनक बनाने के लिए उपयोग की जा सकती है।
|
||||
एक हमलावर Azure SQL सर्वरों पर फ़ायरवॉल नियमों में हेरफेर कर सकता है ताकि अनधिकृत पहुँच की अनुमति मिल सके। इसका उपयोग सर्वर को विशिष्ट IP पते या पूरे IP रेंज, जिसमें सार्वजनिक IP शामिल हैं, के लिए खोलने के लिए किया जा सकता है, जिससे दुर्भावनापूर्ण अभिनेताओं के लिए पहुँच सक्षम होती है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि मौजूदा नेटवर्क सुरक्षा नियंत्रणों को बायपास करने, स्थिरता स्थापित करने, या संवेदनशील संसाधनों को उजागर करके वातावरण के भीतर पार्श्व आंदोलन को सुविधाजनक बनाने के लिए उपयोग की जा सकती है।
|
||||
```bash
|
||||
# Create Firewall Rule
|
||||
az sql server firewall-rule create \
|
||||
@@ -55,7 +80,7 @@ az sql server firewall-rule update \
|
||||
--start-ip-address <new-start-ip-address> \
|
||||
--end-ip-address <new-end-ip-address>
|
||||
```
|
||||
अतिरिक्त रूप से, `Microsoft.Sql/servers/outboundFirewallRules/delete` अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है।
|
||||
इसके अलावा, `Microsoft.Sql/servers/outboundFirewallRules/delete` अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है।
|
||||
नोट: सार्वजनिक पहुंच सक्षम होना आवश्यक है
|
||||
|
||||
### `Microsoft.Sql/servers/ipv6FirewallRules/write`
|
||||
@@ -74,7 +99,7 @@ az sql server firewall-rule create \
|
||||
|
||||
### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
|
||||
|
||||
इन अनुमतियों के साथ आप Azure SQL Server वातावरण में SQL डेटाबेस तक पहुंचकर प्रिवेस्क कर सकते हैं और महत्वपूर्ण जानकारी प्राप्त कर सकते हैं। नीचे दिए गए कमांड का उपयोग करके, एक हमलावर या अधिकृत उपयोगकर्ता खुद को या किसी अन्य खाते को Azure AD प्रशासक के रूप में सेट कर सकता है। यदि "Microsoft Entra Authentication Only" सक्षम है, तो आप सर्वर और इसके उदाहरणों तक पहुंच सकते हैं। यहाँ एक SQL सर्वर के लिए Azure AD प्रशासक सेट करने का कमांड है:
|
||||
इन अनुमतियों के साथ आप Azure SQL Server वातावरण में SQL डेटाबेस तक पहुंचकर महत्वपूर्ण जानकारी प्राप्त कर सकते हैं। नीचे दिए गए कमांड का उपयोग करके, एक हमलावर या अधिकृत उपयोगकर्ता खुद को या किसी अन्य खाते को Azure AD प्रशासक के रूप में सेट कर सकता है। यदि "Microsoft Entra Authentication Only" सक्षम है, तो आप सर्वर और इसके उदाहरणों तक पहुंच सकते हैं। यहाँ SQL सर्वर के लिए Azure AD प्रशासक सेट करने का कमांड है:
|
||||
```bash
|
||||
az sql server ad-admin create \
|
||||
--server <server_name> \
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
# Az - Container Instances
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Container Instances (ACI) एक **सर्वरलेस, ऑन-डिमांड तरीका** प्रदान करते हैं **कंटेनरों** को Azure क्लाउड में चलाने के लिए। आप **एकल** या **कई कंटेनरों** को एक समूह में **स्केलेबल कंप्यूट**, **नेटवर्किंग विकल्पों**, और **अन्य Azure सेवाओं** (जैसे Storage, Virtual Networks, या Container Registries) से कनेक्ट करने की लचीलापन के साथ **डिप्लॉय** कर सकते हैं।
|
||||
|
||||
चूंकि ये **एपhemerल** वर्कलोड हैं, आपको अंतर्निहित VM इन्फ्रास्ट्रक्चर का प्रबंधन करने की आवश्यकता नहीं है — Azure यह आपके लिए संभालता है। हालाँकि, **आक्रामक सुरक्षा दृष्टिकोण** से, यह समझना महत्वपूर्ण है कि **अनुमतियाँ**, **पहचानें**, **नेटवर्क कॉन्फ़िगरेशन**, और **लॉग** कैसे हमले की सतहों और संभावित गलत कॉन्फ़िगरेशन को प्रकट कर सकते हैं।
|
||||
|
||||
### Configurations
|
||||
|
||||
- एक कंटेनर बनाने के लिए एक सार्वजनिक इमेज, Azure Container Registry से एक कंटेनर इमेज या एक बाहरी रिपॉजिटरी का उपयोग करना संभव है, जिसे एक्सेस करने के लिए **पासवर्ड कॉन्फ़िगर करने की आवश्यकता** हो सकती है।
|
||||
- नेटवर्किंग के संबंध में, इसमें **सार्वजनिक IP** हो सकता है या **निजी एंडपॉइंट्स** हो सकते हैं।
|
||||
- सामान्य डॉकर सेटिंग्स को कॉन्फ़िगर करना भी संभव है जैसे:
|
||||
- **पर्यावरण चर**
|
||||
- **वॉल्यूम** (यहां तक कि Azure Files से)
|
||||
- **पोर्ट्स**
|
||||
- **CPU और मेमोरी सीमाएँ**
|
||||
- **रीस्टार्ट नीति**
|
||||
- **प्रिविलेज्ड के रूप में चलाएँ**
|
||||
- **चलाने के लिए कमांड लाइन**
|
||||
- ...
|
||||
|
||||
## Enumeration
|
||||
|
||||
> [!WARNING]
|
||||
> ACI की गणना करते समय, आप संवेदनशील कॉन्फ़िगरेशन जैसे **पर्यावरण चर**, **नेटवर्क विवरण**, या **प्रबंधित पहचान** प्रकट कर सकते हैं। इन्हें लॉग करने या प्रदर्शित करने में सावधानी बरतें।
|
||||
```bash
|
||||
# List all container instances in the subscription
|
||||
az container list
|
||||
|
||||
# Show detailed information about a specific container instance
|
||||
az container show --name <container-name> --resource-group <res-group>
|
||||
|
||||
# Fetch logs from a container
|
||||
az container logs --name <container-name> --resource-group <res-group>
|
||||
|
||||
# Execute a command in a running container and get the output
|
||||
az container exec --name <container-name> --resource-group <res-group> --exec-command "ls"
|
||||
|
||||
# Get yaml configuration of the container group
|
||||
az container export --name <container-name> --resource-group <res-group>
|
||||
```
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Queue Storage एक सेवा है जो Microsoft के Azure क्लाउड प्लेटफ़ॉर्म में एप्लिकेशन घटकों के बीच संदेश कतारबद्ध करने के लिए डिज़ाइन की गई है, **असिंक्रोनस संचार और डिकपलिंग को सक्षम बनाना**। यह आपको अनलिमिटेड संख्या में संदेशों को स्टोर करने की अनुमति देता है, प्रत्येक का आकार 64 KB तक होता है, और इसमें कतारें बनाने और हटाने, संदेश जोड़ने, पुनः प्राप्त करने, अपडेट करने और हटाने, साथ ही मेटाडेटा और एक्सेस नीतियों का प्रबंधन करने जैसी ऑपरेशंस का समर्थन करता है। जबकि यह आमतौर पर पहले आए पहले जाए (FIFO) तरीके से संदेशों को प्रोसेस करता है, सख्त FIFO की गारंटी नहीं है।
|
||||
Azure Queue Storage एक सेवा है जो Microsoft's Azure cloud platform में संदेश कतार के लिए डिज़ाइन की गई है, **असिंक्रोनस संचार और डिकपलिंग को सक्षम बनाना**। यह आपको अनलिमिटेड संख्या में संदेशों को स्टोर करने की अनुमति देता है, प्रत्येक का आकार 64 KB तक होता है, और इसमें कतार बनाने और हटाने, संदेश जोड़ने, प्राप्त करने, अपडेट करने और हटाने, साथ ही मेटाडेटा और एक्सेस नीतियों का प्रबंधन करने जैसी ऑपरेशंस का समर्थन करता है। जबकि यह आमतौर पर पहले आए पहले जाए (FIFO) तरीके से संदेशों को प्रोसेस करता है, सख्त FIFO की गारंटी नहीं है।
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -70,7 +70,7 @@ $queueMessage.Value
|
||||
../az-privilege-escalation/az-queue-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
### पोस्ट एक्सप्लॉइटेशन
|
||||
### पोस्ट एक्सप्लोइटेशन
|
||||
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-queue-post-exploitation.md
|
||||
@@ -84,8 +84,8 @@ $queueMessage.Value
|
||||
|
||||
## संदर्भ
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
|
||||
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,50 +4,59 @@
|
||||
|
||||
## Service Bus
|
||||
|
||||
Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने** के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है जिनमें कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कि कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना।
|
||||
Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों** के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है जो कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कि कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना।
|
||||
|
||||
### Key Concepts
|
||||
|
||||
1. **Queues:** इसका उद्देश्य संदेशों को तब तक संग्रहीत करना है जब तक प्राप्तकर्ता तैयार न हो।
|
||||
1. **Namespaces:** मैसेजिंग सिस्टम में एक नामस्थान एक तार्किक कंटेनर है जो मैसेजिंग घटकों, कतारों और विषयों को व्यवस्थित और प्रबंधित करता है। यह एक अलग वातावरण प्रदान करता है जहां अनुप्रयोग संदेश भेज, प्राप्त और संसाधित कर सकते हैं। कतारें और विषय एक सेवा बस नामस्थान के भीतर समान बुनियादी ढाँचे और कॉन्फ़िगरेशन को साझा करते हैं, लेकिन वे एक-दूसरे के साथ बातचीत किए बिना स्वतंत्र रूप से कार्य करते हैं।
|
||||
2. **Queues:** इसका उद्देश्य संदेशों को तब तक संग्रहीत करना है जब तक प्राप्तकर्ता तैयार न हो।
|
||||
- संदेश क्रमबद्ध, टाइमस्टैम्प किए गए और स्थायी रूप से संग्रहीत होते हैं।
|
||||
- खींचने के मोड में वितरित किया जाता है (आवश्यकता पर पुनर्प्राप्ति)।
|
||||
- खींचने के मोड (ऑन-डिमांड पुनर्प्राप्ति) में वितरित किए जाते हैं।
|
||||
- बिंदु-से-बिंदु संचार का समर्थन करता है।
|
||||
2. **Topics:** प्रसारण के लिए प्रकाशन-सदस्यता मैसेजिंग।
|
||||
3. **Topics:** प्रसारण के लिए प्रकाशन-ग्राहक मैसेजिंग।
|
||||
- कई स्वतंत्र सदस्यताएँ संदेशों की प्रतियाँ प्राप्त करती हैं।
|
||||
- सदस्यताओं में वितरण को नियंत्रित करने या मेटाडेटा जोड़ने के लिए नियम/फिल्टर हो सकते हैं।
|
||||
- कई-से-कई संचार का समर्थन करता है।
|
||||
3. **Namespaces:** सभी मैसेजिंग घटकों, कतारों और विषयों के लिए एक कंटेनर, यह आपके अपने शक्तिशाली Azure क्लस्टर का एक टुकड़ा है, जो समर्पित क्षमता प्रदान करता है और वैकल्पिक रूप से तीन उपलब्धता क्षेत्रों में फैला हो सकता है।
|
||||
|
||||
सेवा बस एंडपॉइंट/कनेक्शन स्ट्रिंग है:
|
||||
```bash
|
||||
https://<namespace>.servicebus.windows.net:443/
|
||||
```
|
||||
### Advance Features
|
||||
|
||||
कुछ उन्नत सुविधाएँ हैं:
|
||||
कुछ उन्नत विशेषताएँ हैं:
|
||||
|
||||
- **Message Sessions**: FIFO प्रसंस्करण सुनिश्चित करता है और अनुरोध-प्रतिक्रिया पैटर्न का समर्थन करता है।
|
||||
- **Message Sessions**: FIFO प्रोसेसिंग सुनिश्चित करता है और अनुरोध-प्रतिक्रिया पैटर्न का समर्थन करता है।
|
||||
- **Auto-Forwarding**: एक ही नामस्थान में कतारों या विषयों के बीच संदेशों को स्थानांतरित करता है।
|
||||
- **Dead-Lettering**: समीक्षा के लिए अप्राप्य संदेशों को कैप्चर करता है।
|
||||
- **Scheduled Delivery**: भविष्य के कार्यों के लिए संदेश प्रसंस्करण में देरी करता है।
|
||||
- **Message Deferral**: तैयार होने तक संदेश पुनर्प्राप्ति को स्थगित करता है।
|
||||
- **Scheduled Delivery**: भविष्य के कार्यों के लिए संदेश प्रोसेसिंग में देरी करता है।
|
||||
- **Message Deferral**: संदेश पुनर्प्राप्ति को तैयार होने तक स्थगित करता है।
|
||||
- **Transactions**: संचालन को परमाणु निष्पादन में समूहित करता है।
|
||||
- **Filters & Actions**: संदेशों को फ़िल्टर या एनोटेट करने के लिए नियम लागू करता है।
|
||||
- **Auto-Delete on Idle**: निष्क्रियता के बाद कतारों को हटा देता है (न्यूनतम: 5 मिनट)।
|
||||
- **Duplicate Detection**: पुनः भेजने के दौरान डुप्लिकेट संदेशों को हटा देता है।
|
||||
- **Batch Deletion**: समाप्त या अनावश्यक संदेशों को थोक में हटाता है।
|
||||
- **Auto-Delete on Idle**: निष्क्रियता के बाद कतारों को हटाता है (न्यूनतम: 5 मिनट)।
|
||||
- **Duplicate Detection**: पुनः भेजने के दौरान डुप्लिकेट संदेशों को हटाता है।
|
||||
- **Batch Deletion**: समाप्त या अनावश्यक संदेशों को बल्क में हटाता है।
|
||||
|
||||
### Authorization-Rule / SAS Policy
|
||||
|
||||
SAS नीतियाँ Azure Service Bus संस्थाओं के नामस्थान (सबसे महत्वपूर्ण) के लिए पहुँच अनुमतियों को परिभाषित करती हैं, कतारें और विषय। प्रत्येक नीति में निम्नलिखित घटक होते हैं:
|
||||
|
||||
- **Permissions**: पहुँच स्तर निर्दिष्ट करने के लिए चेकबॉक्स:
|
||||
- प्रबंधित करें: संस्थाओं पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है।
|
||||
- भेजें: संस्थाओं को संदेश भेजने की अनुमति देता है।
|
||||
- सुनें: संस्थाओं से संदेश प्राप्त करने की अनुमति देता है।
|
||||
- Manage: संस्थान पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है।
|
||||
- Send: संस्थान को संदेश भेजने की अनुमति देता है।
|
||||
- Listen: संस्थान से संदेश प्राप्त करने की अनुमति देता है।
|
||||
- **Primary and Secondary Keys**: ये क्रिप्टोग्राफिक कुंजी हैं जो पहुँच को प्रमाणित करने के लिए सुरक्षित टोकन उत्पन्न करने के लिए उपयोग की जाती हैं।
|
||||
- **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो उपयोग में आसानी के लिए एंडपॉइंट और कुंजी शामिल करती हैं।
|
||||
- **SAS Policy ARM ID**: प्रोग्रामेटिक पहचान के लिए नीति का Azure Resource Manager (ARM) पथ।
|
||||
- **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो एप्लिकेशनों में उपयोग के लिए एंडपॉइंट और कुंजी शामिल करती हैं।
|
||||
- **SAS Policy ARM ID**: नीति के लिए प्रोग्रामेटिक पहचान के लिए Azure Resource Manager (ARM) पथ।
|
||||
|
||||
### NameSpace
|
||||
यह ध्यान रखना महत्वपूर्ण है कि एक नामस्थान में एकल SAS नीति होती है जो इसके भीतर हर संस्थान को प्रभावित करती है, जबकि कतारें और विषय अपनी व्यक्तिगत SAS नीतियाँ रख सकते हैं ताकि अधिक सूक्ष्म नियंत्रण हो सके।
|
||||
|
||||
sku, authrorization rule,
|
||||
### "--disable-local-auth"
|
||||
|
||||
--disable-local-auth पैरामीटर का उपयोग यह नियंत्रित करने के लिए किया जाता है कि क्या आपके Service Bus नामस्थान के लिए स्थानीय प्रमाणीकरण (यानी, Shared Access Signature (SAS) कुंजी का उपयोग करना) सक्षम है। यहाँ आपको जो जानने की आवश्यकता है:
|
||||
|
||||
- जब इसे true पर सेट किया जाता है: SAS कुंजी का उपयोग करके स्थानीय प्रमाणीकरण अक्षम होता है और azure Active Directory (Azure AD) प्रमाणीकरण की अनुमति होती है।
|
||||
- जब इसे false पर सेट किया जाता है: SAS (स्थानीय) प्रमाणीकरण और Azure AD प्रमाणीकरण दोनों उपलब्ध होते हैं और आप अपने Service Bus संसाधनों तक पहुँचने के लिए SAS कुंजी के साथ कनेक्शन स्ट्रिंग्स का उपयोग कर सकते हैं।
|
||||
|
||||
### Enumeration
|
||||
|
||||
|
||||
@@ -4,23 +4,88 @@
|
||||
|
||||
## Azure SQL
|
||||
|
||||
Azure SQL एक प्रबंधित, सुरक्षित और बुद्धिमान उत्पादों का परिवार है जो **Azure क्लाउड में SQL Server डेटाबेस इंजन** का उपयोग करता है। इसका मतलब है कि आपको अपने सर्वरों के भौतिक प्रशासन की चिंता करने की आवश्यकता नहीं है, और आप अपने डेटा के प्रबंधन पर ध्यान केंद्रित कर सकते हैं।
|
||||
Azure SQL एक प्रबंधित, सुरक्षित और बुद्धिमान उत्पादों का परिवार है जो **Azure क्लाउड में SQL Server डेटाबेस इंजन का उपयोग करता है**। इसका मतलब है कि आपको अपने सर्वरों के भौतिक प्रशासन की चिंता करने की आवश्यकता नहीं है, और आप अपने डेटा के प्रबंधन पर ध्यान केंद्रित कर सकते हैं।
|
||||
|
||||
Azure SQL तीन मुख्य पेशकशों में विभाजित है:
|
||||
Azure SQL में चार मुख्य पेशकशें शामिल हैं:
|
||||
|
||||
1. **Azure SQL Database**: यह एक **पूर्ण-प्रबंधित डेटाबेस सेवा** है, जो आपको Azure क्लाउड में व्यक्तिगत डेटाबेस होस्ट करने की अनुमति देती है। यह अंतर्निहित बुद्धिमत्ता प्रदान करती है जो आपके अद्वितीय डेटाबेस पैटर्न को सीखती है और अनुकूलित सिफारिशें और स्वचालित ट्यूनिंग प्रदान करती है।
|
||||
2. **Azure SQL Managed Instance**: यह बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड डिप्लॉयमेंट के लिए है। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए एक व्यावसायिक मॉडल अनुकूल है।
|
||||
3. **Azure SQL Server on Azure VMs**: यह इन्फ्रास्ट्रक्चर एज़ अ सर्विस (IaaS) है और उन माइग्रेशनों के लिए सबसे अच्छा है जहाँ आप **ऑपरेटिंग सिस्टम और SQL Server इंस्टेंस पर नियंत्रण** चाहते हैं, जैसे कि यह एक ऑन-प्रिमाइसेस सर्वर पर चल रहा हो।
|
||||
1. **Azure SQL Server**: Azure SQL Server एक प्रबंधित संबंधपरक डेटाबेस सेवा है जो SQL Server डेटाबेस के तैनाती और प्रबंधन को सरल बनाती है, जिसमें अंतर्निहित सुरक्षा और प्रदर्शन सुविधाएँ हैं।
|
||||
2. **Azure SQL Database**: यह एक **पूर्ण-प्रबंधित डेटाबेस सेवा** है, जो आपको Azure क्लाउड में व्यक्तिगत डेटाबेस होस्ट करने की अनुमति देती है। यह अंतर्निहित बुद्धिमत्ता प्रदान करती है जो आपके अद्वितीय डेटाबेस पैटर्न को सीखती है और अनुकूलित सिफारिशें और स्वचालित ट्यूनिंग प्रदान करती है।
|
||||
3. **Azure SQL Managed Instance**: यह बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए है। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए एक व्यावसायिक मॉडल अनुकूल है।
|
||||
4. **Azure SQL Server on Azure VMs**: यह इन्फ्रास्ट्रक्चर एज़ अ सर्विस (IaaS) है और उन माइग्रेशनों के लिए सबसे अच्छा है जहाँ आप **ऑपरेटिंग सिस्टम और SQL Server इंस्टेंस पर नियंत्रण** चाहते हैं, जैसे कि यह एक ऑन-प्रिमाइसेस सर्वर पर चल रहा हो।
|
||||
|
||||
### Azure SQL Server
|
||||
|
||||
Azure SQL Server एक संबंधपरक डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो डेटा संचालन के लिए Transact-SQL का उपयोग करती है और इसे उद्यम-स्तरीय प्रणालियों को संभालने के लिए बनाया गया है। यह प्रदर्शन, सुरक्षा, स्केलेबिलिटी, और विभिन्न Microsoft अनुप्रयोगों के साथ एकीकरण के लिए मजबूत सुविधाएँ प्रदान करता है। Azure SQL डेटाबेस इस सर्वर पर निर्भर करते हैं, क्योंकि ये इस सर्वर पर बनाए गए हैं और यह उपयोगकर्ता के लिए डेटाबेस तक पहुँचने का प्रवेश बिंदु है।
|
||||
|
||||
#### Network
|
||||
|
||||
**Network Connectivity**: सार्वजनिक अंत बिंदु या निजी अंत बिंदु के माध्यम से पहुँच सक्षम करने का चयन करें। यदि आप कोई पहुँच नहीं चुनते हैं, तो कोई अंत बिंदु तब तक नहीं बनाए जाते जब तक कि इसे मैन्युअल रूप से कॉन्फ़िगर नहीं किया जाता:
|
||||
- No access: कोई अंत बिंदु कॉन्फ़िगर नहीं किए जाते, मैन्युअल रूप से सेट किए जाने तक आने वाले कनेक्शनों को अवरुद्ध करते हैं।
|
||||
- Public endpoint: सार्वजनिक इंटरनेट के माध्यम से सीधे कनेक्शनों की अनुमति देता है, फ़ायरवॉल नियमों और अन्य सुरक्षा कॉन्फ़िगरेशन के अधीन।
|
||||
- Private endpoint: एक निजी नेटवर्क के लिए कनेक्टिविटी को प्रतिबंधित करता है।
|
||||
|
||||
**Connection Policy**: परिभाषित करें कि ग्राहक SQL डेटाबेस सर्वर के साथ कैसे संवाद करते हैं:
|
||||
- Default: Azure के अंदर सभी ग्राहक कनेक्शनों के लिए एक Redirect नीति का उपयोग करता है (प्राइवेट एंडपॉइंट का उपयोग करने वालों को छोड़कर) और Azure के बाहर से कनेक्शनों के लिए एक Proxy नीति।
|
||||
- Proxy: सभी ग्राहक कनेक्शनों को Azure SQL Database गेटवे के माध्यम से रूट करता है।
|
||||
- Redirect: ग्राहक सीधे डेटाबेस को होस्ट करने वाले नोड से कनेक्ट करते हैं।
|
||||
|
||||
#### Authentication Methods
|
||||
Azure SQL विभिन्न प्रमाणीकरण विधियों का समर्थन करता है ताकि डेटाबेस पहुँच को सुरक्षित किया जा सके:
|
||||
|
||||
- **Microsoft Entra-only authentication**: केंद्रीकृत पहचान प्रबंधन और सिंगल साइन-ऑन के लिए Microsoft Entra (पूर्व में Azure AD) का उपयोग करता है।
|
||||
- **Both SQL and Microsoft Entra authentication**: आपको Microsoft Entra के साथ पारंपरिक SQL प्रमाणीकरण का उपयोग करने की अनुमति देता है।
|
||||
- **SQL authentication**: केवल SQL Server उपयोगकर्ता नाम और पासवर्ड पर निर्भर करता है।
|
||||
|
||||
#### Security features
|
||||
|
||||
SQL सर्वरों में **Managed Identities** होती हैं। प्रबंधित पहचानें आपके सर्वर को अन्य Azure सेवाओं के साथ सुरक्षित रूप से प्रमाणीकरण करने की अनुमति देती हैं बिना क्रेडेंशियल्स को संग्रहीत किए। यह अन्य सेवाओं तक पहुँच की अनुमति देती है जो सिस्टम असाइन की गई प्रबंधित पहचान होगी और अन्य पहचान के साथ अन्य सेवाओं द्वारा पहुँची जा सकती है जो उपयोगकर्ता असाइन की गई प्रबंधित पहचान है। SQL द्वारा पहुँच की जा सकने वाली कुछ सेवाएँ हैं Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB या Cosmos DB API for MongoDB, Generic ODBC, Bulk Operations और S3-संगत वस्तु भंडारण।
|
||||
|
||||
SQL सर्वर की अन्य सुरक्षा सुविधाएँ हैं:
|
||||
|
||||
- **Firewall Rules**: फ़ायरवॉल नियम आपके सर्वर तक पहुँच को नियंत्रित करते हैं, ट्रैफ़िक को प्रतिबंधित या अनुमति देकर। यह डेटाबेस की एक विशेषता भी है।
|
||||
- **Transparent Data Encryption (TDE)**: TDE आपके डेटाबेस, बैकअप, और लॉग को विश्राम में एन्क्रिप्ट करता है ताकि आपके डेटा की सुरक्षा की जा सके, भले ही भंडारण से समझौता किया गया हो। इसे सेवा-प्रबंधित कुंजी या ग्राहक-प्रबंधित कुंजी के साथ किया जा सकता है।
|
||||
- **Microsoft Defender for SQL**: Microsoft Defender for SQL को सक्षम किया जा सकता है जो एक सर्वर के लिए भेद्यता आकलन और उन्नत खतरा सुरक्षा प्रदान करता है।
|
||||
|
||||
#### Deployment Models
|
||||
|
||||
Azure SQL Database विभिन्न आवश्यकताओं के लिए लचीले तैनाती विकल्पों का समर्थन करता है:
|
||||
|
||||
- **Single Database**:
|
||||
- एक पूरी तरह से अलग डेटाबेस जिसमें अपने स्वयं के समर्पित संसाधन होते हैं।
|
||||
- माइक्रोसर्विसेज या अनुप्रयोगों के लिए महान जो एकल डेटा स्रोत की आवश्यकता होती है।
|
||||
- **Elastic Pool**:
|
||||
- एक पूल के भीतर संसाधनों को साझा करने की अनुमति देता है।
|
||||
- कई डेटाबेस के बीच उतार-चढ़ाव वाले उपयोग पैटर्न के लिए लागत-कुशल।
|
||||
|
||||
### Azure SQL Database
|
||||
|
||||
**Azure SQL Database** एक **पूर्ण प्रबंधित डेटाबेस प्लेटफ़ॉर्म एज़ अ सर्विस (PaaS)** है जो स्केलेबल और सुरक्षित रिलेशनल डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server तकनीकों पर आधारित है और इन्फ्रास्ट्रक्चर प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है।
|
||||
**Azure SQL Database** एक **पूर्ण प्रबंधित डेटाबेस प्लेटफ़ॉर्म एज़ अ सर्विस (PaaS)** है जो स्केलेबल और सुरक्षित संबंधपरक डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server तकनीकों पर आधारित है और इन्फ्रास्ट्रक्चर प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है।
|
||||
|
||||
#### Key Features
|
||||
|
||||
- **Always Up-to-Date**: नवीनतम स्थिर संस्करण पर चलता है और नए फीचर्स और पैच स्वचालित रूप से प्राप्त करता है।
|
||||
- **Always Up-to-Date**: नवीनतम स्थिर संस्करण पर चलता है और स्वचालित रूप से नए फीचर्स और पैच प्राप्त करता है।
|
||||
- **PaaS Capabilities**: अंतर्निहित उच्च उपलब्धता, बैकअप, और अपडेट।
|
||||
- **Data Flexibility**: रिलेशनल और गैर-रिलेशनल डेटा (जैसे, ग्राफ, JSON, स्पैटियल, और XML) का समर्थन करता है।
|
||||
- **Data Flexibility**: संबंधपरक और गैर-संबंधपरक डेटा (जैसे, ग्राफ, JSON, स्थानिक, और XML) का समर्थन करता है।
|
||||
|
||||
#### Network
|
||||
|
||||
**Network Connectivity**: सार्वजनिक अंत बिंदु या निजी अंत बिंदु के माध्यम से पहुँच सक्षम करने का चयन करें। यदि आप कोई पहुँच नहीं चुनते हैं, तो कोई अंत बिंदु तब तक नहीं बनाए जाते जब तक कि इसे मैन्युअल रूप से कॉन्फ़िगर नहीं किया जाता:
|
||||
- No access: कोई अंत बिंदु कॉन्फ़िगर नहीं किए जाते, मैन्युअल रूप से सेट किए जाने तक आने वाले कनेक्शनों को अवरुद्ध करते हैं।
|
||||
- Public endpoint: सार्वजनिक इंटरनेट के माध्यम से सीधे कनेक्शनों की अनुमति देता है, फ़ायरवॉल नियमों और अन्य सुरक्षा कॉन्फ़िगरेशन के अधीन।
|
||||
- Private endpoint: एक निजी नेटवर्क के लिए कनेक्टिविटी को प्रतिबंधित करता है।
|
||||
|
||||
**Connection Policy**: परिभाषित करें कि ग्राहक SQL डेटाबेस सर्वर के साथ कैसे संवाद करते हैं:
|
||||
- Default: Azure के अंदर सभी ग्राहक कनेक्शनों के लिए एक Redirect नीति का उपयोग करता है (प्राइवेट एंडपॉइंट का उपयोग करने वालों को छोड़कर) और Azure के बाहर से कनेक्शनों के लिए एक Proxy नीति।
|
||||
- Proxy: सभी ग्राहक कनेक्शनों को Azure SQL Database गेटवे के माध्यम से रूट करता है।
|
||||
- Redirect: ग्राहक सीधे डेटाबेस को होस्ट करने वाले नोड से कनेक्ट करते हैं।
|
||||
|
||||
#### Security Features
|
||||
|
||||
- **Microsoft Defender for SQL**: सक्षम किया जा सकता है जो भेद्यता आकलन और उन्नत खतरा सुरक्षा प्रदान करता है।
|
||||
- **Ledger**: डेटा की अखंडता को क्रिप्टोग्राफिक रूप से सत्यापित करता है, यह सुनिश्चित करता है कि किसी भी छेड़छाड़ का पता लगाया जा सके।
|
||||
- **Server Identity**: केंद्रीकृत पहुँच सक्षम करने के लिए सिस्टम-निर्धारित और उपयोगकर्ता-निर्धारित प्रबंधित पहचान का उपयोग करता है।
|
||||
- **Transparent Data Encryption Key Management**: बिना किसी परिवर्तन की आवश्यकता के डेटाबेस, बैकअप, और लॉग को विश्राम में एन्क्रिप्ट करता है। एन्क्रिप्शन को प्रत्येक डेटाबेस पर सक्षम किया जा सकता है, और यदि डेटाबेस स्तर पर कॉन्फ़िगर किया गया है, तो ये सेटिंग्स सर्वर-स्तरीय कॉन्फ़िगरेशन को ओवरराइड करती हैं।
|
||||
- **Always Encrypted**: उन्नत डेटा सुरक्षा सुविधाओं का एक सूट है जो डेटा स्वामित्व को डेटा प्रबंधन से अलग करता है। यह सुनिश्चित करता है कि उच्च विशेषाधिकार वाले प्रशासक या ऑपरेटर संवेदनशील डेटा तक पहुँच नहीं प्राप्त कर सकते।
|
||||
|
||||
#### Purchasing Models / Service Tiers
|
||||
|
||||
@@ -29,31 +94,20 @@ Azure SQL तीन मुख्य पेशकशों में विभा
|
||||
- Standard: सामान्य कार्यों के लिए संतुलित संसाधन।
|
||||
- Premium: मांग वाले कार्यभार के लिए उच्च प्रदर्शन।
|
||||
|
||||
#### Deployment Models
|
||||
|
||||
Azure SQL Database विभिन्न आवश्यकताओं के अनुसार लचीले तैनाती विकल्पों का समर्थन करता है:
|
||||
|
||||
- **Single Database**:
|
||||
- अपने समर्पित संसाधनों के साथ पूरी तरह से अलग डेटाबेस।
|
||||
- माइक्रोसर्विसेज या एकल डेटा स्रोत की आवश्यकता वाले अनुप्रयोगों के लिए उत्कृष्ट।
|
||||
- **Elastic Pool**:
|
||||
- एक पूल के भीतर संसाधनों को साझा करने की अनुमति देता है।
|
||||
- कई डेटाबेस के बीच उतार-चढ़ाव वाले उपयोग पैटर्न वाले अनुप्रयोगों के लिए लागत-कुशल।
|
||||
|
||||
#### Scalable performance and pools
|
||||
|
||||
- **Single Databases**: प्रत्येक डेटाबेस अलग है और इसके अपने समर्पित कंप्यूट, मेमोरी, और स्टोरेज संसाधन हैं। संसाधनों को बिना डाउनटाइम (1–128 vCores, 32 GB–4 TB स्टोरेज, और 128 TB तक) के गतिशील रूप से स्केल किया जा सकता है।
|
||||
- **Elastic Pools**: अधिकतम दक्षता और लागत बचाने के लिए एक पूल में कई डेटाबेस के बीच संसाधनों को साझा करें। पूरे पूल के लिए संसाधनों को भी गतिशील रूप से स्केल किया जा सकता है।
|
||||
- **Service Tier Flexibility**: सामान्य उद्देश्य स्तर में एकल डेटाबेस के साथ छोटे स्तर से शुरू करें। आवश्यकताओं के बढ़ने पर व्यवसायिक महत्वपूर्ण या हाइपरस्केल स्तरों में अपग्रेड करें।
|
||||
- **Service Tier Flexibility**: सामान्य उद्देश्य स्तर में एकल डेटाबेस के साथ छोटे स्तर पर शुरू करें। आवश्यकताओं के बढ़ने पर व्यवसायिक महत्वपूर्ण या हाइपरस्केल स्तरों में अपग्रेड करें।
|
||||
- **Scaling Options**: गतिशील स्केलिंग या ऑटोस्केलिंग विकल्प।
|
||||
|
||||
#### Built-In Monitoring & Optimization
|
||||
|
||||
- **Query Store**: प्रदर्शन मुद्दों को ट्रैक करता है, शीर्ष संसाधन उपभोक्ताओं की पहचान करता है, और कार्यान्वयन योग्य सिफारिशें प्रदान करता है।
|
||||
- **Automatic Tuning**: स्वचालित अनुक्रमणिका और क्वेरी योजना सुधार जैसे फीचर्स के साथ प्रदर्शन को सक्रिय रूप से अनुकूलित करता है।
|
||||
- **Automatic Tuning**: स्वचालित इंडेक्सिंग और क्वेरी योजना सुधार जैसे सुविधाओं के साथ प्रदर्शन को सक्रिय रूप से अनुकूलित करता है।
|
||||
- **Telemetry Integration**: अनुकूलित अंतर्दृष्टि के लिए Azure Monitor, Event Hubs, या Azure Storage के माध्यम से निगरानी का समर्थन करता है।
|
||||
|
||||
#### Disaster Recovery & Availavility
|
||||
#### Disaster Recovery & Availability
|
||||
|
||||
- **Automatic backups**: SQL Database स्वचालित रूप से डेटाबेस के पूर्ण, विभेदक, और लेनदेन लॉग बैकअप करता है।
|
||||
- **Point-in-Time Restore**: बैकअप संरक्षण अवधि के भीतर किसी भी पिछले राज्य में डेटाबेस को पुनर्प्राप्त करें।
|
||||
@@ -62,18 +116,18 @@ Azure SQL Database विभिन्न आवश्यकताओं के
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instance** एक प्लेटफ़ॉर्म एज़ अ सर्विस (PaaS) डेटाबेस इंजन है जो SQL Server के साथ लगभग 100% संगतता प्रदान करता है और अधिकांश प्रबंधन कार्यों (जैसे, अपग्रेडिंग, पैचिंग, बैकअप, निगरानी) को स्वचालित रूप से संभालता है। यह न्यूनतम परिवर्तनों के साथ ऑन-प्रिमाइसेस SQL Server डेटाबेस को माइग्रेट करने के लिए एक क्लाउड समाधान प्रदान करता है।
|
||||
**Azure SQL Managed Instance** एक प्लेटफ़ॉर्म एज़ अ सर्विस (PaaS) डेटाबेस इंजन है जो SQL Server के साथ लगभग 100% संगतता प्रदान करता है और अधिकांश प्रबंधन कार्यों (जैसे, अपग्रेडिंग, पैचिंग, बैकअप, निगरानी) को स्वचालित रूप से संभालता है। यह ऑन-प्रिमाइसेस SQL Server डेटाबेस को न्यूनतम परिवर्तनों के साथ माइग्रेट करने के लिए एक क्लाउड समाधान प्रदान करता है।
|
||||
|
||||
#### Service Tiers
|
||||
|
||||
- **General Purpose**: मानक I/O और लेटेंसी आवश्यकताओं वाले अनुप्रयोगों के लिए लागत-कुशल विकल्प।
|
||||
- **Business Critical**: महत्वपूर्ण कार्यभार के लिए कम I/O लेटेंसी के साथ उच्च-प्रदर्शन विकल्प।
|
||||
- **General Purpose**: मानक I/O और विलंबता आवश्यकताओं वाले अनुप्रयोगों के लिए लागत-कुशल विकल्प।
|
||||
- **Business Critical**: महत्वपूर्ण कार्यभार के लिए कम I/O विलंबता के साथ उच्च-प्रदर्शन विकल्प।
|
||||
|
||||
#### Advanced Security Features
|
||||
|
||||
* **Threat Protection**: संदिग्ध गतिविधियों और SQL इंजेक्शन हमलों के लिए उन्नत खतरा सुरक्षा अलर्ट। अनुपालन के लिए डेटाबेस घटनाओं को ट्रैक और लॉग करने के लिए ऑडिटिंग।
|
||||
* **Access Control**: केंद्रीकृत पहचान प्रबंधन के लिए Microsoft Entra प्रमाणीकरण। ग्रैन्युलर एक्सेस नियंत्रण के लिए रो-लेवल सुरक्षा और डायनामिक डेटा मास्किंग।
|
||||
* **Backups**: बिंदु-में-समय पुनर्स्थापना क्षमता के साथ स्वचालित और मैनुअल बैकअप।
|
||||
* **Backups**: बिंदु-इन-टाइम पुनर्स्थापना क्षमता के साथ स्वचालित और मैन्युअल बैकअप।
|
||||
|
||||
### Azure SQL Virtual Machines
|
||||
|
||||
@@ -84,14 +138,14 @@ Azure SQL Database विभिन्न आवश्यकताओं के
|
||||
**Automated Backup**: SQL डेटाबेस के लिए बैकअप शेड्यूल करें।
|
||||
**Automatic Patching**: रखरखाव विंडो के दौरान Windows और SQL Server अपडेट के इंस्टॉलेशन को स्वचालित करता है।
|
||||
**Azure Key Vault Integration**: SQL Server VMs के लिए Key Vault को स्वचालित रूप से कॉन्फ़िगर करता है।
|
||||
**Defender for Cloud Integration**: पोर्टल में SQL के लिए Defender की सिफारिशें देखें।
|
||||
**Version/Edition Flexibility**: VM को फिर से तैनात किए बिना SQL Server संस्करण या संपादन मेटाडेटा बदलें।
|
||||
**Defender for Cloud Integration**: पोर्टल में Defender for SQL सिफारिशों को देखें।
|
||||
**Version/Edition Flexibility**: VM को फिर से तैनात किए बिना SQL Server संस्करण या संस्करण मेटाडेटा बदलें।
|
||||
|
||||
#### Security Features
|
||||
|
||||
**Microsoft Defender for SQL**: सुरक्षा अंतर्दृष्टि और अलर्ट।
|
||||
**Azure Key Vault Integration**: क्रेडेंशियल और एन्क्रिप्शन कुंजियों का सुरक्षित भंडारण।
|
||||
**Microsoft Entra (Azure AD)**: प्रमाणीकरण और एक्सेस नियंत्रण।
|
||||
**Azure Key Vault Integration**: क्रेडेंशियल्स और एन्क्रिप्शन कुंजियों का सुरक्षित भंडारण।
|
||||
**Microsoft Entra (Azure AD)**: प्रमाणीकरण और पहुँच नियंत्रण।
|
||||
|
||||
## Enumeration
|
||||
|
||||
@@ -99,7 +153,7 @@ Azure SQL Database विभिन्न आवश्यकताओं के
|
||||
{{#tab name="az cli"}}
|
||||
```bash
|
||||
# List Servers
|
||||
az sql server list # --output table
|
||||
az sql server list # managed identities are enumerated here too
|
||||
## List Server Usages
|
||||
az sql server list-usages --name <server_name> --resource-group <resource_group>
|
||||
## List Server Firewalls
|
||||
@@ -208,7 +262,7 @@ Get-AzSqlVM
|
||||
|
||||
### कनेक्ट करें और SQL क्वेरी चलाएँ
|
||||
|
||||
आप एक कनेक्शन स्ट्रिंग (जिसमें क्रेडेंशियल्स शामिल हैं) उदाहरण [एक Az WebApp की गणना करना](az-app-services.md) से पा सकते हैं:
|
||||
आप एक कनेक्शन स्ट्रिंग (जो क्रेडेंशियल्स शामिल करता है) उदाहरण [एक Az WebApp की गणना करना](az-app-services.md) से पा सकते हैं:
|
||||
```bash
|
||||
function invoke-sql{
|
||||
param($query)
|
||||
@@ -227,7 +281,7 @@ $Connection.Close()
|
||||
|
||||
invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
|
||||
```
|
||||
आप sqlcmd का उपयोग करके डेटाबेस तक भी पहुँच सकते हैं। यह जानना महत्वपूर्ण है कि क्या सर्वर सार्वजनिक कनेक्शनों की अनुमति देता है `az sql server show --name <server-name> --resource-group <resource-group>` और यह भी कि क्या फ़ायरवॉल नियम हमारे IP को पहुँचने की अनुमति देता है:
|
||||
आप sqlcmd का उपयोग करके डेटाबेस तक भी पहुँच सकते हैं। यह जानना महत्वपूर्ण है कि क्या सर्वर सार्वजनिक कनेक्शन की अनुमति देता है `az sql server show --name <server-name> --resource-group <resource-group>` और यह भी कि क्या फ़ायरवॉल नियम हमारे IP को पहुँचने की अनुमति देता है:
|
||||
```bash
|
||||
sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passworkd> -d <database>
|
||||
```
|
||||
|
||||
@@ -14,33 +14,33 @@ Confidential VM चलाने के लिए इसे **बदलने**
|
||||
|
||||
### Disk & Disk Encryption
|
||||
|
||||
आप **डिस्क का चयन** करने या **नई बनाने** के लिए स्वतंत्र हैं। यदि आप नई का चयन करते हैं तो आप:
|
||||
आप **डिस्क का चयन** कर सकते हैं या **एक नई बना सकते हैं**। यदि आप एक नई चुनते हैं तो आप:
|
||||
|
||||
- **डिस्क का आकार** चुन सकते हैं
|
||||
- **OS** चुन सकते हैं
|
||||
- संकेत कर सकते हैं कि आप **इंस्टेंस के हटाए जाने पर डिस्क को हटाना चाहते हैं**
|
||||
- **एन्क्रिप्शन**: **डिफ़ॉल्ट** के रूप में एक **गूगल प्रबंधित कुंजी** का उपयोग किया जाएगा, लेकिन आप **KMS से एक कुंजी का चयन** भी कर सकते हैं या **उपयोग करने के लिए कच्ची कुंजी** का संकेत दे सकते हैं।
|
||||
- **एन्क्रिप्शन**: **डिफ़ॉल्ट** के रूप में एक **गूगल प्रबंधित कुंजी** का उपयोग किया जाएगा, लेकिन आप **KMS से एक कुंजी चुन सकते हैं** या **उपयोग करने के लिए कच्ची कुंजी** निर्दिष्ट कर सकते हैं।
|
||||
|
||||
### Deploy Container
|
||||
|
||||
यह वर्चुअल मशीन के अंदर एक **कंटेनर** तैनात करना संभव है।\
|
||||
आप उपयोग करने के लिए **इमेज** को कॉन्फ़िगर कर सकते हैं, अंदर चलाने के लिए **कमांड** सेट कर सकते हैं, **आर्गुमेंट्स**, एक **वॉल्यूम** माउंट कर सकते हैं, और **env वेरिएबल्स** (संवेदनशील जानकारी?) सेट कर सकते हैं और इस कंटेनर के लिए कई विकल्प कॉन्फ़िगर कर सकते हैं जैसे **privileged** के रूप में निष्पादित करना, stdin और pseudo TTY।
|
||||
आप उपयोग करने के लिए **इमेज** कॉन्फ़िगर कर सकते हैं, अंदर चलाने के लिए **कमांड** सेट कर सकते हैं, **आर्गुमेंट्स**, एक **वॉल्यूम** माउंट कर सकते हैं, और **env वेरिएबल्स** (संवेदनशील जानकारी?) सेट कर सकते हैं और इस कंटेनर के लिए कई विकल्प कॉन्फ़िगर कर सकते हैं जैसे **privileged** के रूप में निष्पादित करना, stdin और pseudo TTY।
|
||||
|
||||
### Service Account
|
||||
|
||||
डिफ़ॉल्ट रूप से, **Compute Engine डिफ़ॉल्ट सेवा खाता** का उपयोग किया जाएगा। इस SA का ईमेल इस प्रकार है: `<proj-num>-compute@developer.gserviceaccount.com`\
|
||||
इस सेवा खाते के पास **पूरे प्रोजेक्ट पर संपादक भूमिका (उच्च विशेषाधिकार)** है।
|
||||
इस सेवा खाते के पास **पूरे प्रोजेक्ट पर संपादक की भूमिका (उच्च विशेषाधिकार)** है।
|
||||
|
||||
और **डिफ़ॉल्ट एक्सेस स्कोप** निम्नलिखित हैं:
|
||||
|
||||
- **https://www.googleapis.com/auth/devstorage.read\_only** -- बकेट्स तक पढ़ने की पहुंच :)
|
||||
- https://www.googleapis.com/auth/logging.write
|
||||
- https://www.googleapis.com/auth/monitoring.write
|
||||
- https://www.googleapis.com/auth/servicecontrol
|
||||
- https://www.googleapis.com/auth/service.management.readonly
|
||||
- https://www.googleapis.com/auth/trace.append
|
||||
- [https://www.googleapis.com/auth/logging.write](https://www.googleapis.com/auth/logging.write)
|
||||
- [https://www.googleapis.com/auth/monitoring.write](https://www.googleapis.com/auth/monitoring.write)
|
||||
- [https://www.googleapis.com/auth/servicecontrol](https://www.googleapis.com/auth/servicecontrol)
|
||||
- [https://www.googleapis.com/auth/service.management.readonly](https://www.googleapis.com/auth/service.management.readonly)
|
||||
- [https://www.googleapis.com/auth/trace.append](https://www.googleapis.com/auth/trace.append)
|
||||
|
||||
हालांकि, इसे **एक क्लिक से `cloud-platform` प्रदान करना** या **कस्टम स्कोप** निर्दिष्ट करना संभव है।
|
||||
हालांकि, इसे **एक क्लिक से `cloud-platform` प्रदान करना** या **कस्टम** निर्दिष्ट करना संभव है।
|
||||
|
||||
<figure><img src="../../../../images/image (327).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -62,13 +62,13 @@ HTTP और HTTPS ट्रैफ़िक की अनुमति देन
|
||||
|
||||
- **Secure boot:** Secure boot आपके VM इंस्टेंस को बूट-स्तरीय और कर्नेल-स्तरीय मैलवेयर और रूटकिट से बचाने में मदद करता है।
|
||||
- **Enable vTPM:** वर्चुअल ट्रस्टेड प्लेटफॉर्म मॉड्यूल (vTPM) आपके गेस्ट VM की प्री-बूट और बूट अखंडता को मान्य करता है, और कुंजी निर्माण और सुरक्षा प्रदान करता है।
|
||||
- **Integrity supervision:** Integrity monitoring आपको Stackdriver रिपोर्टों का उपयोग करके आपके शील्डेड VM इंस्टेंस की रनटाइम बूट अखंडता की निगरानी और सत्यापन करने की अनुमति देता है। vTPM सक्षम होना आवश्यक है।
|
||||
- **Integrity supervision:** Integrity monitoring आपको Stackdriver रिपोर्ट का उपयोग करके आपके शील्डेड VM इंस्टेंस की रनटाइम बूट अखंडता की निगरानी और सत्यापन करने की अनुमति देता है। vTPM सक्षम होना आवश्यक है।
|
||||
|
||||
### VM Access
|
||||
|
||||
VM तक पहुंच सक्षम करने का सामान्य तरीका है **कुछ SSH सार्वजनिक कुंजियों** को VM तक पहुंचने की अनुमति देना।\
|
||||
हालांकि, यह भी संभव है कि **IAM का उपयोग करके `os-config` सेवा के माध्यम से VM तक पहुंच सक्षम करें**। इसके अलावा, इस सेवा का उपयोग करके VM तक पहुंच के लिए 2FA सक्षम करना भी संभव है।\
|
||||
जब यह **सेवा** **सक्षम** होती है, तो **SSH कुंजियों के माध्यम से पहुंच अक्षम** होती है।
|
||||
हालांकि, यह भी संभव है कि **IAM का उपयोग करके `os-config` सेवा के माध्यम से VM तक पहुंच सक्षम करें**। इसके अलावा, इस सेवा का उपयोग करके VM तक पहुंच के लिए 2FA सक्षम करना संभव है।\
|
||||
जब यह **सेवा** **सक्षम** होती है, तो **SSH कुंजियों के माध्यम से पहुंच अक्षम होती है।**
|
||||
|
||||
<figure><img src="../../../../images/image (328).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -76,7 +76,7 @@ VM तक पहुंच सक्षम करने का सामान्
|
||||
|
||||
आप **स्वचालन** (AWS में userdata) को परिभाषित कर सकते हैं जो **शेल कमांड** हैं जो हर बार मशीन चालू होने या पुनरारंभ होने पर निष्पादित होंगे।
|
||||
|
||||
आप अतिरिक्त मेटाडेटा कुंजी-मूल्य जोड़ने के लिए भी स्वतंत्र हैं जो मेटाडेटा एंडपॉइंट से सुलभ होंगे। यह जानकारी आमतौर पर पर्यावरण चर और स्टार्टअप/शटडाउन स्क्रिप्ट के लिए उपयोग की जाती है। इसे **enumeration section में एक कमांड से `describe` method** का उपयोग करके प्राप्त किया जा सकता है, लेकिन इसे इंस्टेंस के अंदर मेटाडेटा एंडपॉइंट तक पहुंचकर भी पुनः प्राप्त किया जा सकता है।
|
||||
यह भी संभव है कि आप **अतिरिक्त मेटाडेटा कुंजी-मूल्य मान** जोड़ें जो मेटाडेटा एंडपॉइंट से सुलभ होंगे। यह जानकारी आमतौर पर पर्यावरण चर और स्टार्टअप/शटडाउन स्क्रिप्ट के लिए उपयोग की जाती है। इसे **`describe` विधि** का उपयोग करके प्राप्त किया जा सकता है जो एन्यूमरेशन अनुभाग में एक कमांड से है, लेकिन इसे इंस्टेंस के अंदर मेटाडेटा एंडपॉइंट तक पहुंचकर भी पुनः प्राप्त किया जा सकता है।
|
||||
```bash
|
||||
# view project metadata
|
||||
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
|
||||
@@ -86,7 +86,7 @@ curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?rec
|
||||
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
|
||||
-H "Metadata-Flavor: Google"
|
||||
```
|
||||
इसके अलावा, **संलग्न सेवा खाते के लिए प्रमाणीकरण टोकन** और **संस्थान, नेटवर्क और परियोजना के बारे में सामान्य जानकारी** भी **मेटाडेटा एंडपॉइंट** से उपलब्ध होगी। अधिक जानकारी के लिए देखें:
|
||||
इसके अलावा, **संलग्न सेवा खाते के लिए प्रमाणीकरण टोकन** और **इंस्टेंस, नेटवर्क और प्रोजेक्ट के बारे में सामान्य जानकारी** भी **मेटाडेटा एंडपॉइंट** से उपलब्ध होगी। अधिक जानकारी के लिए देखें:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
|
||||
Reference in New Issue
Block a user