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

3.6 KiB

AWS - MQ Enum

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

Amazon MQ

Wprowadzenie do brokerów wiadomości

Brokerzy wiadomości działają jako pośrednicy, ułatwiając komunikację między różnymi systemami oprogramowania, które mogą być zbudowane na różnych platformach i zaprogramowane w różnych językach. Amazon MQ upraszcza wdrażanie, działanie i utrzymanie brokerów wiadomości na AWS. Oferuje zarządzane usługi dla Apache ActiveMQ i RabbitMQ, zapewniając bezproblemowe dostarczanie i automatyczne aktualizacje wersji oprogramowania.

AWS - RabbitMQ

RabbitMQ to prominentne oprogramowanie do kolejkowania wiadomości, znane również jako broker wiadomości lub menedżer kolejek. Jest to zasadniczo system, w którym konfigurowane są kolejki. Aplikacje łączą się z tymi kolejkami, aby wysyłać i odbierać wiadomości. Wiadomości w tym kontekście mogą zawierać różnorodne informacje, od poleceń inicjujących procesy w innych aplikacjach (potencjalnie na różnych serwerach) po proste wiadomości tekstowe. Wiadomości są przechowywane przez oprogramowanie menedżera kolejek, aż zostaną pobrane i przetworzone przez aplikację odbierającą. AWS oferuje łatwe w użyciu rozwiązanie do hostowania i zarządzania serwerami RabbitMQ.

AWS - ActiveMQ

Apache ActiveMQ® to wiodący open-source'owy, oparty na Javie broker wiadomości, znany ze swojej wszechstronności. Obsługuje wiele standardowych protokołów branżowych, oferując szeroką kompatybilność z klientami w różnych językach i na różnych platformach. Użytkownicy mogą:

  • Łączyć się z klientami napisanymi w JavaScript, C, C++, Python, .Net i innych.
  • Wykorzystać protokół AMQP do integracji aplikacji z różnych platform.
  • Używać STOMP przez websockets do wymiany wiadomości w aplikacjach internetowych.
  • Zarządzać urządzeniami IoT za pomocą MQTT.
  • Utrzymywać istniejącą infrastrukturę JMS i rozszerzać jej możliwości.

Solidność i elastyczność ActiveMQ sprawiają, że jest odpowiedni do wielu wymagań dotyczących przesyłania wiadomości.

Enumeracja

# 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: Wskaź, jak enumerować RabbitMQ i ActiveMQ wewnętrznie oraz jak nasłuchiwać na wszystkich kolejkach i wysyłać dane (wyślij PR, jeśli wiesz, jak to zrobić)

Privesc

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

Unauthenticated Access

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

Persistence

Jeśli znasz dane uwierzytelniające do dostępu do konsoli internetowej RabbitMQ, możesz utworzyć nowego użytkownika z uprawnieniami administratora.

References

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