Az - Service Bus Enum

Reading time: 8 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Service Bus

Azure Service Bus je usluga poruka zasnovana na oblaku koja je dizajnirana da omogući pouzdanu komunikaciju između različitih delova aplikacije ili odvojenih aplikacija. Deluje kao siguran posrednik, osiguravajući da poruke budu sigurno isporučene, čak i ako pošiljalac i primalac ne rade istovremeno. Razdvajanjem sistema, omogućava aplikacijama da rade nezavisno dok i dalje razmenjuju podatke ili uputstva. Posebno je korisna za scenarije koji zahtevaju ravnotežu opterećenja među više radnika, pouzdanu isporuku poruka ili složenu koordinaciju, kao što je obrada zadataka u redosledu ili sigurno upravljanje pristupom.

Ključni koncepti

  1. Namespaces: Namespace u sistemima poruka je logički kontejner koji organizuje i upravlja komponentama poruka, redovima i temama. Pruža izolovano okruženje u kojem aplikacije mogu slati, primati i obrađivati poruke. Redovi i teme dele istu infrastrukturu i konfiguraciju unutar Service Bus namespace-a, ali funkcionišu nezavisno bez međusobnog delovanja.
  2. Queues: Njegova svrha je da čuva poruke dok primalac ne bude spreman.
  • Poruke su uređene, vremenski označene i trajno sačuvane.
  • Isporučuju se u režimu povlačenja (na zahtev) jednom potrošaču.
  • Može se konfigurisati tako da kada se poruka podeli, automatski se obriše ili u režimu “Peek lock” gde potrošač mora da potvrdi da može biti obrisana. Ako ne, poruka će se vratiti u red.
  • Podržava komunikaciju tačka-tačka.
  1. Topics: Publish-subscribe poruke za emitovanje.
  • Više nezavisnih pretplata prima kopije poruka.
  • Svaka pretplata je poput reda unutar teme.
  • Pretplate mogu imati pravila/filtere za kontrolu isporuke ili dodavanje metapodataka.

Krajna tačka/veza servisa bus je:

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

Napredne Funkcije

Neke napredne funkcije su:

  • Message Sessions: Osigurava FIFO obradu i podržava obrasce zahteva-odgovora.
  • Auto-Forwarding: Prenosi poruke između redova ili tema u istom imenskom prostoru.
  • Dead-Lettering: Zapisuje neisporučive poruke za pregled.
  • Scheduled Delivery: Odlaže obradu poruka za buduće zadatke.
  • Message Deferral: Odlaže preuzimanje poruka dok ne budu spremne.
  • Transactions: Grupira operacije u atomsko izvršenje.
  • Filters & Actions: Primena pravila za filtriranje ili anotaciju poruka.
  • Auto-Delete on Idle: Briše redove nakon neaktivnosti (min: 5 minuta).
  • Duplicate Detection: Uklanja duplikate poruka tokom ponovnog slanja.
  • Batch Deletion: Masovno briše isteknute ili nepotrebne poruke.

Lokalna Autentifikacija

--disable-local-auth iz az cli parametra se koristi za kontrolu da li je lokalna autentifikacija (dozvoljava korišćenje Shared Access Signature (SAS) ključeva) omogućena za vaš Service Bus imenski prostor.

  • Kada je disable postavljen na true: Lokalna autentifikacija korišćenjem SAS ključeva je onemogućena i dozvoljena je Entra ID autentifikacija.
  • Kada je disable postavljen na false (podrazumevano): I lokalna autentifikacija SAS-om i Entra ID autentifikacija su dostupne i možete koristiti konekcione stringove sa SAS ključevima za pristup vašim Service Bus resursima.

Autorizacija-Pravila / SAS Politika

SAS Politike definišu dozvole za pristup Azure Service Bus entitetima imenskog prostora (najvažnija), redovima i temama. Svaka politika ima sledeće komponente:

  • Permissions: Potvrdni okviri za specifikaciju nivoa pristupa:
  • Manage: Daje potpunu kontrolu nad entitetom, uključujući upravljanje konfiguracijom i dozvolama.
  • Send: Dozvoljava slanje poruka entitetu.
  • Listen: Dozvoljava primanje poruka od entiteta.
  • Primary and Secondary Keys: Ovi su kriptografski ključevi korišćeni za generisanje sigurnih tokena za autentifikaciju pristupa.
  • Primary and Secondary Connection Strings: Prekonfigurisani konekcioni stringovi koji uključuju krajnju tačku i ključ za laku upotrebu u aplikacijama.
  • SAS Policy ARM ID: Putanja Azure Resource Manager-a (ARM) do politike za programatsku identifikaciju.

Važno je napomenuti da imenski prostor ima jednu SAS politiku koja utiče na svaki entitet unutar njega, dok redovi i teme mogu imati svoje pojedinačne SAS politike za precizniju kontrolu.

Enumeracija

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>

Eskalacija privilegija

Az - Service Bus Privesc

Post Eksploatacija

Az - Service Bus Post Exploitation

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks