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

99 lines
6.9 KiB
Markdown

# 5671,5672 - Pentesting AMQP
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basic Information
De [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ** é um **software de enfileiramento de mensagens** também conhecido como _broker de mensagens_ ou _gerenciador de filas._ 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 começar em outra aplicação (que pode até estar em outro servidor), ou pode ser apenas uma simples mensagem de texto. O software 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 .
**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
```
### Brute Force
* [**AMQP Protocol Brute-Force**](../generic-hacking/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**STOMP Protocol Brute-Force**](../generic-hacking/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Outras portas do RabbitMQ
Em [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) você pode encontrar que **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 pentesting em MQTT aqui**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, um serviço de descoberta de pares usado por nós RabbitMQ e ferramentas CLI. [**Saiba mais sobre como fazer pentesting 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**: [API HTTP](https://www.rabbitmq.com/management.html) clientes, [UI de gerenciamento](https://www.rabbitmq.com/management.html) e [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (apenas se o [plugin de gerenciamento](https://www.rabbitmq.com/management.html) estiver habilitado). [**Saiba mais sobre como fazer pentesting neste serviço aqui**](15672-pentesting-rabbitmq-management.md).
* 15674: clientes STOMP-over-WebSockets (apenas se o [plugin Web STOMP](https://www.rabbitmq.com/web-stomp.html) estiver habilitado)
* 15675: clientes MQTT-over-WebSockets (apenas se o [plugin Web MQTT](https://www.rabbitmq.com/web-mqtt.html) estiver habilitado)
* 15692: métricas Prometheus (apenas se o [plugin Prometheus](https://www.rabbitmq.com/prometheus.html) estiver habilitado)
* 25672: usado para comunicação entre nós e ferramentas CLI (porta do servidor de distribuição Erlang) e é alocado de um intervalo dinâmico (limitado a uma única porta por padrão, computada como porta AMQP + 20000). A menos que conexões externas nessas portas sejam realmente necessárias (por exemplo, o cluster usa [federation](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 de cliente de distribuição Erlang) para comunicação com nós e é alocada de um intervalo dinâmico (computada 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 (apenas 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`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}