Az - Service Bus Enum
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
Service Bus
Azure Service Bus 是一个基于云的 消息服务,旨在实现 应用程序不同部分或独立应用程序之间的可靠通信。它充当一个安全的中介,确保消息安全送达,即使发送者和接收者并不同时操作。通过解耦系统,它允许应用程序独立工作,同时仍然交换数据或指令。它特别适用于需要在多个工作者之间进行负载均衡、可靠消息传递或复杂协调的场景,例如按顺序处理任务或安全管理访问。
Key Concepts
- Namespaces: 消息系统中的命名空间是一个逻辑容器,用于组织和管理消息组件、队列和主题。它提供一个隔离的环境,应用程序可以在其中发送、接收和处理消息。队列和主题在 Service Bus 命名空间内共享相同的基础设施和配置,但它们独立操作而不相互交互。
- Queues: 其目的是存储消息,直到接收者准备好。
- 消息是有序的、带时间戳的,并且持久存储。
- 以拉取模式(按需检索)交付给一个消费者。
- 可以配置为在消息共享时自动删除,或在“Peek lock”模式下,消费者需要确认可以删除。如果没有确认,消息将返回队列。
- 支持点对点通信。
- Topics: 发布-订阅消息,用于广播。
- 多个独立的订阅接收消息的副本。
- 每个订阅就像主题内部的一个队列。
- 订阅可以有规则/过滤器来控制交付或添加元数据。
服务总线端点/连接字符串是:
https://<namespace>.servicebus.windows.net:443/
高级功能
一些高级功能包括:
- 消息会话:确保FIFO处理并支持请求-响应模式。
- 自动转发:在同一命名空间内在队列或主题之间转移消息。
- 死信处理:捕获无法投递的消息以供审查。
- 定时投递:延迟消息处理以进行未来任务。
- 消息延迟:推迟消息检索直到准备好。
- 事务:将操作分组为原子执行。
- 过滤器和操作:应用规则以过滤或注释消息。
- 空闲自动删除:在不活动后删除队列(最小:5分钟)。
- 重复检测:在重发期间删除重复消息。
- 批量删除:批量删除过期或不必要的消息。
本地身份验证
az cli参数中的 --disable-local-auth 用于控制是否为您的Service Bus命名空间启用 本地身份验证(允许使用共享访问签名(SAS)密钥)。
- 当disable设置为 true:禁用使用SAS密钥的本地身份验证,允许使用Entra ID身份验证。
- 当disable设置为 false(默认):同时提供SAS本地身份验证和Entra ID身份验证,您可以使用包含SAS密钥的连接字符串访问您的Service Bus资源。
授权规则 / SAS策略
SAS策略定义了Azure Service Bus实体命名空间(最重要的一个)、队列和主题的访问权限。每个策略具有以下组件:
- 权限:复选框以指定访问级别:
- 管理:授予对实体的完全控制,包括配置和权限管理。
- 发送:允许向实体发送消息。
- 监听:允许从实体接收消息。
- 主密钥和次密钥:这些是用于生成安全令牌以进行身份验证的加密密钥。
- 主连接字符串和次连接字符串:预配置的连接字符串,包括端点和密钥,便于在应用程序中使用。
- SAS策略ARM ID:用于程序识别的Azure资源管理器(ARM)路径。
需要注意的是,一个命名空间只有一个SAS策略,这会影响其中的每个实体,而队列和主题可以拥有各自的SAS策略以实现更细粒度的控制。
枚举
# 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 Post Exploitation
参考文献
- https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-cli
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

