Az - Service Bus Enum

Reading time: 9 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Service Bus

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

Key Concepts

  1. Namespaces: मैसेजिंग सिस्टम में एक नामस्थान एक तार्किक कंटेनर है जो मैसेजिंग घटकों, कतारों और विषयों को व्यवस्थित और प्रबंधित करता है। यह एक अलग वातावरण प्रदान करता है जहां अनुप्रयोग संदेश भेज, प्राप्त और संसाधित कर सकते हैं। कतारें और विषय एक सेवा बस नामस्थान के भीतर समान बुनियादी ढाँचे और कॉन्फ़िगरेशन को साझा करते हैं, लेकिन वे एक-दूसरे के साथ बातचीत किए बिना स्वतंत्र रूप से कार्य करते हैं।
  2. Queues: इसका उद्देश्य संदेशों को तब तक संग्रहीत करना है जब तक प्राप्तकर्ता तैयार न हो।
  • संदेश क्रमबद्ध, टाइमस्टैम्प किए गए और स्थायी रूप से संग्रहीत होते हैं।
  • एक उपभोक्ता को खींचने के मोड (ऑन-डिमांड पुनर्प्राप्ति) में वितरित किया जाता है।
  • इसे इस तरह से कॉन्फ़िगर किया जा सकता है कि जब संदेश साझा किया जाता है तो इसे स्वचालित रूप से हटा दिया जाता है या "पीक लॉक" मोड में जहां उपभोक्ता को यह स्वीकार करना होता है कि इसे हटा दिया जा सकता है। यदि नहीं, तो संदेश फिर से कतार में वापस आ जाएगा।
  • बिंदु-से-बिंदु संचार का समर्थन करता है।
  1. Topics: प्रसारण के लिए प्रकाशन-ग्राहक मैसेजिंग।
  • कई स्वतंत्र सदस्यताएँ संदेशों की प्रतियाँ प्राप्त करती हैं।
  • प्रत्येक सदस्यता विषय के भीतर एक कतार की तरह होती है।
  • सदस्यताओं में वितरण को नियंत्रित करने या मेटाडेटा जोड़ने के लिए नियम/फिल्टर हो सकते हैं।

The service bus endpoint/connection string is:

bash
https://<namespace>.servicebus.windows.net:443/

Advance Features

कुछ उन्नत विशेषताएँ हैं:

  • Message Sessions: FIFO प्रोसेसिंग सुनिश्चित करता है और अनुरोध-उत्तर पैटर्न का समर्थन करता है।
  • Auto-Forwarding: एक ही नामस्थान में कतारों या विषयों के बीच संदेशों को स्थानांतरित करता है।
  • Dead-Lettering: समीक्षा के लिए अप्राप्य संदेशों को कैप्चर करता है।
  • Scheduled Delivery: भविष्य के कार्यों के लिए संदेश प्रोसेसिंग में देरी करता है।
  • Message Deferral: संदेश पुनर्प्राप्ति को तैयार होने तक स्थगित करता है।
  • Transactions: संचालन को परमाणु निष्पादन में समूहित करता है।
  • Filters & Actions: संदेशों को फ़िल्टर या एनोटेट करने के लिए नियम लागू करता है।
  • Auto-Delete on Idle: निष्क्रियता के बाद कतारों को हटाता है (न्यूनतम: 5 मिनट)।
  • Duplicate Detection: पुनः भेजने के दौरान डुप्लिकेट संदेशों को हटाता है।
  • Batch Deletion: समाप्त या अनावश्यक संदेशों को बल्क में हटाता है।

Local Authentication

--disable-local-auth az cli पैरामीटर का उपयोग यह नियंत्रित करने के लिए किया जाता है कि क्या स्थानीय प्रमाणीकरण (Shared Access Signature (SAS) कुंजी के उपयोग की अनुमति) आपके Service Bus नामस्थान के लिए सक्षम है।

  • जब disable को true पर सेट किया जाता है: SAS कुंजी का उपयोग करके स्थानीय प्रमाणीकरण अक्षम होता है और Entrad ID प्रमाणीकरण की अनुमति होती है।
  • जब disable को false (डिफ़ॉल्ट) पर सेट किया जाता है: SAS स्थानीय प्रमाणीकरण और Entra ID प्रमाणीकरण दोनों उपलब्ध होते हैं और आप अपने Service Bus संसाधनों तक पहुँचने के लिए SAS कुंजी के साथ कनेक्शन स्ट्रिंग का उपयोग कर सकते हैं।

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) पथ।

यह ध्यान रखना महत्वपूर्ण है कि एक नामस्थान में एकल SAS नीति होती है जो इसके भीतर हर इकाई को प्रभावित करती है, जबकि कतारें और विषय अपनी व्यक्तिगत SAS नीतियाँ रख सकते हैं ताकि अधिक सूक्ष्म नियंत्रण हो सके।

Enumeration

bash
# Namespace Enumeration
az servicebus namespace list
az servicebus namespace network-rule-set list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus namespace show --resource-group <MyResourceGroup> --name <MyNamespace>
az servicebus namespace network-rule-set show --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus namespace private-endpoint-connection list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus namespace exists --name ProposedNamespace

# Authorization Rule Enumeration
az servicebus namespace authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus queue authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --queue-name <MyQueue>
az servicebus topic authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
az servicebus namespace authorization-rule keys list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyAuthRule>

# Get keys
az servicebus namespace authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> [--authorization-rule-name RootManageSharedAccessKey]
az servicebus topic authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
az servicebus queue authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --queue-name <topic-name> --name <auth-rule-name>

# Queue Enumeration
az servicebus queue list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus queue show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyQueue>

# Topic Enumeration
az servicebus topic list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
az servicebus topic show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyTopic>

# Susbscription Enumeration
az servicebus topic subscription list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
az servicebus topic subscription show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic> --name <MySubscription>

विशेषाधिकार वृद्धि

Az - Service Bus Privesc

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

Az - Service Bus Post Exploitation

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें