# 1883 - MQTT渗透测试(Mosquitto)
☁️ HackTricks云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! - 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family) - 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com) - **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](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 repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧。**
## 基本信息 MQTT代表MQ Telemetry Transport。它是一种发布/订阅的**极其简单和轻量级的消息传递协议**,专为受限设备和带宽有限、延迟高或不可靠的网络设计。设计原则是在尽量减少网络带宽和设备资源需求的同时,也尽量确保可靠性和一定程度的传递保证。这些原则也使得该协议成为新兴的“机器对机器”(M2M)或“物联网”世界中连接设备的理想选择,并适用于带宽和电池功耗有限的移动应用。 **默认端口:** 1883 ``` PORT STATE SERVICE REASON 1883/tcp open mosquitto version 1.4.8 syn-ack ``` ## 检查流量 MQTT代理在收到CONNECT数据包后会发送CONNACK数据包作为响应。返回码0x00表示凭据有效,返回码0x05表示凭据无效。0x05示例: ![](<../.gitbook/assets/image (645) (1).png>) ### [**暴力破解MQTT**](../generic-methodologies-and-resources/brute-force.md#mqtt) ## MQTT渗透测试 **身份验证是完全可选的**,即使正在执行身份验证,**默认情况下不使用加密**(凭据以明文形式发送)。仍然可以执行中间人攻击来窃取密码。 要连接到MQTT服务,可以使用:[https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell),并订阅所有主题: ``` > 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/#" ``` 你还可以使用[**https://github.com/akamai-threat-research/mqtt-pwn**](https://github.com/akamai-threat-research/mqtt-pwn) 你还可以使用: ```bash apt-get install mosquitto mosquitto-clients mosquitto_sub -t 'test/topic' -v #Subscriribe to 'test/topic' ``` 或者你可以运行以下代码尝试连接到一个没有身份验证的MQTT服务,订阅所有主题并监听它们: ```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): client.subscribe('#', qos=1) client.subscribe('$SYS/#') def on_message(client, userdata, message): print('Topic: %s | QOS: %s | Message: %s' % (message.topic, message.qos, message.payload)) def main(): 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() if __name__ == "__main__": main() ``` ## 更多信息 来自这里:[https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b) ### 发布/订阅模式 发布/订阅模式由以下组成: * **发布者**:将消息发布到代理中的一个或多个主题。 * **订阅者**:订阅代理中的一个或多个主题,并接收发布者发送的所有消息。 * **代理**:将发布者的所有消息路由到订阅者。 * **主题**:由一个或多个级别组成,级别之间用正斜杠分隔(例如,/smartshouse/livingroom/temperature)。 ![](https://miro.medium.com/max/1073/1\*sIxvchdgHSqAGebJjFHBAg.png) ### 数据包格式 每个 MQTT 数据包都包含一个固定的标头(图 02)。图 02:固定标头 ![](https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png) 固定标头的第一个字段表示 MQTT 数据包的类型。所有数据包类型都列在表 01 中。表 01:MQTT 数据包类型 ![](https://miro.medium.com/max/1469/1\*z0fhdUVzGa0PLikH\_cyBmQ.png) ## Shodan * `port:1883 MQTT`
☁️ HackTricks 云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者你想要**获取最新版本的 PEASS 或下载 PDF 格式的 HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! - 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](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 来分享你的黑客技巧**。