9.5 KiB
5671,5672 - Pentesting AMQP
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.
Grundlegende Informationen
Von cloudamqp:
RabbitMQ ist eine Nachrichtenwarteschlangen-Software, die auch als Message Broker oder Queue Manager bezeichnet wird. Einfach ausgedrückt handelt es sich um Software, in der Warteschlangen definiert sind, mit denen Anwendungen verbunden werden, um eine Nachricht oder Nachrichten zu übertragen.
Eine Nachricht kann jede Art von Informationen enthalten. Sie könnte zum Beispiel Informationen über einen Prozess oder eine Aufgabe enthalten, die auf einer anderen Anwendung starten soll (die sogar auf einem anderen Server sein könnte), oder es könnte sich einfach um eine einfache Textnachricht handeln. Die Queue-Manager-Software speichert die Nachrichten, bis eine empfangende Anwendung eine Nachricht aus 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)
Enumeration
Manuell
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)
Automatisch
Automatisierung ist ein wichtiger Aspekt bei der Durchführung von Penetrationstests. Durch die Automatisierung von Aufgaben können Zeit und Ressourcen gespart werden, während gleichzeitig die Effizienz und Genauigkeit verbessert werden. Es gibt verschiedene Tools und Techniken, die verwendet werden können, um den Penetrationstestprozess zu automatisieren.
Skripting
Das Schreiben von Skripten ist eine gängige Methode zur Automatisierung von Penetrationstests. Skripte können verwendet werden, um wiederholte Aufgaben zu automatisieren und komplexe Abläufe zu vereinfachen. Skriptsprachen wie Python, Ruby und PowerShell sind beliebte Optionen für das Schreiben von Penetrationstest-Skripten.
Frameworks
Frameworks sind Sammlungen von Tools und Bibliotheken, die speziell für die Automatisierung von Penetrationstests entwickelt wurden. Diese Frameworks bieten eine Vielzahl von Funktionen und Funktionen, die den Penetrationstestprozess vereinfachen und beschleunigen können. Beispiele für Penetrationstest-Frameworks sind Metasploit, Burp Suite und OWASP ZAP.
Tools
Es gibt eine Vielzahl von Tools, die speziell für die Automatisierung von Penetrationstests entwickelt wurden. Diese Tools bieten Funktionen wie Schwachstellenscans, Exploit-Tests und Berichterstellung. Beispiele für automatisierte Penetrationstest-Tools sind Nessus, OpenVAS und Nikto.
CI/CD-Pipelines
Continuous Integration/Continuous Deployment (CI/CD)-Pipelines können auch zur Automatisierung von Penetrationstests verwendet werden. Durch die Integration von Penetrationstests in den CI/CD-Prozess können Schwachstellen frühzeitig erkannt und behoben werden. Dies hilft, die Sicherheit von Anwendungen und Systemen zu verbessern.
Fazit
Die Automatisierung von Penetrationstests ist ein wichtiger Schritt, um die Effizienz und Genauigkeit von Tests zu verbessern. Durch die Verwendung von Skripting, Frameworks, Tools und CI/CD-Pipelines können Penetrationstests effektiver und effizienter durchgeführt werden. Es ist jedoch wichtig zu beachten, dass die Automatisierung den menschlichen Faktor nicht vollständig ersetzen kann und dass manuelle Überprüfungen und Analysen weiterhin erforderlich sind.
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
Andere RabbitMQ-Ports
Auf https://www.rabbitmq.com/networking.html finden Sie, dass RabbitMQ mehrere Ports verwendet:
- 1883, 8883: (MQTT-Clients ohne und mit TLS, wenn das MQTT-Plugin aktiviert ist. Erfahren Sie hier mehr über das Pentesting von MQTT.
- 4369: epmd, ein Peer-Discovery-Dienst, der von RabbitMQ-Nodes und CLI-Tools verwendet wird. Erfahren Sie hier mehr über das Pentesting dieses Dienstes.
- 5672, 5671: verwendet von AMQP 0-9-1 und 1.0-Clients ohne und mit TLS
- 15672: HTTP-API-Clients, Management-Benutzeroberfläche und rabbitmqadmin (nur wenn das Management-Plugin aktiviert ist). Erfahren Sie hier mehr über das Pentesting dieses Dienstes.
- 15674: STOMP-over-WebSockets-Clients (nur wenn das Web STOMP-Plugin aktiviert ist)
- 15675: MQTT-over-WebSockets-Clients (nur wenn das Web MQTT-Plugin aktiviert ist)
- 15692: Prometheus-Metriken (nur wenn das Prometheus-Plugin aktiviert ist)
- 25672: verwendet für die Kommunikation zwischen Nodes und CLI-Tools (Erlang-Distributions-Server-Port) und wird aus einem dynamischen Bereich zugewiesen (standardmäßig auf einen einzelnen Port begrenzt, berechnet als AMQP-Port + 20000). Sofern externe Verbindungen auf diese Ports nicht wirklich erforderlich sind (z. B. verwendet der Cluster Federation oder CLI-Tools werden auf Maschinen außerhalb des Subnetzes verwendet), sollten diese Ports nicht öffentlich zugänglich sein. Weitere Informationen finden Sie im Networking-Leitfaden. Nur 9 dieser Ports sind im Internet geöffnet.
- 35672-35682: von CLI-Tools verwendet (Erlang-Distributions-Client-Ports) für die Kommunikation mit Nodes und wird aus einem dynamischen Bereich zugewiesen (berechnet als Server-Distributions-Port + 10000 bis Server-Distributions-Port + 10010). Weitere Informationen finden Sie im Networking-Leitfaden.
- 61613, 61614: STOMP-Clients ohne und mit TLS (nur wenn das STOMP-Plugin aktiviert ist). Weniger als 10 Geräte mit diesem geöffneten Port und meistens UDP für DHT-Nodes.
Shodan
AMQP
Lernen Sie das Hacken von AWS von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.