AWS - MQ Enum

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

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

AWS - MQ Privesc

Unauthenticated Access

AWS - MQ Unauthenticated Enum

Persistence

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

References

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks