AWS - MQ Enum

Support HackTricks

Amazon MQ

Introduction aux courtiers de messages

Les courtiers de messages servent d'intermédiaires, facilitant la communication entre différents systèmes logiciels, qui peuvent être construits sur des plateformes variées et programmés dans différents langages. Amazon MQ simplifie le déploiement, l'exploitation et la maintenance des courtiers de messages sur AWS. Il fournit des services gérés pour Apache ActiveMQ et RabbitMQ, garantissant un approvisionnement sans faille et des mises à jour automatiques des versions logicielles.

AWS - RabbitMQ

RabbitMQ est un logiciel de file d'attente de messages de premier plan, également connu sous le nom de courtier de messages ou gestionnaire de files d'attente. C'est fondamentalement un système où des files d'attente sont configurées. Les applications interagissent avec ces files d'attente pour envoyer et recevoir des messages. Les messages dans ce contexte peuvent transporter une variété d'informations, allant des commandes pour initier des processus sur d'autres applications (potentiellement sur différents serveurs) à de simples messages texte. Les messages sont conservés par le logiciel de gestionnaire de files d'attente jusqu'à ce qu'ils soient récupérés et traités par une application réceptrice. AWS fournit une solution facile à utiliser pour héberger et gérer des serveurs RabbitMQ.

AWS - ActiveMQ

Apache ActiveMQ® est un courtier de messages open-source basé sur Java, reconnu pour sa polyvalence. Il prend en charge plusieurs protocoles standard de l'industrie, offrant une compatibilité client étendue à travers un large éventail de langages et de plateformes. Les utilisateurs peuvent :

  • Se connecter avec des clients écrits en JavaScript, C, C++, Python, .Net, et plus encore.

  • Tirer parti du protocole AMQP pour intégrer des applications de différentes plateformes.

  • Utiliser STOMP sur websockets pour les échanges de messages d'applications web.

  • Gérer des appareils IoT avec MQTT.

  • Maintenir l'infrastructure JMS existante et étendre ses capacités.

La robustesse et la flexibilité d'ActiveMQ le rendent adapté à une multitude de besoins en matière de messagerie.

Enumeration

# List brokers
aws mq list-brokers

# Get broker info
aws mq describe-broker --broker-id <broker-id>
## Find endpoints in .BrokerInstances
## Find if public accessible in .PubliclyAccessible

# List usernames (only for ActiveMQ)
aws mq list-users --broker-id <broker-id>

# Get user info (PASSWORD NOT INCLUDED)
aws mq describe-user --broker-id <broker-id> --username <username>

# Lits configurations (only for ActiveMQ)
aws mq list-configurations
## Here you can find if simple or LDAP authentication is used

# Creacte Active MQ user
aws mq create-user --broker-id <value> --password <value> --username <value> --console-access

TODO : Indiquer comment énumérer RabbitMQ et ActiveMQ en interne et comment écouter toutes les files d'attente et envoyer des données (envoyez une PR si vous savez comment faire cela)

Privesc

Accès non authentifié

Persistance

Si vous connaissez les identifiants pour accéder à la console web RabbitMQ, vous pouvez créer un nouvel utilisateur avec des privilèges d'administrateur.

Références

Soutenir HackTricks

Last updated