AWS - MQ Enum

Reading time: 4 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Amazon MQ

Introduzione ai Message Brokers

Message brokers 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 message brokers su AWS. Fornisce servizi gestiti per Apache ActiveMQ e RabbitMQ, garantendo provisioning senza soluzione di continuità e aggiornamenti automatici delle versioni software.

AWS - RabbitMQ

RabbitMQ è un noto software di messaggistica, conosciuto anche come message broker o queue manager. 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 del queue-manager 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 message broker 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 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.

Enumerazione

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

warning

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

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks