Az - Service Bus Enum

Reading time: 8 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Service Bus

Azure Service Bus - це хмарна служба обміну повідомленнями, призначена для забезпечення надійної комунікації між різними частинами програми або окремими програмами. Вона діє як безпечний посередник, забезпечуючи безпечну доставку повідомлень, навіть якщо відправник і отримувач не працюють одночасно. Відокремлюючи системи, вона дозволяє програмам працювати незалежно, при цьому обмінюючись даними або інструкціями. Це особливо корисно для сценаріїв, які вимагають балансування навантаження між кількома працівниками, надійної доставки повідомлень або складної координації, такої як обробка завдань у порядку або безпечне управління доступом.

Key Concepts

  1. Namespaces: Простір імен у системах обміну повідомленнями - це логічний контейнер, який організовує та керує компонентами обміну повідомленнями, чергами та темами. Він забезпечує ізольоване середовище, де програми можуть надсилати, отримувати та обробляти повідомлення. Черги та теми ділять одну й ту ж інфраструктуру та конфігурацію в просторі імен Service Bus, але працюють незалежно, не взаємодіючи одна з одною.
  2. Queues: її мета - зберігати повідомлення, поки отримувач не буде готовий.
  • Повідомлення упорядковані, мають часові мітки та надійно зберігаються.
  • Доставляються в режимі витягування (за запитом) одному споживачу.
  • Може бути налаштована так, що коли повідомлення ділиться, воно автоматично видаляється або в режимі "Peek lock", де споживач повинен підтвердити, що його можна видалити. Якщо ні, повідомлення повернеться до черги.
  • Підтримує точкову комунікацію.
  1. Topics: Публікація-підписка для трансляції.
  • Кілька незалежних підписок отримують копії повідомлень.
  • Кожна підписка - це як черга всередині теми.
  • Підписки можуть мати правила/фільтри для контролю доставки або додавання метаданих.

Точка доступу/рядок підключення служби обміну повідомленнями:

bash
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.

  • Коли disable встановлено на true: Локальна аутентифікація за допомогою ключів SAS вимкнена, а аутентифікація Entra ID дозволена.
  • Коли disable встановлено на 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: Попередньо налаштовані рядки підключення, які включають кінцеву точку та ключ для зручного використання в додатках.
  • SAS Policy ARM ID: Шлях Azure Resource Manager (ARM) до політики для програмної ідентифікації.

Важливо зазначити, що простір імен має єдину політику SAS, яка впливає на кожну сутність у ньому, тоді як черги та теми можуть мати свої власні індивідуальні політики SAS для більш детального контролю.

Перерахування

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 Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks