# 5671,5672 - Pentesting AMQP {{#include ../banners/hacktricks-training.md}} ## 基本情報 From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html): > **RabbitMQ**は、_メッセージブローカー_または_キューマネージャー_としても知られる**メッセージキューイングソフトウェア**です。簡単に言えば、メッセージを転送するためにアプリケーションが接続するキューが定義されたソフトウェアです。\ > **メッセージにはあらゆる種類の情報を含めることができます**。例えば、別のアプリケーション(別のサーバー上にある可能性もあります)で開始すべきプロセスやタスクに関する情報を含むことができますし、単純なテキストメッセージである場合もあります。キューマネージャーソフトウェアは、受信アプリケーションが接続してキューからメッセージを取得するまでメッセージを保存します。受信アプリケーションはその後、メッセージを処理します。\ > Definition from . **デフォルトポート**: 5672,5671 ``` PORT STATE SERVICE VERSION 5672/tcp open amqp RabbitMQ 3.1.5 (0-9) ``` ## 列挙 ### 手動 ```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) ``` ### 自動 ```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 ``` ### ブルートフォース - [**AMQPプロトコルブルートフォース**](../generic-hacking/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace) - [**STOMPプロトコルブルートフォース**](../generic-hacking/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq) ## その他のRabbitMQポート [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) では、**RabbitMQは複数のポートを使用します**: - **1883, 8883**: (TLSなしおよびTLSありの[MQTTクライアント](http://mqtt.org)、[**ここでMQTTのペンテストについて詳しく学ぶ**](1883-pentesting-mqtt-mosquitto.md))。 - **4369: epmd**、RabbitMQノードとCLIツールによって使用されるピア発見サービス。[**このサービスのペンテストについて詳しく学ぶ**](4369-pentesting-erlang-port-mapper-daemon-epmd.md)。 - **5672, 5671**: TLSなしおよびTLSありのAMQP 0-9-1および1.0クライアントによって使用されます。 - **15672**: [HTTP API](https://www.rabbitmq.com/management.html)クライアント、[管理UI](https://www.rabbitmq.com/management.html)および[rabbitmqadmin](https://www.rabbitmq.com/management-cli.html)([管理プラグイン](https://www.rabbitmq.com/management.html)が有効な場合のみ)。[**このサービスのペンテストについて詳しく学ぶ**](15672-pentesting-rabbitmq-management.md)。 - 15674: STOMP-over-WebSocketsクライアント([Web STOMPプラグイン](https://www.rabbitmq.com/web-stomp.html)が有効な場合のみ) - 15675: MQTT-over-WebSocketsクライアント([Web MQTTプラグイン](https://www.rabbitmq.com/web-mqtt.html)が有効な場合のみ) - 15692: Prometheusメトリクス([Prometheusプラグイン](https://www.rabbitmq.com/prometheus.html)が有効な場合のみ) - 25672: ノード間およびCLIツールの通信に使用される(Erlang配布サーバーポート)で、動的範囲から割り当てられます(デフォルトでは単一ポートに制限され、AMQPポート + 20000として計算されます)。これらのポートで外部接続が本当に必要でない限り(例: クラスターが[フェデレーション](https://www.rabbitmq.com/federation.html)を使用している場合や、CLIツールがサブネット外のマシンで使用されている場合)、これらのポートは公開されるべきではありません。詳細については[ネットワーキングガイド](https://www.rabbitmq.com/networking.html)を参照してください。**これらのポートのうち、インターネット上で開いているのは9つだけです**。 - 35672-35682: ノードとの通信のためにCLIツール(Erlang配布クライアントポート)によって使用され、動的範囲から割り当てられます(サーバー配布ポート + 10000からサーバー配布ポート + 10010として計算されます)。詳細については[ネットワーキングガイド](https://www.rabbitmq.com/networking.html)を参照してください。 - 61613, 61614: [STOMPクライアント](https://stomp.github.io/stomp-specification-1.2.html)(TLSなしおよびTLSあり、[STOMPプラグイン](https://www.rabbitmq.com/stomp.html)が有効な場合のみ)。このポートが開いているデバイスは10未満で、主にDHTノード用のUDPです。 ## Shodan - `AMQP` {{#include ../banners/hacktricks-training.md}}