hacktricks/network-services-pentesting/5671-5672-pentesting-amqp.md

91 lines
7.9 KiB
Markdown

# 5671,5672 - Pentesting AMQP
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Trabalha numa **empresa de cibersegurança**? Quer ver a sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* Adquira o [**material oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Informações Básicas
**RabbitMQ** é um **software de filas de mensagens** também conhecido como _message broker_ ou _queue manager_. Simplificando; é um software onde filas são definidas, às quais as aplicações se conectam para transferir uma mensagem ou mensagens.\
Uma **mensagem pode incluir qualquer tipo de informação**. Pode, por exemplo, conter informações sobre um processo ou tarefa que deve iniciar em outra aplicação (que pode até estar em outro servidor), ou pode ser apenas uma simples mensagem de texto. O software do gerenciador de filas armazena as mensagens até que uma aplicação receptora se conecte e retire uma mensagem da fila. A aplicação receptora então processa a mensagem.\
Definição de [aqui](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html).
**Porta padrão**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Enumeração
### Manual
```python
import amqp
#By default it uses default credentials "guest":"guest"
conn = amqp.connection.Connection(host="<IP>", port=5672, virtual_host="/")
conn.connect()
for k, v in conn.server_properties.items():
print(k, v)
```
### Automático
```bash
nmap -sV -Pn -n -T4 -p 5672 --script amqp-info <IP>
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
| amqp-info:
| capabilities:
| publisher_confirms: YES
| exchange_exchange_bindings: YES
| basic.nack: YES
| consumer_cancel_notify: YES
| copyright: Copyright (C) 2007-2013 GoPivotal, Inc.
| information: Licensed under the MPL. See http://www.rabbitmq.com/
| platform: Erlang/OTP
| product: RabbitMQ
| version: 3.1.5
| mechanisms: PLAIN AMQPLAIN
|_ locales: en_US
```
### Força Bruta
* [**Força Bruta no Protocolo AMQP**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**Força Bruta no Protocolo STOMP**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Outras portas do RabbitMQ
A partir de [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) você pode encontrar que **o rabbitmq usa várias portas**:
* **1883, 8883**: (clientes [MQTT](http://mqtt.org) sem e com TLS, se o [plugin MQTT](https://www.rabbitmq.com/mqtt.html) estiver habilitado. [**Saiba mais sobre como fazer pentest em MQTT aqui**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, um serviço de descoberta de pares usado pelos nós do RabbitMQ e ferramentas CLI. [**Saiba mais sobre como fazer pentest neste serviço aqui**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: usados por clientes AMQP 0-9-1 e 1.0 sem e com TLS
* **15672**: clientes da [API HTTP](https://www.rabbitmq.com/management.html), [interface de gerenciamento](https://www.rabbitmq.com/management.html) e [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (somente se o [plugin de gerenciamento](https://www.rabbitmq.com/management.html) estiver habilitado). [**Saiba mais sobre como fazer pentest neste serviço aqui**](15672-pentesting-rabbitmq-management.md).
* 15674: clientes STOMP-over-WebSockets (somente se o [plugin Web STOMP](https://www.rabbitmq.com/web-stomp.html) estiver habilitado)
* 15675: clientes MQTT-over-WebSockets (somente se o [plugin Web MQTT](https://www.rabbitmq.com/web-mqtt.html) estiver habilitado)
* 15692: métricas do Prometheus (somente se o [plugin Prometheus](https://www.rabbitmq.com/prometheus.html) estiver habilitado)
* 25672: usado para comunicação inter-nós e ferramentas CLI (porta do servidor de distribuição Erlang) e é alocado de uma faixa dinâmica (limitado a uma única porta por padrão, calculado como porta AMQP + 20000). A menos que conexões externas nessas portas sejam realmente necessárias (por exemplo, o cluster usa [federação](https://www.rabbitmq.com/federation.html) ou ferramentas CLI são usadas em máquinas fora da sub-rede), essas portas não devem ser expostas publicamente. Veja o [guia de rede](https://www.rabbitmq.com/networking.html) para detalhes. **Apenas 9 dessas portas abertas na internet**.
* 35672-35682: usadas por ferramentas CLI (portas do cliente de distribuição Erlang) para comunicação com nós e é alocado de uma faixa dinâmica (calculado como porta de distribuição do servidor + 10000 até porta de distribuição do servidor + 10010). Veja o [guia de rede](https://www.rabbitmq.com/networking.html) para detalhes.
* 61613, 61614: clientes [STOMP](https://stomp.github.io/stomp-specification-1.2.html) sem e com TLS (somente se o [plugin STOMP](https://www.rabbitmq.com/stomp.html) estiver habilitado). Menos de 10 dispositivos com esta porta aberta e principalmente UDP para nós DHT.
## Shodan
* `AMQP`
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-me no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>