# AWS - MQ Enum

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

## Amazon MQ

### Inleiding tot Boodskap Brokers

**Boodskap brokers** dien as intermediêre, wat kommunikasie tussen verskillende sagteware stelsels fasiliteer, wat op verskillende platforms gebou kan wees en in verskillende tale geprogrammeer kan wees. **Amazon MQ** vereenvoudig die ontplooiing, werking en onderhoud van boodskap brokers op AWS. Dit bied bestuurde dienste vir **Apache ActiveMQ** en **RabbitMQ**, wat naatlose voorsiening en outomatiese sagteware weergawe-opdaterings verseker.

### AWS - RabbitMQ

RabbitMQ is 'n prominente **boodskap-rygagte sagteware**, ook bekend as 'n _boodskap broker_ of _ry bestuurder_. Dit is fundamenteel 'n stelsel waar rye geconfigureer word. Toepassings koppel met hierdie rye om **boodskappe te stuur en te ontvang**. Boodskappe in hierdie konteks kan 'n verskeidenheid inligting dra, wat wissel van opdragte om prosesse op ander toepassings (potensieel op verskillende bedieners) te begin tot eenvoudige teksboodskappe. Die boodskappe word deur die ry-bestuurder sagteware gehou totdat dit deur 'n ontvangende toepassing opgehaal en verwerk word. AWS bied 'n maklik-om-te-gebruik oplossing vir die gasheer en bestuur van RabbitMQ bedieners.

### AWS - ActiveMQ

Apache ActiveMQ® is 'n toonaangewende oopbron, Java-gebaseerde **boodskap broker** bekend vir sy veelsydigheid. Dit ondersteun verskeie bedryfstandaard protokolle, wat uitgebreide kliëntkompatibiliteit oor 'n wye verskeidenheid tale en platforms bied. Gebruikers kan:

- Koppel met kliënte geskryf in JavaScript, C, C++, Python, .Net, en meer.
- Gebruik die **AMQP** protokol om toepassings van verskillende platforms te integreer.
- **STOMP** oor websockets gebruik vir webtoepassing boodskapuitruil.
- IoT-toestelle met **MQTT** bestuur.
- Bestaande **JMS** infrastruktuur onderhou en sy vermoëns uitbrei.

ActiveMQ se robuustheid en buigsaamheid maak dit geskik vir 'n verskeidenheid boodskap vereistes.

## Enumerasie
```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: Dui aan hoe om RabbitMQ en ActiveMQ intern te enumereer en hoe om in alle rye te luister en data te stuur (stuur PR as jy weet hoe om dit te doen)

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

As jy die akrediteerbesonderhede het om toegang tot die RabbitMQ webkonsol te verkry, kan jy 'n nuwe gebruiker met admin regte skep.

## References

- [https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html](https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html)
- [https://activemq.apache.org/](https://activemq.apache.org/)

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