5671,5672 - Pentesting AMQP

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks:

Informations de base

À partir de cloudamqp:

RabbitMQ est un logiciel de file d'attente de messages également connu sous le nom de courtier de messages ou de gestionnaire de file d'attente. En termes simples, il s'agit d'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 contenir n'importe quel type d'information. Il pourrait, par exemple, contenir des informations sur un processus ou une tâche qui devrait démarrer sur une autre application (qui pourrait même être sur un autre serveur), ou il pourrait s'agir simplement d'un message texte simple. Le logiciel de gestion de file d'attente stocke les messages jusqu'à ce qu'une application réceptrice se connecte et retire un message de la file d'attente. L'application réceptrice traite ensuite le message. Définition de .

Port par défaut: 5672,5671

PORT     STATE SERVICE VERSION
5672/tcp open  amqp    RabbitMQ 3.1.5 (0-9)

Énumération

Manuel

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

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

Autres ports RabbitMQ

Dans https://www.rabbitmq.com/networking.html vous pouvez trouver que rabbitmq utilise plusieurs ports:

  • 1883, 8883: (clients MQTT sans et avec TLS, si le plugin MQTT est activé. En savoir plus sur comment pentester MQTT ici.

  • 4369: epmd, un service de découverte de pairs utilisé par les nœuds RabbitMQ et les outils CLI. En savoir plus sur comment pentester ce service ici.

  • 5672, 5671: utilisé par les clients AMQP 0-9-1 et 1.0 sans et avec TLS

  • 15674: clients STOMP-over-WebSockets (uniquement si le plugin Web STOMP est activé)

  • 15675: clients MQTT-over-WebSockets (uniquement si le plugin Web MQTT est activé)

  • 15692: métriques Prometheus (uniquement si le plugin Prometheus est activé)

  • 25672: utilisé pour la communication inter-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). Sauf si les connexions externes sur ces ports sont vraiment nécessaires (par exemple, le cluster utilise fédération ou des outils CLI sont utilisés sur des machines en dehors du sous-réseau), ces ports ne doivent pas être exposés publiquement. Voir le guide de mise en réseau pour plus de détails. Seuls 9 de ces ports sont ouverts sur Internet.

  • 35672-35682: utilisé par les outils CLI (ports clients de distribution Erlang) pour la communication avec les nœuds et est alloué à partir d'une plage dynamique (calculé comme port de distribution du serveur + 10000 à travers le port de distribution du serveur + 10010). Voir le guide de mise en réseau pour plus de détails.

  • 61613, 61614: clients STOMP sans et avec TLS (uniquement si le plugin STOMP est activé). Moins de 10 appareils avec ce port ouvert et principalement UDP pour les nœuds DHT.

Shodan

  • AMQP

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks:

Dernière mise à jour