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

100 lines
7.2 KiB
Markdown
Raw Normal View History

# 5671,5672 - Pentesting AMQP
2022-04-28 16:01:33 +00:00
{% 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)
2022-04-28 16:01:33 +00:00
<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
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ** est un **logiciel de mise en file d'attente de messages** également connu sous le nom de _courtier de messages_ ou _gestionnaire de files d'attente._ En termes simples ; c'est un logiciel où des files d'attente sont définies, auxquelles les applications se connectent pour transférer un message ou des messages.\
> Un **message peut inclure n'importe quel type d'information**. Il pourrait, par exemple, contenir des informations sur un processus ou une tâche qui devrait commencer sur une autre application (qui pourrait même être sur un autre serveur), ou il pourrait s'agir simplement d'un message texte. Le logiciel de gestion de files d'attente stocke les messages jusqu'à ce qu'une application réceptrice se connecte et prenne un message de la file d'attente. L'application réceptrice traite ensuite le message.\
Definition from .
**Default port**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Énumération
### Manuel
```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)
```
### Automatique
```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-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**STOMP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Autres ports RabbitMQ
Dans [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html), vous pouvez trouver que **rabbitmq utilise plusieurs ports** :
* **1883, 8883** : ([clients MQTT](http://mqtt.org) sans et avec TLS, si le [plugin MQTT](https://www.rabbitmq.com/mqtt.html) est activé. [**En savoir plus sur la façon de pentester MQTT ici**](1883-pentesting-mqtt-mosquitto.md).
* **4369 : epmd**, un service de découverte de pairs utilisé par les nœuds RabbitMQ et les outils CLI. [**En savoir plus sur la façon de pentester ce service ici**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671** : utilisés par les clients AMQP 0-9-1 et 1.0 sans et avec TLS
* **15672** : [API HTTP](https://www.rabbitmq.com/management.html) clients, [interface de gestion](https://www.rabbitmq.com/management.html) et [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (uniquement si le [plugin de gestion](https://www.rabbitmq.com/management.html) est activé). [**En savoir plus sur la façon de pentester ce service ici**](15672-pentesting-rabbitmq-management.md).
* 15674 : clients STOMP-over-WebSockets (uniquement si le [plugin Web STOMP](https://www.rabbitmq.com/web-stomp.html) est activé)
* 15675 : clients MQTT-over-WebSockets (uniquement si le [plugin Web MQTT](https://www.rabbitmq.com/web-mqtt.html) est activé)
* 15692 : métriques Prometheus (uniquement si le [plugin Prometheus](https://www.rabbitmq.com/prometheus.html) est activé)
* 25672 : utilisé pour la communication entre nœuds et les outils CLI (port du serveur de distribution Erlang) et est alloué à partir d'une plage dynamique (limité à un seul port par défaut, calculé comme port AMQP + 20000). À moins que des connexions externes sur ces ports ne soient vraiment nécessaires (par exemple, le cluster utilise [fédération](https://www.rabbitmq.com/federation.html) ou des outils CLI sont utilisés sur des machines en dehors du sous-réseau), ces ports ne devraient pas être exposés publiquement. Voir [guide de mise en réseau](https://www.rabbitmq.com/networking.html) pour plus de détails. **Seulement 9 de ces ports ouverts sur Internet**.
* 35672-35682 : utilisés par les outils CLI (ports clients de distribution Erlang) pour la communication avec les nœuds et sont alloués à partir d'une plage dynamique (calculée comme port de distribution du serveur + 10000 à travers le port de distribution du serveur + 10010). Voir [guide de mise en réseau](https://www.rabbitmq.com/networking.html) pour plus de détails.
* 61613, 61614 : [clients STOMP](https://stomp.github.io/stomp-specification-1.2.html) sans et avec TLS (uniquement si le [plugin STOMP](https://www.rabbitmq.com/stomp.html) est activé). Moins de 10 appareils avec ce port ouvert et principalement UDP pour les nœuds DHT.
## Shodan
2020-10-01 14:38:08 +00:00
* `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 %}