Az - Service Bus Enum

Reading time: 9 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Service Bus

Azure Service Bus est un service de messagerie basé sur le cloud conçu pour permettre une communication fiable entre différentes parties d'une application ou des applications séparées. Il agit comme un intermédiaire sécurisé, garantissant que les messages sont livrés en toute sécurité, même si l'expéditeur et le destinataire ne fonctionnent pas simultanément. En découplant les systèmes, il permet aux applications de fonctionner indépendamment tout en échangeant des données ou des instructions. Il est particulièrement utile pour des scénarios nécessitant un équilibrage de charge entre plusieurs travailleurs, une livraison fiable des messages ou une coordination complexe, comme le traitement des tâches dans l'ordre ou la gestion sécurisée des accès.

Concepts Clés

  1. Namespaces : Un namespace dans les systèmes de messagerie est un conteneur logique qui organise et gère les composants de messagerie, les files d'attente et les sujets. Il fournit un environnement isolé où les applications peuvent envoyer, recevoir et traiter des messages. Les files d'attente et les sujets partagent la même infrastructure et configuration au sein d'un namespace Service Bus, mais ils fonctionnent indépendamment sans interagir les uns avec les autres.
  2. Queues : son but est de stocker les messages jusqu'à ce que le destinataire soit prêt.
  • Les messages sont ordonnés, horodatés et stockés de manière durable.
  • Livrés en mode pull (récupération à la demande) à un consommateur.
  • Il peut être configuré de sorte que lorsque le message est partagé, il soit automatiquement supprimé ou en mode "Peek lock" où le consommateur doit reconnaître qu'il peut être supprimé. Sinon, le message retournera à la file d'attente.
  • Prend en charge la communication point à point.
  1. Topics : Messagerie publish-subscribe pour la diffusion.
  • Plusieurs abonnements indépendants reçoivent des copies des messages.
  • Chaque abonnement est comme une file d'attente à l'intérieur du sujet.
  • Les abonnements peuvent avoir des règles/filtres pour contrôler la livraison ou ajouter des métadonnées.

La chaîne de connexion/point de terminaison du service bus est :

bash
https://<namespace>.servicebus.windows.net:443/

Fonctionnalités Avancées

Certaines fonctionnalités avancées sont :

  • Message Sessions : Assure le traitement FIFO et prend en charge les modèles de demande-réponse.
  • Auto-Forwarding : Transfère des messages entre des files d'attente ou des sujets dans le même espace de noms.
  • Dead-Lettering : Capture les messages non livrables pour examen.
  • Scheduled Delivery : Retarde le traitement des messages pour des tâches futures.
  • Message Deferral : Retarde la récupération des messages jusqu'à ce qu'ils soient prêts.
  • Transactions : Regroupe les opérations en exécution atomique.
  • Filters & Actions : Applique des règles pour filtrer ou annoter les messages.
  • Auto-Delete on Idle : Supprime les files d'attente après une période d'inactivité (min : 5 minutes).
  • Duplicate Detection : Supprime les messages en double lors des renvois.
  • Batch Deletion : Supprime en masse les messages expirés ou inutiles.

Authentification Locale

Le paramètre --disable-local-auth de az cli est utilisé pour contrôler si l'authentification locale (permettant l'utilisation de clés de signature d'accès partagé (SAS)) est activée pour votre espace de noms Service Bus.

  • Lorsque disable est défini sur true : L'authentification locale utilisant des clés SAS est désactivée et l'authentification par ID Entra est autorisée.
  • Lorsque disable est défini sur false (par défaut) : L'authentification locale SAS et l'authentification par ID Entra sont disponibles et vous pouvez utiliser des chaînes de connexion avec des clés SAS pour accéder à vos ressources Service Bus.

Règle d'Autorisation / Politique SAS

Les politiques SAS définissent les autorisations d'accès pour les entités d'espace de noms Azure Service Bus (la plus importante), les files d'attente et les sujets. Chaque politique a les composants suivants :

  • Permissions : Cases à cocher pour spécifier les niveaux d'accès :
  • Gérer : Accorde un contrôle total sur l'entité, y compris la gestion de la configuration et des autorisations.
  • Envoyer : Permet d'envoyer des messages à l'entité.
  • Écouter : Permet de recevoir des messages de l'entité.
  • Clés Primaires et Secondaires : Ce sont des clés cryptographiques utilisées pour générer des jetons sécurisés pour authentifier l'accès.
  • Chaînes de Connexion Primaires et Secondaires : Chaînes de connexion préconfigurées qui incluent le point de terminaison et la clé pour une utilisation facile dans les applications.
  • ID ARM de Politique SAS : Le chemin Azure Resource Manager (ARM) vers la politique pour identification programmatique.

Il est important de noter qu'un espace de noms a une seule politique SAS qui affecte chaque entité à l'intérieur, tandis que les files d'attente et les sujets peuvent avoir leurs propres politiques SAS individuelles pour un contrôle plus granulaire.

Énumération

bash
# 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>

Escalade de Privilèges

Az - Service Bus Privesc

Post Exploitation

Az - Service Bus Post Exploitation

Références

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks