您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

物联网安全之MQTT协议安全

时间:2020-08-10 11:25:42  来源:  作者:
物联网安全之MQTT协议安全

 

 

大家好,我是银基Tiger Team的BaCde,今天来说说MQTT协议的安全。

MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅方式的消息协议,由 IBM 发布。由于其轻量、简单、开放和易于实现的特点非常适合需要低功耗和网络带宽有限的IoT场景。比如遥感数据、汽车、智能家居、智慧城市、医疗医护等。

 

MQTT协议

MQTT协议为大量计算能力有限,低带宽、不可靠网络等环境而设计,其应用非常广泛。目前支持的服务端程序也较丰富,其phpJAVAPython,C,C#等系统语言也都可以向MQTT发送相关消息。 目前最新的版本为5.0版本,可以在https://github.com/mqtt/mqtt.github.io/wiki/servers 这个连接中看到支持MQTT的服务端软件。 其中hivemq中提到针对汽车厂商的合作与应用,在研究过程中会发现有汽车行业应用了MQTT协议。

物联网安全之MQTT协议安全

 

以下列举我们关心的几项:

  1. 使用发布/订阅的消息模式,支持一对多的消息发布;
  2. 消息是通过TCP/IP协议传输;
  3. 简单的数据包格式;
  4. 默认端口为TCP的1883,websocket端口8083,默认消息不加密。8883端口默认是通过TLS加密的MQTT协议。

发布/订阅模式

MQTT协议中有三种角色和一个主要概念,三种角色分别是发布者(PUBLISHER)、订阅者(SUBCRIBER)、代理(BROKER),还有一个主要的概念为主题(TOPIC)。

消息的发送方被称为发布者,消息的接收方被称为订阅者,发送者和订阅者发布或订阅消息均会连接BROKER,BROKER一般为服务端,BROKER存放消息的容器就是主题。发布者将消息发送到主题中,订阅者在接收消息之前需要先“订阅主题”。每份订阅中,订阅者都可以接收到主题的所有消息。

物联网安全之MQTT协议安全

 

其MQTT协议流程图如下:

物联网安全之MQTT协议安全

 

这里不对协议进行过多介绍,感兴趣的大家可以结尾处的引用查看。

 

MQTT的攻击点

根据其特性,可以扩展如下几个攻击点:

  1. 授权:匿名连接问题,匿名访问则代表任何人都可以发布或订阅消息。如果存在敏感数据或指令,将导致信息泄露或者被恶意攻击者发起恶意指令;
  2. 传输:默认未加密,则可被中间人攻击。可获取其验证的用户名和密码;
  3. 认证:弱口令问题,由于可被爆破,设置了弱口令,同样也会存在安全风险;
  4. 应用:订阅端明文配置导致泄漏其验证的用户名和密码;
  5. 漏洞:服务端软件自身存在缺陷可被利用,或者订阅端或服务端解析内容不当产生安全漏洞,这将导致整个系统。

 

MQTT的利用

目前已经有针对MQTT的开源利用工具,这里主要以mqtt-pwn这块工具为主。mqtt-pwn这块工具功能强大易用。github地址为https://github.com/akamai-threat-research/mqtt-pwn,使用文档地址为https://mqtt-pwn.readthedocs.io/en/latest/。

工具安装mqtt-pwn的安装很简单。可以直接安装到本机,也可以直接使用Docker的方式。文本直接使用docker方式。首先确保已经安装docker和docker-compose。然后运行如下命令进行安装:

git clone https://github.com/akamai-threat-research/mqtt-pwn.git
cd mqtt-pwn
docker-compose up --build --detach

运行:

docker-compose ps
docker-compose run cli

即可看到mqtt-pwn的界面。

物联网安全之MQTT协议安全

 

MQTT匿名访问

有一些MQTT的服务端软件默认是开启匿名访问,如果管理员没有网络安全意识或懒惰,只要对公网开放,任何人都可以直接访问。

使用mqtt-pwn的connect命令进行连接。connect -h 显示帮助信息,其他命令也是如此,使用时,多看帮助和文档,很快就可以熟悉使用。对于开启匿名的服务,直接connect -o host 即可,当然该命令也支持输入用户名和密码。如果没有显示连接异常,就表示连接成功。连接成功后,可使用system_info 查看系统信息。

物联网安全之MQTT协议安全

 

接下来就可以查看topic信息等内容。这时先执行discovery,等待显示scan #1 has finished,接下来执行scans -i 序号,在执行topics命令即可看到topic信息。 其中disconvery可以使用-t参数设置超时时间。topics命令可以使用-l参数设置查看条数。

物联网安全之MQTT协议安全

 

可以输入messages查看topic的内容。使用-l限制条数,-i参数查看某个单条消息内容等。

物联网安全之MQTT协议安全

 


物联网安全之MQTT协议安全

 

MQTT用户名密码爆破

metasploit带有MQTT的爆破模块,经过实际测试,效果并不理想。这里仍然以mqtt-pwn来进行介绍。mqtt-pwn具有bruteforce功能,并带了一个简单的字典,可以爆破MQTT的用户名和密码。

