AWS - MQ Enum

Support HackTricks

Amazon MQ

Introduzione ai Broker di Messaggi

I broker di messaggi fungono da intermediari, facilitando la comunicazione tra diversi sistemi software, che possono essere costruiti su piattaforme varie e programmati in lingue diverse. Amazon MQ semplifica il deployment, l'operazione e la manutenzione dei broker di messaggi su AWS. Fornisce servizi gestiti per Apache ActiveMQ e RabbitMQ, garantendo un provisioning senza soluzione di continuità e aggiornamenti automatici delle versioni software.

AWS - RabbitMQ

RabbitMQ è un noto software di gestione delle code di messaggi, conosciuto anche come broker di messaggi o gestore di code. Fondamentalmente è un sistema in cui le code sono configurate. Le applicazioni interagiscono con queste code per inviare e ricevere messaggi. I messaggi in questo contesto possono contenere una varietà di informazioni, che vanno da comandi per avviare processi su altre applicazioni (potenzialmente su server diversi) a semplici messaggi di testo. I messaggi sono trattenuti dal software gestore di code fino a quando non vengono recuperati e elaborati da un'applicazione ricevente. AWS fornisce una soluzione facile da usare per ospitare e gestire i server RabbitMQ.

AWS - ActiveMQ

Apache ActiveMQ® è un broker di messaggi open-source leader, basato su Java, noto per la sua versatilità. Supporta più protocolli standard del settore, offrendo ampia compatibilità con i client su una vasta gamma di lingue e piattaforme. Gli utenti possono:

  • Connettersi con client scritti in JavaScript, C, C++, Python, .Net e altro.

  • Sfruttare il protocollo AMQP per integrare applicazioni provenienti da diverse piattaforme.

  • Utilizzare STOMP su websockets per scambi di messaggi tra applicazioni web.

  • Gestire dispositivi IoT con MQTT.

  • Mantenere l'infrastruttura JMS esistente ed estenderne le capacità.

La robustezza e la flessibilità di ActiveMQ lo rendono adatto a una moltitudine di requisiti di messaggistica.

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: Indica come enumerare RabbitMQ e ActiveMQ internamente e come ascoltare in tutte le code e inviare dati (invia PR se sai come farlo)

Privesc

AWS - MQ Privesc

Accesso non autenticato

AWS - MQ Unauthenticated Enum

Persistenza

Se conosci le credenziali per accedere alla console web di RabbitMQ, puoi creare un nuovo utente con privilegi di amministratore.

Riferimenti

Supporta HackTricks

Last updated