# 5671,5672 - Pentesting AMQP {{#include ../banners/hacktricks-training.md}} ## Grundlegende Informationen Von [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html): > **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 sich sogar auf einem anderen Server befinden 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.\ > Definition von . **Standardport**: 5672,5671 ``` PORT STATE SERVICE VERSION 5672/tcp open amqp RabbitMQ 3.1.5 (0-9) ``` ## Aufzählung ### Manuell ```python import amqp #By default it uses default credentials "guest":"guest" conn = amqp.connection.Connection(host="", port=5672, virtual_host="/") conn.connect() for k, v in conn.server_properties.items(): print(k, v) ``` ### Automatisch ```bash nmap -sV -Pn -n -T4 -p 5672 --script amqp-info 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-Protokoll Brute-Force**](../generic-hacking/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace) - [**STOMP-Protokoll Brute-Force**](../generic-hacking/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq) ## Andere RabbitMQ-Ports In [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) finden Sie, dass **RabbitMQ mehrere Ports verwendet**: - **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 darüber, wie man MQTT pentestet**](1883-pentesting-mqtt-mosquitto.md). - **4369: epmd**, ein Peer-Discovery-Dienst, der von RabbitMQ-Knoten und CLI-Tools verwendet wird. [**Erfahren Sie hier mehr darüber, wie man diesen Dienst pentestet**](4369-pentesting-erlang-port-mapper-daemon-epmd.md). - **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 darüber, wie man diesen Dienst pentestet**](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) - 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-Verteilungsserver-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-Verteilung-Client-Ports) zur Kommunikation mit Knoten und wird aus einem dynamischen Bereich zugewiesen (berechnet als Server-Verteilung-Port + 10000 bis Server-Verteilung-Port + 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 - `AMQP` {{#include ../banners/hacktricks-training.md}}