bruteforce --host host --port port -uf user_dic -pf pass_dic

端口默认是1883,用户和密码字典默认会在mqtt-pwn的resources/wordlists 文件夹下。

例如执行bruteforce --host 127.0.0.1爆破。爆破成功后就可以使用上面讲到的内容进行连接进行操作,在连接时加上用户名和密码选项即可。

mqtt-pwn还支持更多功能,如Owntracks (GPS Tracker)、Sonoff Exploiter等。感兴趣的大家自己去看下文档去进行测试。

应用中发现在实际的使用场景我们可以通过中间人劫持从流量中捕获验证信息。以下为wireshark抓包内容。

物联网安全之MQTT协议安全

 

除此之外,由于目前多种语言实现了mqtt的客户端,web应用中还有webscoket的mqtt。这使得可以通过web的网页源码或网络请求获得验证的信息。

物联网安全之MQTT协议安全

 

历史漏洞这里列举一些历史上MQTT的漏洞,不全仅供参考。

CVE-2017-7296CVE-2017-7650CVE-2018-17614CVE-2019-5432CVE-2020-13849Mosquitto漏洞列表

 

探测与发现

功能强大的nmap是支持MQTT协议的识别的,可以直接通过nmap进行识别MQTT协议。另外,除上面提到的默认端口外,有的管理员会修改默认端口,这时也可以尝试1884,8084,8884等临近端口以进行快速探测,或全面增加数字等作为组合,如果针对单个目标,则可以探测全部端口。如果进行大规模的扫描或者提升扫描效率,则可以使用masscan、zmap、RustScan等先进性端口扫描,在使用nmap进行协议识别即可。nmap举例命令如下:sudo nmap -p1883,8083,8883 -sS -sV --version-intensity 9 -Pn --open target_ip

物联网安全之MQTT协议安全

 

nmap也有相关的MQTT lua脚本可以使用,其MQTT版本为3.1.1。脚本地址为https://svn.nmap.org/nmap/nselib/mqtt.lua。

如果想要自己编写代码去进行探测,只需要根据MQTT的协议标准,通过socket即可进行收发报文。关于MQTT协议的详细内容可以查看文档,地址为https://docs.oasis-open.org/mqtt/mqtt/

现有的网络空间测绘平台基本都实现了对MQTT进行探测。可直接通过这些搜索引擎获取大量对外使用MQTT协议的服务。

  • 知风
    在针对IoT和ICS探测的搜索引擎知风中搜索,直接搜索mqtt关键字,可以发现15万个对外开放的服务。
  • fofa
    搜索关键字为protocol=mqtt,一年内有25万个对外开放。
  • shodan
    搜索关键字:
    product:”MQTT”
    product:”Mosquitto”

shodan上搜索后共有超过11万个对外开放。

物联网安全之MQTT协议安全

 

通过以上的搜索结果,各引擎各有优劣。shodan和知风针对该协议的探测均会列出topic;而fofa从发现数量上最多,但是仅识别了协议,并未列出topic;除此之外知风系统的地理位置定位精度较高,可以定位百米范围内。

mqtt 安全建议

  1. 请勿启用匿名访问,对服务端(BROKER)设置认证,增加用户名密码验证。
  2. 根据实际情况,优先使用加密传输数据,防止中间人攻击。
  3. 加密payload后再进行安全传输。
  4. 使用最新的服务端程序架设服务。
  5. 不要将实现的代码上传到github等代码公开平台。

 

小结

写这篇文章时,网络上关于MQTT安全的文章并不多,但是通过对其了解,仍然有不少内容可以探索,比如在工业上有MQTT网关,以及众多支持MQTT的服务端软件、加上广泛的应用场景。本文简单介绍MQTT安全的内容,还有更多的内容等待探索。感兴趣的朋友也欢迎大家多多交流讨论。

最后,提醒一下大家,在学习和研究过程中自己搭建服务进行学习。请勿对网络上的目标进行测试、破坏等活动。

 

引用

https://dzone.com/articles/exploiting-mqtt-using-luahttps://www.hindawi.com/journals/wcmc/2018/8261746/https://github.com/akamai-threat-research/mqtt-pwnhttps://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9bhttps://book.hacktricks.xyz/pentesting/1883-pentesting-mqtt-mosquittohttps://hackmd.io/@QwmL8PAwTx-bYDnry-ONpA/H1nm2tHzb?type=viewhttps://ttm4175.iik.ntnu.no/prep-iot-mqtt.htmlhttps://mobilebit.WordPress.com/tag/mqtt/https://www.hivemq.com/blog/seven-best-mqtt-client-tools/https://nmap.org/nsedoc/lib/mqtt.htmlhttp://mqtt.p2hp.com/

本文由Tiger-Team原创发布
转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/212335



