Az - Service Bus Enum

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Service Bus

Azure Service Bus είναι μια υπηρεσία μηνυμάτων που βασίζεται στο cloud, σχεδιασμένη για να επιτρέπει αξιόπιστη επικοινωνία μεταξύ διαφορετικών τμημάτων μιας εφαρμογής ή ξεχωριστών εφαρμογών. Λειτουργεί ως ασφαλής μεσάζων, διασφαλίζοντας ότι τα μηνύματα παραδίδονται με ασφάλεια, ακόμη και αν ο αποστολέας και ο παραλήπτης δεν λειτουργούν ταυτόχρονα. Με την αποσύνδεση των συστημάτων, επιτρέπει στις εφαρμογές να λειτουργούν ανεξάρτητα ενώ εξακολουθούν να ανταλλάσσουν δεδομένα ή οδηγίες. Είναι ιδιαίτερα χρήσιμο για σενάρια που απαιτούν κατανομή φορτίου σε πολλούς εργαζόμενους, αξιόπιστη παράδοση μηνυμάτων ή σύνθετο συντονισμό, όπως η επεξεργασία εργασιών με σειρά ή η ασφαλής διαχείριση πρόσβασης.

Key Concepts

  1. Namespaces: Ένας χώρος ονομάτων στα συστήματα μηνυμάτων είναι ένα λογικό δοχείο που οργανώνει και διαχειρίζεται τα συστατικά μηνυμάτων, τις ουρές και τα θέματα. Παρέχει ένα απομονωμένο περιβάλλον όπου οι εφαρμογές μπορούν να στέλνουν, να λαμβάνουν και να επεξεργάζονται μηνύματα. Οι ουρές και τα θέματα μοιράζονται την ίδια υποδομή και ρύθμιση εντός ενός χώρου ονομάτων Service Bus, αλλά λειτουργούν ανεξάρτητα χωρίς να αλληλεπιδρούν μεταξύ τους.
  2. Queues: ο σκοπός της είναι να αποθηκεύει μηνύματα μέχρι να είναι έτοιμος ο παραλήπτης.
  • Τα μηνύματα είναι ταξινομημένα, χρονοσημανμένα και αποθηκεύονται μόνιμα.
  • Παραδίδονται σε λειτουργία pull (ανάκτηση κατόπιν αιτήματος) σε έναν καταναλωτή.
  • Μπορεί να ρυθμιστεί ώστε όταν το μήνυμα κοινοποιείται να διαγράφεται αυτόματα ή σε λειτουργία “Peek lock” όπου ο καταναλωτής πρέπει να αναγνωρίσει ότι μπορεί να διαγραφεί. Αν όχι, το μήνυμα θα επιστρέψει στην ουρά.
  • Υποστηρίζει επικοινωνία σημείου προς σημείο.
  1. Topics: Δημοσίευση-εγγραφή μηνυμάτων για μετάδοση.
  • Πολλές ανεξάρτητες συνδρομές λαμβάνουν αντίγραφα μηνυμάτων.
  • Κάθε συνδρομή είναι σαν μια ουρά μέσα στο θέμα.
  • Οι συνδρομές μπορούν να έχουν κανόνες/φίλτρα για να ελέγχουν την παράδοση ή να προσθέτουν μεταδεδομένα.

Η διεύθυνση/σύνδεσμος του service bus είναι:

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

Προχωρημένα Χαρακτηριστικά

Ορισμένα προχωρημένα χαρακτηριστικά είναι:

  • Message Sessions: Διασφαλίζει την επεξεργασία FIFO και υποστηρίζει πρότυπα αιτήσεων-απαντήσεων.
  • Auto-Forwarding: Μεταφέρει μηνύματα μεταξύ ουρών ή θεμάτων στην ίδια ονομασία χώρου.
  • Dead-Lettering: Καταγράφει τα μη παραδιδόμενα μηνύματα για ανασκόπηση.
  • Scheduled Delivery: Καθυστερεί την επεξεργασία μηνυμάτων για μελλοντικές εργασίες.
  • Message Deferral: Αναβάλλει την ανάκτηση μηνυμάτων μέχρι να είναι έτοιμα.
  • Transactions: Ομαδοποιεί τις λειτουργίες σε ατομική εκτέλεση.
  • Filters & Actions: Εφαρμόζει κανόνες για να φιλτράρει ή να σχολιάσει μηνύματα.
  • Auto-Delete on Idle: Διαγράφει τις ουρές μετά από αδράνεια (ελάχιστο: 5 λεπτά).
  • Duplicate Detection: Αφαιρεί τα διπλά μηνύματα κατά την επαναποστολή.
  • Batch Deletion: Μαζική διαγραφή ληγμένων ή περιττών μηνυμάτων.

Τοπική Αυθεντικοποίηση

Η --disable-local-auth από την παράμετρο az cli χρησιμοποιείται για να ελέγξει αν η τοπική αυθεντικοποίηση (επιτρέποντας τη χρήση κλειδιών Shared Access Signature (SAS)) είναι ενεργοποιημένη για τον ονομασία χώρου του Service Bus σας.

  • Όταν η απενεργοποίηση είναι ρυθμισμένη σε true: Η τοπική αυθεντικοποίηση χρησιμοποιώντας κλειδιά SAS είναι απενεργοποιημένη και επιτρέπεται η αυθεντικοποίηση μέσω Entra ID.
  • Όταν η απενεργοποίηση είναι ρυθμισμένη σε false (προεπιλογή): Και οι δύο τοπική αυθεντικοποίηση SAS και αυθεντικοποίηση Entra ID είναι διαθέσιμες και μπορείτε να χρησιμοποιήσετε συμβολοσειρές σύνδεσης με κλειδιά SAS για να αποκτήσετε πρόσβαση στους πόρους του Service Bus σας.

Κανόνας Εξουσιοδότησης / Πολιτική SAS

Οι Πολιτικές SAS καθορίζουν τις άδειες πρόσβασης για τις οντότητες του Azure Service Bus (Η πιο σημαντική), ουρές και θέματα. Κάθε πολιτική έχει τα εξής στοιχεία:

  • Permissions: Επιλογές για να καθορίσετε επίπεδα πρόσβασης:
  • Manage: Παρέχει πλήρη έλεγχο της οντότητας, συμπεριλαμβανομένης της διαχείρισης ρυθμίσεων και αδειών.
  • Send: Επιτρέπει την αποστολή μηνυμάτων στην οντότητα.
  • Listen: Επιτρέπει την λήψη μηνυμάτων από την οντότητα.
  • Primary and Secondary Keys: Αυτά είναι κρυπτογραφικά κλειδιά που χρησιμοποιούνται για τη δημιουργία ασφαλών τοκεν για την αυθεντικοποίηση πρόσβασης.
  • Primary and Secondary Connection Strings: Προρυθμισμένες συμβολοσειρές σύνδεσης που περιλαμβάνουν το endpoint και το κλειδί για εύκολη χρήση σε εφαρμογές.
  • SAS Policy ARM ID: Η διαδρομή Azure Resource Manager (ARM) προς την πολιτική για προγραμματιστική αναγνώριση.

Είναι σημαντικό να σημειωθεί ότι μια ονομασία χώρου έχει μία μόνο πολιτική SAS που επηρεάζει κάθε οντότητα εντός αυτής, ενώ οι ουρές και τα θέματα μπορούν να έχουν τις δικές τους ατομικές πολιτικές SAS για πιο λεπτομερή έλεγχο.

Απαρίθμηση

# 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 Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks