Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-services/aws-mq-enum.md
2025-10-09 10:28:34 +00:00

3.4 KiB

AWS - MQ Enum

{{#include ../../../banners/hacktricks-training.md}}

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

# 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

{{#ref}} ../aws-privilege-escalation/aws-mq-privesc/README.md {{#endref}}

Accesso non autenticato

{{#ref}} ../aws-unauthenticated-enum-access/aws-mq-unauthenticated-enum/README.md {{#endref}}

Persistenza

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

Riferimenti

{{#include ../../../banners/hacktricks-training.md}}