Files
hacktricks-cloud/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md

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

  1. 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.
  1. 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.
  1. 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

{{#include ../../../banners/hacktricks-training.md}}