大家好,我是银基Tiger Team的BaCde。上一篇 物联网安全之MQTT协议安全 主要介绍了MQTT安全的一些基础知识。今天将在上一篇基础上来说说实战中MQTT的利用。 在整个物联网或车联网架构中,MQTT的部分通常应用在移动端、管理端、Web端、设备端。而MQTT协议中的三种角色是发布者(PUBLISHER)、订阅者(SUBCRIBER)、代理(BROKER)。发布者(PUBLISHER)和订阅者(SUBCRIBER)通过代理(BROKER)来发布和订阅消息。这两个角色在实际场景中主要应用是移动端、Web端、设备端;代理(BROKER)一般是服务器,可以由activemq、hivemq、emqx等许多软件来搭建。在开发过程中,不同的设备,技术特点也有所不同。其使用的协议除了mqtt外,Web端通常使用websocket的方式来进行收发消息。
0X00 获取MQTT认证信息 目前对于MQTT的开发中的安全还尚未受到广泛关注,这使得有多种方式在移动端、Web端、设备端获取到MQTT的认证与连接信息。通过获取的信息来进一步实现越权访问、发布恶意内容等攻击。 由于设备方面暂未找到案例,这里将以Web端和移动端案例来进行说明。
在浏览目标时我一般会打开Chrome浏览器的开发者调试工具,通过查看请求信息或这直接搜索mqtt的字样来确定是否使用MQTT的javascript文件。另外一个就是可以查看websockets请求看是否有进行mqtt的连接操作等。 一旦发现使用MQTT后,就可以继续查看javascript文件来找到连接的host、端口、用户名以及密码信息。对于目前流行的云厂商,一般还会开启tls。或者这些信息后,我们就可以进行深入的分析或利用。
开发的一点知识
通过查阅一些开发资料,可以发现常见的几个MQTT的javascript库: Paho.js 、 MQTT.js 、 mqtt-elements 、 MQTT.DART 在实际的研究过程中发现尤其以paho.js居多。在实际的渗透过程中需要多留意,使用本库基本可以确定Web端应用了MQTT的。以下我就介绍几个获取MQTT的几个小技巧。实战工具
* Chrome 浏览器
* Burp Suite
* source detecotor
好了,有了这几个就够了。开始我们的实战之旅。
获取方法
1、web应用中直接捕获在浏览目标时我一般会打开Chrome浏览器的开发者调试工具,通过查看请求信息或这直接搜索mqtt的字样来确定是否使用MQTT的javascript文件。另外一个就是可以查看websockets请求看是否有进行mqtt的连接操作等。 一旦发现使用MQTT后,就可以继续查看javascript文件来找到连接的host、端口、用户名以及密码信息。对于目前流行的云厂商,一般还会开启tls。或者这些信息后,我们就可以进行深入的分析或利用。