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
- https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html
- https://activemq.apache.org/
{{#include ../../../banners/hacktricks-training.md}}