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

74 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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="<IP>", 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 <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
```
### ブルートフォース
- [**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}}