Tags:物联网安全   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
设备身份认证技术物联网系统安全离不开设备的身份认证和访问授权,我们现在已经在使用不同协议层上的身份认证技术,比如链路层的802.1x,传输层的TLS,应用层的OAuth2.0等。 802.1x...【详细内容】
2021-02-19  Tags: 物联网安全  点击:(457)  评论:(0)  加入收藏
物联网技术正在加速向各行业渗透,根据中国信通院《物联网白皮书(2020年)》内容显示:预计到2025年,物联网连接数的大部分增长来自产业市场,产业物联网的连接数将占到总体的61.2%。...【详细内容】
2021-01-22  Tags: 物联网安全  点击:(463)  评论:(0)  加入收藏
大家好,我是银基Tiger Team的BaCde,今天来说说MQTT协议的安全。MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是是ISO 标准(ISO/IEC PRF 20922)下基于...【详细内容】
2020-08-10  Tags: 物联网安全  点击:(136)  评论:(0)  加入收藏
日前,以色列安全公司JSOF曝出的一“波”19个物联网软件漏洞(统称Ripple20,其中四个很严重)波及全球数亿个物联网(IoT)和工业控制设备。研究人员表示,他们将这19个漏洞命名为“Rippl...【详细内容】
2020-06-18  Tags: 物联网安全  点击:(136)  评论:(0)  加入收藏
物联网安全性,当每台设备都很智能并且您甚至都不知道时,会发生什么?隐私和物联网又如何呢?由于所有这些传感器都在收集您所做的所有事情的数据,因此IoT可能是巨大的隐私和安全难...【详细内容】
2020-05-16  Tags: 物联网安全  点击:(77)  评论:(0)  加入收藏
物联网普遍存在遭受网络攻击类型多样化、没有安全保护标准、数据极易被截获或破解等安全风险,核心问题在于缺乏设备、服务提供者、应用、数据、交易等物的安全认证机制。因此...【详细内容】
2020-03-25  Tags: 物联网安全  点击:(108)  评论:(0)  加入收藏
图片来源:https://pixabay.com/images/id-4173477/来源:物联之家(iothome.com)安全是每个解决方案中的核心,物联网也不例外。以下是集成商应遵循的四个指导原则,以确保物联网项目...【详细内容】
2019-06-05  Tags: 物联网安全  点击:(256)  评论:(0)  加入收藏
▌简易百科推荐
(报告出品方:德勤)数字化转型网络安全及转型挑战在任何行业,保持竞争力都需要快速开发新产品和 服务并推向市场。创新型业务模式不仅仅是简单地将现有 流程数字化,其正在覆盖供应...【详细内容】
2021-12-22  认是    Tags:网络安全   点击:(19)  评论:(0)  加入收藏
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  实战Java  博客园  Tags:脚本攻击   点击:(18)  评论:(0)  加入收藏
一、背景介绍大家在Linux的日常使用中都晓得如何通过命令行去配置Linux的端口开放规则,但是大家知道如何配置Windows入站出站规则吗?有哪些常见的危险端口呢?如何解决上述问题...【详细内容】
2021-12-01  Kali与编程    Tags:防火墙   点击:(30)  评论:(0)  加入收藏
网络安全服务商Randori公司日前发布了一份调查报告,列出了网络攻击者最有可能攻击或利用的IT资产。在遭遇Solarwinds黑客攻击一周年之际,以及在网络安全(尤其是勒索软件和供应...【详细内容】
2021-10-28  企业网D1net   企鹅号  Tags:网络攻击   点击:(57)  评论:(0)  加入收藏
0x01.背景实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\wi...【详细内容】
2021-10-22  IT影子    Tags:特权提升   点击:(37)  评论:(0)  加入收藏
本文主要介绍和总结了CSRF跨站请求伪造的基本原理和主要防范措施,工作中有用到的朋友不妨收藏转发一下,以备您参考。什么是CSRF?CSRF跨站点请求伪造(Cross—Site Request...【详细内容】
2021-10-13  快乐中恒    Tags:CSRF   点击:(49)  评论:(0)  加入收藏
waf拦截在打某市 Hvv 第一天就找到一个文件上传的点,经过测试,可以直接任意文件上传,没有什么道理。 直接尝试上传 Php 文件,被 waf 拦截了 2021最新整理网络安全/渗透测试/安...【详细内容】
2021-10-11  KaliMa    Tags:防火墙   点击:(56)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  IT野涵    Tags:漏洞链   点击:(56)  评论:(0)  加入收藏
您的苹果手机尽管iPhone比Android更安全,但也可以通过各种方式入侵。避免黑客入侵的最佳方法是警惕奇怪的链接或粗略的应用程序,并仅在必要时提供信息。电池寿命差和性能低下...【详细内容】
2021-09-16  Hackers爱好者    Tags:黑客入侵   点击:(631)  评论:(0)  加入收藏
防火墙一般布置在逻辑区域的入口处,位于三层网络架构的核心和汇聚之间,起到隔离逻辑区域,为逻辑区域创建安全策略的作用。 上面就是应用区的防火墙布置方式,他布置在应用区,可以...【详细内容】
2021-09-03  知来知去    Tags:主备模式防火墙   点击:(109)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条