8.6 KiB
Az - Service Bus Enum
{{#include ../../../banners/hacktricks-training.md}}
Service Bus
Azure Service Bus es un servicio de mensajería basado en la nube diseñado para habilitar una comunicación confiable entre diferentes partes de una aplicación o aplicaciones separadas. Actúa como un intermediario seguro, asegurando que los mensajes se entreguen de manera segura, incluso si el remitente y el receptor no están operando simultáneamente. Al desacoplar sistemas, permite que las aplicaciones funcionen de manera independiente mientras aún intercambian datos o instrucciones. Es particularmente útil para escenarios que requieren balanceo de carga entre múltiples trabajadores, entrega confiable de mensajes o coordinación compleja, como procesar tareas en orden o gestionar el acceso de manera segura.
Conceptos Clave
- Colas: su propósito es almacenar mensajes hasta que el receptor esté listo.
- Los mensajes están ordenados, tienen marca de tiempo y se almacenan de manera duradera.
- Se entregan en modo de extracción (recuperación bajo demanda).
- Soporta comunicación punto a punto.
- Temas: Mensajería de publicación-suscripción para difusión.
- Múltiples suscripciones independientes reciben copias de los mensajes.
- Las suscripciones pueden tener reglas/filtros para controlar la entrega o agregar metadatos.
- Soporta comunicación de muchos a muchos.
- Espacios de Nombres: Un contenedor para todos los componentes de mensajería, colas y temas, es como tu propia porción de un poderoso clúster de Azure, proporcionando capacidad dedicada y opcionalmente abarcando tres zonas de disponibilidad.
Características Avanzadas
Algunas características avanzadas son:
- Sesiones de Mensajes: Asegura el procesamiento FIFO y soporta patrones de solicitud-respuesta.
- Reenvío Automático: Transfiere mensajes entre colas o temas en el mismo espacio de nombres.
- Cartas Muertas: Captura mensajes no entregables para revisión.
- Entrega Programada: Retrasa el procesamiento de mensajes para tareas futuras.
- Diferimiento de Mensajes: Pospone la recuperación de mensajes hasta que esté listo.
- Transacciones: Agrupa operaciones en ejecución atómica.
- Filtros y Acciones: Aplica reglas para filtrar o anotar mensajes.
- Eliminación Automática en Inactividad: Elimina colas después de inactividad (mín: 5 minutos).
- Detección de Duplicados: Elimina mensajes duplicados durante reenvíos.
- Eliminación por Lotes: Elimina en bloque mensajes expirados o innecesarios.
Regla de Autorización / Política SAS
Las Políticas SAS definen los permisos de acceso para las entidades del espacio de nombres de Azure Service Bus (el más importante), colas y temas. Cada política tiene los siguientes componentes:
- Permisos: Casillas de verificación para especificar niveles de acceso:
- Administrar: Otorga control total sobre la entidad, incluyendo la configuración y gestión de permisos.
- Enviar: Permite enviar mensajes a la entidad.
- Escuchar: Permite recibir mensajes de la entidad.
- Claves Primarias y Secundarias: Estas son claves criptográficas utilizadas para generar tokens seguros para autenticar el acceso.
- Cadenas de Conexión Primarias y Secundarias: Cadenas de conexión preconfiguradas que incluyen el punto final y la clave para un uso fácil en aplicaciones.
- ID de Política SAS ARM: La ruta del Administrador de Recursos de Azure (ARM) a la política para identificación programática.
Espacio de Nombres
sku, regla de autorización,
Enumeración
{% tabs %} {% tab title="az cli" %} {% code overflow="wrap" %}
# 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>
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>
{% endcode %} {% endtab %}
{% tab title="Az PowerShell" %} {% code overflow="wrap" %}
Get-Command -Module Az.ServiceBus
# Retrieves details of a Service Bus namespace, including V2-specific features like additional metrics or configurations.
Get-AzServiceBusNamespaceV2 -ResourceGroupName <ResourceGroupName> -Name <NamespaceName>
# Retrieves the authorization rules for a Service Bus namespace, queue, or topic.
Get-AzServiceBusAuthorizationRule -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves the Geo-Disaster Recovery configuration for a Service Bus namespace, if it is enabled.
Get-AzServiceBusGeoDRConfiguration -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves the shared access keys for a specified authorization rule in a Service Bus namespace.
Get-AzServiceBusKey -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName> -Name <RuleName>
# Retrieves the migration state and details for a Service Bus namespace, if a migration is in progress.
Get-AzServiceBusMigration -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves properties and details about a Service Bus namespace.
Get-AzServiceBusNamespace -ResourceGroupName <ResourceGroupName> -Name <NamespaceName>
# Retrieves the network rule set for a Service Bus namespace, such as IP restrictions or virtual network access rules.
Get-AzServiceBusNetworkRuleSet -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves private endpoint connections for a Service Bus namespace.
Get-AzServiceBusPrivateEndpointConnection -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves private link resources associated with a Service Bus namespace.
Get-AzServiceBusPrivateLink -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves details of a specified queue in a Service Bus namespace.
Get-AzServiceBusQueue -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName> -Name <QueueName>
# Retrieves rules (filters and actions) for a subscription under a Service Bus topic.
Get-AzServiceBusRule -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName> -TopicName <TopicName> -SubscriptionName <SubscriptionName>
# Retrieves details of subscriptions for a specified Service Bus topic.
Get-AzServiceBusSubscription -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName> -TopicName <TopicName>
# Retrieves details of a specified topic in a Service Bus namespace.
Get-AzServiceBusTopic -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
{% endcode %} {% endtab %} {% endtabs %}
Escalación de Privilegios
{{#ref}} ../az-privilege-escalation/az-servicebus-privesc.md {{#endref}}
Post Explotación
{{#ref}} ../az-post-exploitation/az-servicebus-post-exploitation.md {{#endref}}
Referencias
- 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
{{#include ../../../banners/hacktricks-training.md}}