2023-07-07 23:42:27 +00:00
|
|
|
|
# 1883 - MQTTのペンテスト(Mosquitto)
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
<details>
|
|
|
|
|
|
2023-04-25 18:35:28 +00:00
|
|
|
|
<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>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**💬**](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)**。**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
## 基本情報
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
MQTTはMQ Telemetry Transportの略です。これは、制約のあるデバイスや低帯域幅、高遅延または信頼性の低いネットワーク向けに設計された、パブリッシュ/サブスクライブ型の**非常にシンプルで軽量なメッセージングプロトコル**です。設計原則は、ネットワーク帯域幅とデバイスのリソース要件を最小限に抑えると同時に、信頼性と一定の配信保証を確保することです。これらの原則は、接続されたデバイスの「マシン間通信」(M2M)または「モノのインターネット」の新興世界や、帯域幅とバッテリー電力が貴重なモバイルアプリケーションにとっても理想的なプロトコルとなっています。
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
**デフォルトポート:** 1883
|
2021-10-18 11:21:18 +00:00
|
|
|
|
```
|
2020-09-24 18:58:31 +00:00
|
|
|
|
PORT STATE SERVICE REASON
|
|
|
|
|
1883/tcp open mosquitto version 1.4.8 syn-ack
|
|
|
|
|
```
|
2023-07-07 23:42:27 +00:00
|
|
|
|
## トラフィックの検査
|
2020-09-24 18:58:31 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
MQTTブローカーは、CONNECTパケットに対する応答としてCONNACKパケットを送信します。**リターンコード0x00**は資格情報が有効であることを示し、**リターンコード0x05は無効であることを示します。0x05の例:**
|
2022-02-19 19:42:58 +00:00
|
|
|
|
|
2022-03-09 12:12:51 +00:00
|
|
|
|
![](<../.gitbook/assets/image (645) (1).png>)
|
2022-02-19 19:42:58 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
### [**MQTTのブルートフォース攻撃**](../generic-methodologies-and-resources/brute-force.md#mqtt)
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
## MQTTのペントテスト
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
**認証は完全にオプション**であり、認証が実行されている場合でも、**デフォルトでは暗号化は使用されません**(資格情報は平文で送信されます)。MITM攻撃を実行してパスワードを盗むことはまだ可能です。
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
MQTTサービスに接続するには、[https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell)を使用し、次のようにすべてのトピックに自分自身をサブスクライブします:
|
2021-10-18 11:21:18 +00:00
|
|
|
|
```
|
2020-07-15 15:43:14 +00:00
|
|
|
|
> connect (NOTICE that you need to indicate before this the params of the connection, by default 127.0.0.1:1883)
|
|
|
|
|
> subscribe "#" 1
|
|
|
|
|
> subscribe "$SYS/#"
|
|
|
|
|
```
|
2023-07-07 23:42:27 +00:00
|
|
|
|
[**https://github.com/akamai-threat-research/mqtt-pwn**](https://github.com/akamai-threat-research/mqtt-pwn)を使用することもできます。
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
また、以下も使用できます:
|
2022-02-19 19:42:58 +00:00
|
|
|
|
```bash
|
|
|
|
|
apt-get install mosquitto mosquitto-clients
|
|
|
|
|
mosquitto_sub -t 'test/topic' -v #Subscriribe to 'test/topic'
|
|
|
|
|
```
|
2023-07-07 23:42:27 +00:00
|
|
|
|
または、このコードを実行して、認証なしでMQTTサービスに接続し、すべてのトピックにサブスクライブしてリスンすることを試すこともできます。
|
2020-07-15 15:43:14 +00:00
|
|
|
|
```python
|
|
|
|
|
#This is a modified version of https://github.com/Warflop/IOT-MQTT-Exploit/blob/master/mqtt.py
|
|
|
|
|
import paho.mqtt.client as mqtt
|
|
|
|
|
import time
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
HOST = "127.0.0.1"
|
|
|
|
|
PORT = 1883
|
|
|
|
|
|
|
|
|
|
def on_connect(client, userdata, flags, rc):
|
2023-07-07 23:42:27 +00:00
|
|
|
|
client.subscribe('#', qos=1)
|
|
|
|
|
client.subscribe('$SYS/#')
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
|
|
|
|
def on_message(client, userdata, message):
|
2023-07-07 23:42:27 +00:00
|
|
|
|
print('Topic: %s | QOS: %s | Message: %s' % (message.topic, message.qos, message.payload))
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
|
|
|
|
def main():
|
2023-07-07 23:42:27 +00:00
|
|
|
|
client = mqtt.Client()
|
|
|
|
|
client.on_connect = on_connect
|
|
|
|
|
client.on_message = on_message
|
|
|
|
|
client.connect(HOST, PORT)
|
|
|
|
|
client.loop_start()
|
|
|
|
|
#time.sleep(10)
|
|
|
|
|
#client.loop_stop()
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2023-07-07 23:42:27 +00:00
|
|
|
|
main()
|
2020-07-15 15:43:14 +00:00
|
|
|
|
```
|
2023-07-07 23:42:27 +00:00
|
|
|
|
## 追加情報
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
ここから: [https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b)
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
### パブリッシュ/サブスクライブパターン <a href="#b667" id="b667"></a>
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
パブリッシャー: ブローカー内の1つ(または複数)のトピックにメッセージを公開します。
|
|
|
|
|
サブスクライバー: ブローカー内の1つ(または複数)のトピックにサブスクライブし、パブリッシャーから送信されたすべてのメッセージを受信します。
|
|
|
|
|
ブローカー: パブリッシャーからのすべてのメッセージをサブスクライバーにルーティングします。
|
|
|
|
|
トピック: 1つ以上のレベルで構成され、スラッシュ(/)で区切られています(例:/smartshouse/livingroom/temperature)。
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2022-02-19 19:42:58 +00:00
|
|
|
|
![](https://miro.medium.com/max/1073/1\*sIxvchdgHSqAGebJjFHBAg.png)
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
### パケット形式 <a href="#f15a" id="f15a"></a>
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
すべてのMQTTパケットには固定ヘッダーが含まれています(図02)。図02:固定ヘッダー
|
2020-07-15 15:43:14 +00:00
|
|
|
|
|
2021-10-18 11:21:18 +00:00
|
|
|
|
![](https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png)
|
2020-09-21 23:14:27 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
固定ヘッダーの最初のフィールドは、MQTTパケットのタイプを表します。すべてのパケットタイプは、表01にリストされています。表01:MQTTパケットタイプ
|
2020-09-21 23:14:27 +00:00
|
|
|
|
|
2021-11-30 16:46:07 +00:00
|
|
|
|
![](https://miro.medium.com/max/1469/1\*z0fhdUVzGa0PLikH\_cyBmQ.png)
|
2020-09-21 23:14:27 +00:00
|
|
|
|
|
2022-08-12 14:24:34 +00:00
|
|
|
|
## Shodan
|
2020-09-21 23:14:27 +00:00
|
|
|
|
|
|
|
|
|
* `port:1883 MQTT`
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
<details>
|
|
|
|
|
|
2023-04-25 18:35:28 +00:00
|
|
|
|
<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>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **[**💬**](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)**をフォローしてください。**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
</details>
|