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

100 lines
7 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>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2024-01-03 10:42:55 +00:00
* 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.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
## Grundinformationen
2024-02-10 15:36:32 +00:00
Von [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
2024-02-08 21:36:35 +00:00
> **RabbitMQ** ist eine **Nachrichtenwarteschlangen-Software**, die auch als _Nachrichtenbroker_ oder _Warteschlangenmanager_ bekannt ist. Einfach gesagt; es ist Software, in der Warteschlangen definiert sind, mit denen Anwendungen verbunden sind, um eine Nachricht oder Nachrichten zu übertragen.\
> Eine **Nachricht kann jede Art von Informationen enthalten**. Sie könnte beispielsweise Informationen über einen Prozess oder eine Aufgabe enthalten, die in einer anderen Anwendung (die sogar auf einem anderen Server sein könnte) gestartet werden soll, oder es könnte sich einfach um eine einfache Textnachricht handeln. Die Warteschlangenmanager-Software speichert die Nachrichten, bis eine empfangende Anwendung sich verbindet und eine Nachricht von der Warteschlange abruft. Die empfangende Anwendung verarbeitet dann die Nachricht.\
2024-02-10 15:36:32 +00:00
Definition von .
2024-02-10 15:36:32 +00:00
**Standardport**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Enumeration
2024-02-10 15:36:32 +00:00
### Manuell
```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():
2024-02-10 15:36:32 +00:00
print(k, v)
```
2024-02-10 15:36:32 +00:00
### Automatisch
```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)
2024-02-10 15:36:32 +00:00
| 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
2024-02-10 15:36:32 +00:00
* [**AMQP-Protokoll Brute-Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**STOMP-Protokoll Brute-Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
2024-02-10 15:36:32 +00:00
## Andere RabbitMQ-Ports
In [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) finden Sie, dass **RabbitMQ mehrere Ports verwendet**:
2024-02-10 15:36:32 +00:00
* **1883, 8883**: ([MQTT-Clients](http://mqtt.org) ohne und mit TLS, wenn das [MQTT-Plugin](https://www.rabbitmq.com/mqtt.html) aktiviert ist. [**Erfahren Sie hier mehr über das Pentesting von MQTT**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, ein Peer-Discovery-Dienst, der von RabbitMQ-Knoten und CLI-Tools verwendet wird. [**Erfahren Sie hier mehr über das Pentesting dieses Dienstes**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
2024-02-10 15:36:32 +00:00
* **5672, 5671**: verwendet von AMQP 0-9-1 und 1.0-Clients ohne und mit TLS
* **15672**: [HTTP-API](https://www.rabbitmq.com/management.html) Clients, [Management-UI](https://www.rabbitmq.com/management.html) und [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (nur wenn das [Management-Plugin](https://www.rabbitmq.com/management.html) aktiviert ist). [**Erfahren Sie hier mehr über das Pentesting dieses Dienstes**](15672-pentesting-rabbitmq-management.md).
* 15674: STOMP-über-WebSockets-Clients (nur wenn das [Web STOMP-Plugin](https://www.rabbitmq.com/web-stomp.html) aktiviert ist)
* 15675: MQTT-über-WebSockets-Clients (nur wenn das [Web MQTT-Plugin](https://www.rabbitmq.com/web-mqtt.html) aktiviert ist)
2024-02-10 15:36:32 +00:00
* 15692: Prometheus-Metriken (nur wenn das [Prometheus-Plugin](https://www.rabbitmq.com/prometheus.html) aktiviert ist)
* 25672: verwendet für die Kommunikation zwischen Knoten und CLI-Tools (Erlang-Distributionsserver-Port) und wird aus einem dynamischen Bereich zugewiesen (standardmäßig auf einen einzelnen Port beschränkt, berechnet als AMQP-Port + 20000). Es sei denn, externe Verbindungen auf diesen Ports sind wirklich notwendig (z. B. verwendet der Cluster [Federation](https://www.rabbitmq.com/federation.html) oder CLI-Tools werden auf Maschinen außerhalb des Subnetzes verwendet), sollten diese Ports nicht öffentlich zugänglich sein. Siehe [Netzwerkanleitung](https://www.rabbitmq.com/networking.html) für Details. **Nur 9 dieser Ports sind im Internet geöffnet**.
* 35672-35682: verwendet von CLI-Tools (Erlang-Distributionsclient-Ports) zur Kommunikation mit Knoten und wird aus einem dynamischen Bereich zugewiesen (berechnet als Server-Distributionsport + 10000 bis Server-Distributionsport + 10010). Siehe [Netzwerkanleitung](https://www.rabbitmq.com/networking.html) für Details.
* 61613, 61614: [STOMP-Clients](https://stomp.github.io/stomp-specification-1.2.html) ohne und mit TLS (nur wenn das [STOMP-Plugin](https://www.rabbitmq.com/stomp.html) aktiviert ist). Weniger als 10 Geräte mit diesem Port geöffnet und hauptsächlich UDP für DHT-Knoten.
## Shodan
2020-10-01 14:38:08 +00:00
* `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>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2024-01-03 10:42:55 +00:00
* 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.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}