Az - Service Bus Enum
Reading time: 8 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Service Bus
Azure Service Bus ist ein cloudbasierter Messaging-Dienst, der entwickelt wurde, um eine zuverlässige Kommunikation zwischen verschiedenen Teilen einer Anwendung oder separaten Anwendungen zu ermöglichen. Er fungiert als sicherer Mittelsmann und stellt sicher, dass Nachrichten sicher zugestellt werden, selbst wenn Sender und Empfänger nicht gleichzeitig arbeiten. Durch die Entkopplung von Systemen ermöglicht es Anwendungen, unabhängig zu arbeiten, während sie weiterhin Daten oder Anweisungen austauschen. Es ist besonders nützlich für Szenarien, die Lastenausgleich über mehrere Arbeiter, zuverlässige Nachrichtenübermittlung oder komplexe Koordination erfordern, wie z.B. die Verarbeitung von Aufgaben in der richtigen Reihenfolge oder die sichere Verwaltung von Zugriffsrechten.
Key Concepts
- Namespaces: Ein Namespace in Messaging-Systemen ist ein logischer Container, der Messaging-Komponenten, Warteschlangen und Themen organisiert und verwaltet. Er bietet eine isolierte Umgebung, in der Anwendungen Nachrichten senden, empfangen und verarbeiten können. Warteschlangen und Themen teilen sich die gleiche Infrastruktur und Konfiguration innerhalb eines Service Bus-Namespace, arbeiten jedoch unabhängig und interagieren nicht miteinander.
- Queues: Ihr Zweck ist es, Nachrichten zu speichern, bis der Empfänger bereit ist.
- Nachrichten sind geordnet, zeitgestempelt und dauerhaft gespeichert.
- Sie werden im Pull-Modus (on-demand retrieval) an einen Verbraucher geliefert.
- Es kann so konfiguriert werden, dass die Nachricht automatisch gelöscht wird, wenn sie geteilt wird, oder im „Peek lock“-Modus, in dem der Verbraucher bestätigen muss, dass sie gelöscht werden kann. Andernfalls wird die Nachricht zurück in die Warteschlange geschickt.
- Unterstützt Punkt-zu-Punkt-Kommunikation.
- Topics: Publish-Subscribe-Messaging für die Übertragung.
- Mehrere unabhängige Abonnements erhalten Kopien von Nachrichten.
- Jedes Abonnement ist wie eine Warteschlange innerhalb des Themas.
- Abonnements können Regeln/Filter haben, um die Zustellung zu steuern oder Metadaten hinzuzufügen.
Der Service Bus-Endpunkt/Verbindungszeichenfolge ist:
https://<namespace>.servicebus.windows.net:443/
Erweiterte Funktionen
Einige erweiterte Funktionen sind:
- Message Sessions: Stellt FIFO-Verarbeitung sicher und unterstützt Anfrage-Antwort-Muster.
- Auto-Forwarding: Überträgt Nachrichten zwischen Warteschlangen oder Themen im selben Namensraum.
- Dead-Lettering: Erfasst unzustellbare Nachrichten zur Überprüfung.
- Scheduled Delivery: Verzögert die Nachrichtenverarbeitung für zukünftige Aufgaben.
- Message Deferral: Verschiebt die Nachrichtenabholung, bis sie bereit ist.
- Transactions: Gruppiert Operationen in atomare Ausführung.
- Filters & Actions: Wendet Regeln an, um Nachrichten zu filtern oder zu annotieren.
- Auto-Delete on Idle: Löscht Warteschlangen nach Inaktivität (min: 5 Minuten).
- Duplicate Detection: Entfernt doppelte Nachrichten während der erneuten Sendungen.
- Batch Deletion: Löscht im Bulk abgelaufene oder unnötige Nachrichten.
Lokale Authentifizierung
Der --disable-local-auth
Parameter von az cli wird verwendet, um zu steuern, ob die lokale Authentifizierung (die Verwendung von Shared Access Signature (SAS) Schlüsseln ermöglicht) für Ihren Service Bus Namensraum aktiviert ist.
- Wenn disable auf true gesetzt ist: Ist die lokale Authentifizierung mit SAS-Schlüsseln deaktiviert und die Entra ID-Authentifizierung ist erlaubt.
- Wenn disable auf false (Standard) gesetzt ist: Sind sowohl die SAS lokale Authentifizierung als auch die Entra ID-Authentifizierung verfügbar, und Sie können Verbindungszeichenfolgen mit SAS-Schlüsseln verwenden, um auf Ihre Service Bus-Ressourcen zuzugreifen.
Autorisierungsregel / SAS-Richtlinie
SAS-Richtlinien definieren die Zugriffsberechtigungen für Azure Service Bus Entitäten Namensraum (die wichtigste), Warteschlangen und Themen. Jede Richtlinie hat die folgenden Komponenten:
- Berechtigungen: Kontrollkästchen zur Angabe von Zugriffslevels:
- Manage: Gewährt vollständige Kontrolle über die Entität, einschließlich Konfiguration und Berechtigungsmanagement.
- Send: Erlaubt das Senden von Nachrichten an die Entität.
- Listen: Erlaubt das Empfangen von Nachrichten von der Entität.
- Primäre und sekundäre Schlüssel: Dies sind kryptografische Schlüssel, die zur Generierung sicherer Token für die Authentifizierung des Zugriffs verwendet werden.
- Primäre und sekundäre Verbindungszeichenfolgen: Vorgefertigte Verbindungszeichenfolgen, die den Endpunkt und den Schlüssel für die einfache Verwendung in Anwendungen enthalten.
- SAS-Richtlinien ARM-ID: Der Azure Resource Manager (ARM) Pfad zur Richtlinie für die programmgesteuerte Identifizierung.
Es ist wichtig zu beachten, dass ein Namensraum eine einzige SAS-Richtlinie hat, die jede Entität innerhalb davon beeinflusst, während Warteschlangen und Themen ihre eigenen individuellen SAS-Richtlinien für eine granularere Kontrolle haben können.
Aufzählung
# 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>
Privilegieneskalation
Post-Exploitation
Az - Service Bus Post Exploitation
Referenzen
- https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-cli
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.