# AWS - MQ Enum {{#include ../../../banners/hacktricks-training.md}} ## Amazon MQ ### Introducción a los intermediarios de mensajes **Los intermediarios de mensajes** sirven como intermediarios, facilitando la comunicación entre diferentes sistemas de software, que pueden estar construidos en diversas plataformas y programados en diferentes lenguajes. **Amazon MQ** simplifica el despliegue, operación y mantenimiento de intermediarios de mensajes en AWS. Proporciona servicios gestionados para **Apache ActiveMQ** y **RabbitMQ**, asegurando aprovisionamiento sin problemas y actualizaciones automáticas de versiones de software. ### AWS - RabbitMQ RabbitMQ es un prominente **software de cola de mensajes**, también conocido como _intermediario de mensajes_ o _gestor de colas_. Es fundamentalmente un sistema donde se configuran colas. Las aplicaciones interactúan con estas colas para **enviar y recibir mensajes**. Los mensajes en este contexto pueden llevar una variedad de información, que va desde comandos para iniciar procesos en otras aplicaciones (potencialmente en diferentes servidores) hasta simples mensajes de texto. Los mensajes son retenidos por el software del gestor de colas hasta que son recuperados y procesados por una aplicación receptora. AWS proporciona una solución fácil de usar para alojar y gestionar servidores RabbitMQ. ### AWS - ActiveMQ Apache ActiveMQ® es un destacado **intermediario de mensajes** de código abierto basado en Java, conocido por su versatilidad. Soporta múltiples protocolos estándar de la industria, ofreciendo amplia compatibilidad con clientes a través de una amplia gama de lenguajes y plataformas. Los usuarios pueden: - Conectarse con clientes escritos en JavaScript, C, C++, Python, .Net, y más. - Aprovechar el protocolo **AMQP** para integrar aplicaciones de diferentes plataformas. - Usar **STOMP** sobre websockets para intercambios de mensajes en aplicaciones web. - Gestionar dispositivos IoT con **MQTT**. - Mantener la infraestructura **JMS** existente y extender sus capacidades. La robustez y flexibilidad de ActiveMQ lo hacen adecuado para una multitud de requisitos de mensajería. ## Enumeración ```bash # List brokers aws mq list-brokers # Get broker info aws mq describe-broker --broker-id ## Find endpoints in .BrokerInstances ## Find if public accessible in .PubliclyAccessible # List usernames (only for ActiveMQ) aws mq list-users --broker-id # Get user info (PASSWORD NOT INCLUDED) aws mq describe-user --broker-id --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 --password --username --console-access ``` > [!WARNING] > TODO: Indicar cómo enumerar RabbitMQ y ActiveMQ internamente y cómo escuchar en todas las colas y enviar datos (envía PR si sabes cómo hacer esto) ## Privesc {{#ref}} ../aws-privilege-escalation/aws-mq-privesc.md {{#endref}} ## Acceso No Autenticado {{#ref}} ../aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum.md {{#endref}} ## Persistencia Si conoces las credenciales para acceder a la consola web de RabbitMQ, puedes crear un nuevo usuario con privilegios de administrador. ## Referencias - [https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html](https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html) - [https://activemq.apache.org/](https://activemq.apache.org/) {{#include ../../../banners/hacktricks-training.md}}