Az - Service Bus Enum
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Service Bus
Azure Service Bus to oparta na chmurze usługa komunikacyjna, zaprojektowana w celu umożliwienia niezawodnej komunikacji między różnymi częściami aplikacji lub oddzielnymi aplikacjami. Działa jako bezpieczny pośrednik, zapewniając, że wiadomości są bezpiecznie dostarczane, nawet jeśli nadawca i odbiorca nie działają jednocześnie. Dzięki odseparowaniu systemów, pozwala aplikacjom działać niezależnie, jednocześnie wymieniając dane lub instrukcje. Jest szczególnie przydatna w scenariuszach wymagających równoważenia obciążenia między wieloma pracownikami, niezawodnego dostarczania wiadomości lub złożonej koordynacji, takiej jak przetwarzanie zadań w kolejności lub bezpieczne zarządzanie dostępem.
Kluczowe pojęcia
- Namespaces: Przestrzeń nazw w systemach komunikacyjnych to logiczny kontener, który organizuje i zarządza komponentami komunikacyjnymi, kolejkami i tematami. Zapewnia izolowane środowisko, w którym aplikacje mogą wysyłać, odbierać i przetwarzać wiadomości. Kolejki i tematy dzielą tę samą infrastrukturę i konfigurację w obrębie przestrzeni nazw Service Bus, ale działają niezależnie, nie wchodząc w interakcje ze sobą.
- Queues: jej celem jest przechowywanie wiadomości, aż odbiorca będzie gotowy.
- Wiadomości są uporządkowane, opatrzone znacznikami czasu i trwale przechowywane.
- Dostarczane w trybie pull (na żądanie) do jednego konsumenta.
- Może być skonfigurowana tak, aby po udostępnieniu wiadomości była automatycznie usuwana lub w trybie „Peek lock”, gdzie konsument musi potwierdzić, że może zostać usunięta. W przeciwnym razie wiadomość wróci do kolejki.
- Obsługuje komunikację punkt-punkt.
- Topics: Komunikacja publish-subscribe do nadawania.
- Wiele niezależnych subskrypcji otrzymuje kopie wiadomości.
- Każda subskrypcja jest jak kolejka wewnątrz tematu.
- Subskrypcje mogą mieć zasady/filtry do kontrolowania dostarczania lub dodawania metadanych.
Endpoint/ciąg połączenia usługi bus to:
https://<namespace>.servicebus.windows.net:443/
Zaawansowane funkcje
Niektóre zaawansowane funkcje to:
- Sesje wiadomości: Zapewnia przetwarzanie FIFO i wspiera wzorce żądanie-odpowiedź.
- Automatyczne przekazywanie: Przenosi wiadomości między kolejkami lub tematami w tej samej przestrzeni nazw.
- Dead-Lettering: Zbiera wiadomości, które nie mogą być dostarczone do przeglądu.
- Zaplanuje dostawę: Opóźnia przetwarzanie wiadomości na przyszłe zadania.
- Odwlekanie wiadomości: Odkłada pobieranie wiadomości do momentu, gdy będzie to możliwe.
- Transakcje: Grupuje operacje w atomowe wykonanie.
- Filtry i akcje: Stosuje zasady do filtrowania lub adnotacji wiadomości.
- Automatyczne usuwanie po bezczynności: Usuwa kolejki po braku aktywności (min: 5 minut).
- Wykrywanie duplikatów: Usuwa duplikaty wiadomości podczas ponownych wysyłek.
- Usuwanie wsadowe: Masowo usuwa wygasłe lub niepotrzebne wiadomości.
Uwierzytelnianie lokalne
Parametr --disable-local-auth z az cli służy do kontrolowania, czy uwierzytelnianie lokalne (pozwalające na użycie kluczy Shared Access Signature (SAS)) jest włączone dla Twojej przestrzeni nazw Service Bus.
- Gdy disable jest ustawione na true: Uwierzytelnianie lokalne przy użyciu kluczy SAS jest wyłączone, a uwierzytelnianie Entra ID jest dozwolone.
- Gdy disable jest ustawione na false (domyślnie): Zarówno uwierzytelnianie lokalne SAS, jak i uwierzytelnianie Entra ID są dostępne, a Ty możesz używać ciągów połączeń z kluczami SAS do uzyskiwania dostępu do zasobów Service Bus.
Reguła autoryzacji / Polityka SAS
Polityki SAS definiują uprawnienia dostępu do jednostek Azure Service Bus w przestrzeni nazw (najważniejsza), kolejek i tematów. Każda polityka ma następujące komponenty:
- Uprawnienia: Pola wyboru do określenia poziomów dostępu:
- Zarządzaj: Przyznaje pełną kontrolę nad jednostką, w tym zarządzanie konfiguracją i uprawnieniami.
- Wyślij: Pozwala na wysyłanie wiadomości do jednostki.
- Słuchaj: Pozwala na odbieranie wiadomości z jednostki.
- Klucze główne i pomocnicze: To klucze kryptograficzne używane do generowania bezpiecznych tokenów do uwierzytelniania dostępu.
- Ciągi połączeń główne i pomocnicze: Wstępnie skonfigurowane ciągi połączeń, które zawierają punkt końcowy i klucz do łatwego użycia w aplikacjach.
- ID polityki SAS ARM: Ścieżka Azure Resource Manager (ARM) do polityki w celu identyfikacji programowej.
Ważne jest, aby zauważyć, że przestrzeń nazw ma jedną politykę SAS, która wpływa na każdą jednostkę w jej obrębie, podczas gdy kolejki i tematy mogą mieć swoje własne indywidualne polityki SAS dla bardziej szczegółowej kontroli.
Enumeracja
# 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>
Eskalacja Uprawnień
Po Eksploatacji
Az - Service Bus Post Exploitation
Odniesienia
- 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
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

