mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-04 02:20:20 +00:00
100 lines
9.1 KiB
Markdown
100 lines
9.1 KiB
Markdown
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||
|
||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||
|
||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||
|
||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
|
||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||
|
||
</details>
|
||
|
||
|
||
# 基本情報
|
||
|
||
**RabbitMQ**は、_メッセージキューソフトウェア_としても知られる_メッセージブローカー_または_キューマネージャー_です。簡単に言えば、アプリケーションがメッセージを転送するために接続するキューが定義されているソフトウェアです。\
|
||
**メッセージには任意の情報が含まれる**ことができます。たとえば、別のアプリケーション(別のサーバー上にある場合もあります)で開始するプロセスやタスクに関する情報が含まれる場合もありますし、単純なテキストメッセージの場合もあります。キューマネージャーソフトウェアは、メッセージを受信するアプリケーションが接続し、キューからメッセージを取り出すまでメッセージを保存します。受信するアプリケーションは、その後、メッセージを処理します。\
|
||
[ここ](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html)からの定義。
|
||
|
||
**デフォルトポート**: 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)
|
||
```
|
||
## 自動
|
||
|
||
AMQP (Advanced Message Queuing Protocol)は、メッセージ指向ミドルウェアのためのオープンなプロトコルです。AMQPは、メッセージの送信、受信、およびキューイングをサポートし、異なるアプリケーション間での効率的な通信を可能にします。
|
||
|
||
AMQPのポート番号は、5671と5672です。通常、5672番ポートが使用されますが、TLS/SSLで保護された接続が必要な場合は、5671番ポートを使用します。
|
||
|
||
AMQPのペンテストでは、以下のような攻撃手法が使用されます。
|
||
|
||
- ポートスキャン:AMQPサーバーのポートをスキャンして、開いているポートを特定します。
|
||
- デフォルトの認証情報:デフォルトのユーザー名とパスワードを使用してAMQPサーバーにログインします。
|
||
- ユーザー列挙:有効なユーザー名を特定するために、ユーザー名の列挙を試みます。
|
||
- パスワード攻撃:既知のユーザー名に対してパスワード攻撃を実行し、正しいパスワードを特定します。
|
||
- メッセージの傍受:AMQPメッセージを傍受して、機密情報を取得します。
|
||
- メッセージの改ざん:AMQPメッセージを改ざんして、攻撃者が意図した操作を実行します。
|
||
|
||
AMQPのセキュリティを向上させるためには、以下の対策を実施することが重要です。
|
||
|
||
- ポートの制限:不要なポートを閉じるか、必要なポートのみを開くようにします。
|
||
- 強力な認証情報:デフォルトのユーザー名とパスワードを変更し、強力なパスワードポリシーを実施します。
|
||
- ユーザー名の列挙の防止:エラーメッセージにユーザー名の情報を含めないようにします。
|
||
- パスワード攻撃の防止:アカウントロックアウトやCAPTCHAなどの対策を実施します。
|
||
- 暗号化の使用:TLS/SSLを使用して通信を暗号化します。
|
||
|
||
AMQPのペンテストでは、これらの攻撃手法と対策を理解し、適切なセキュリティ対策を実施することが重要です。
|
||
```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
|
||
```
|
||
# その他のRabbitMQポート
|
||
|
||
[https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html)から、**RabbitMQはいくつかのポートを使用**していることがわかります。
|
||
|
||
* **1883、8883**: ([MQTTクライアント](http://mqtt.org)(MQTTプラグインが有効な場合はTLSなしとTLSあり)。[**MQTTのペントestingの詳細はこちら**](1883-pentesting-mqtt-mosquitto.md)を参照してください。
|
||
* **4369: epmd**: RabbitMQノードとCLIツールによって使用されるピアディスカバリーサービス。[**このサービスのペントestingの詳細はこちら**](4369-pentesting-erlang-port-mapper-daemon-epmd.md)を参照してください。
|
||
* **5672、5671**: AMQP 0-9-1および1.0クライアントがTLSなしおよびTLSありで使用するポート
|
||
* **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)が有効な場合のみ)。[**このサービスのペントestingの詳細はこちら**](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で計算される)。これらのポートへの外部接続が本当に必要でない限り(クラスタが[federation](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クライアント([STOMPプラグイン](https://www.rabbitmq.com/stomp.html)が有効な場合のみ、TLSなしとTLSあり)(このポートが開いているデバイスは10台未満で、ほとんどがDHTノード用のUDPです)。
|
||
|
||
# Shodan
|
||
|
||
* `AMQP`
|