您现在的位置是:系统运维 >>正文
基于 MQTT 协议的 IoT 物联网设备已成为黑客攻击的头号载体和目标
系统运维9847人已围观
简介根据Forrester的最新报告《2023 年物联网安全状况》,基于 MQTT 协议的 IoT 物联网设备正在成为黑客攻击的头号载体和目标。物联网设备的安全性存在设计上的“先天缺陷”,长期使用默认密码 ...
根据Forrester的基于最新报告《2023 年物联网安全状况》 ,基于 MQTT 协议的协议 IoT 物联网设备正在成为黑客攻击的头号载体和目标 。
物联网设备的物联网设安全性存在设计上的“先天缺陷”,长期使用默认密码,备已极容易遭到黑客攻击。黑客号载此外,攻击随着 IoT 关键任务系统分配给与之紧密关联的体和物联网设备的角色和身份迅速增加,这些 IoT 设备正在成为黑客最青睐的目标高价值目标 。
在2022年下半年,模板下载基于工业领域计算机中有34.3%受到攻击影响 ,协议仅2021年上半年,物联网设针对物联网设备的备已攻击就高达15亿次 。超过40%的黑客号载 IoT 系统曾阻止过恶意对象。

1.MQTT 协议应用场景
MQTT协议为大量计算能力有限 ,攻击低带宽、体和不可靠网络等环境而设计,其应用非常广泛 。目前支持的服务端程序也较丰富 ,其PHP,JAVA ,Python,C ,源码库C#等系统语言也都可以向MQTT发送相关消息。
以下列举我们关心的几项:
使用发布/订阅的消息模式,支持一对多的消息发布;消息是通过TCP/IP协议传输;简单的数据包格式;默认端口为 TCP 的1883 ; WebSocket 端口 8083 ,默认消息不加密; 8883 端口默认是通过 TLS 加密的MQTT协议 。MQTT协议中有三种角色和一个主要概念 ,三种角色分别是发布者(PUBLISHER)、订阅者(SUBCRIBER)、服务器租用代理(BROKER),还有一个主要的概念为主题(TOPIC) 。
消息的发送方被称为发布者 ,消息的接收方被称为订阅者 ,发送者和订阅者发布或订阅消息均会连接BROKER,BROKER一般为服务端,BROKER存放消息的容器就是主题 。发布者将消息发送到主题中 ,订阅者在接收消息之前需要先“订阅主题” 。每份订阅中,订阅者都可以接收到主题的香港云服务器所有消息。

其 MQTT 协议流程图如下:

2.MQTT 协议的攻击点

根据 MQTT 协议和物联网全链路特性,可以扩展如下几个攻击点 :
授权:匿名连接问题 ,匿名访问则代表任何人都可以发布或订阅消息 。如果存在敏感数据或指令,将导致信息泄漏或者被恶意攻击者发起恶意指令;传输 :默认未加密 ,则可被中间人攻击。可获取其验证的用户名和密码;认证:弱口令问题,由于可被爆破 ,设置了弱口令,同样也会存在安全风险;应用 :订阅端明文配置导致泄漏其验证的用户名和密码;漏洞:服务端软件自身存在缺陷可被利用 ,或者订阅端或服务端解析内容不当产生安全漏洞,这将导致整个系统。源码下载MQTT 协议攻击点的利用目前已经有针对 MQTT 的开源利用工具 ,这里主要以功能强大易用的 mqtt-pwn 工具为主 。
Github地址为 https://github.com/akamai-threat-research/mqtt-pwn。
(1) MQTT匿名访问
有一些MQTT的服务端软件默认是开启匿名访问,如果管理员没有网络安全意识或懒惰,只要对公网开放 ,任何人都可以直接访问 。
使用mqtt-pwn的connect命令进行连接 。connect -h 显示帮助信息,其他命令也是高防服务器如此 ,使用时,多看帮助和文档,很快就可以熟悉使用。对于开启匿名的服务,直接connect -o host 即可 ,当然该命令也支持输入用户名和密码。如果没有显示连接异常 ,就表示连接成功。连接成功后 ,可使用system_info 查看系统信息 。

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

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


(2) MQTT用户名密码爆破
metasploit带有MQTT的爆破模块 ,经过实际测试,效果并不理想。这里仍然以mqtt-pwn来进行介绍 。mqtt-pwn具有bruteforce功能,并带了一个简单的字典 ,可以爆
破MQTT的用户名和密码:
复制bruteforce --host host --port -uf user_dic -pf pass_dic1.端口默认是1883 ,用户和密码字典默认会在 mqtt-pwn 的 resources/wordlists 文件夹下。
例如执行 bruteforce --host 127.0.0.1 爆破。爆破成功后就可以使用上面将到的内容进行连接进行操作 ,在连接时加上用户名和密码选项即可 。
mqtt-pwn还支持更多功能 ,如Owntracks (GPS Tracker)、Sonoff Exploiter等 。感兴趣的大家自己去看下文档去进行测试。
在实际的使用场景我们可以通过中间人劫持从流量中捕获验证信息。以下为wireshark抓包内容。

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


(1) 请勿开启匿名访问 。对服务端(BROKER)设置身份认证,增加用户名密码验证 。


(2) 根据实际情况 ,优先使用 TLS/DTLS 加密传输数据,防止中间人攻击 。
(3) 加密 Payload 后在进行安全传输 。
(4) 使用最新的服务端程序架设 MQTT 云服务 。
(5) 不要将实现的代码上传到 Github 等代码公开平台 。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“算法与编程”。http://www.bzli.cn/news/367a599627.html
相关文章
五种常见的网络钓鱼攻击以及防护手段
系统运维进入 2023 年,网络钓鱼仍然像往年一样活跃在互联网的各个角落。2022 年 Verizon 数据泄露调查报告指出,去年75%的社会工程攻击涉及网络钓鱼,仅去年一年就有超过33 万个账户被网络钓鱼, ...
【系统运维】
阅读更多年中盘点:2022年最炙手可热的10家云安全初创公司
系统运维现在,大多数人都知道网络安全是最热门的一个技术领域,因为全球范围内出现了越来越多的恶意网络攻击出现,推高了对安全新产品和新服务的需求。其中,云安全可以说是整个网络安全领域中最热门的一个子领域了。原因很 ...
【系统运维】
阅读更多应用云上数据管理能力框架(CDMC),提升云数据安全管理能力
系统运维在过去几年中,云计算技术发展势头强劲,旨在帮助组织彻底改变其业务并优化其流程,以提高生产力、降低成本和实现更好的可扩展性。但企业在上云的时候,往往缺乏有效的云数据管理策略和技术支撑,数据的不规则增长和 ...
【系统运维】
阅读更多
热门文章
最新文章
友情链接
- iOS10.2.1省电的技巧(提高iPhone续航的有效方法)
- 从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践
- 先进算力新选择 | 2025华为算力场景发布会暨北京xPN伙伴大会成功举办
- androidM有什么功能 安卓M系统功能一览
- 柯帝智能家居(智慧生活的未来已经到来,柯帝智能家居引领)
- 三星S6节日效果怎么开启
- HTC M9/M9+系统将升级到Android M
- 康佳58寸9600电视4k怎么样?(性能超群,画质出众,细节震撼!)
- 笔记本电脑运行缓慢的解决方法(15个简单步骤让你的笔记本电脑恢复高效)
- 安卓android5.0支持哪些机型? 香港物理机b2b信息平台网站建设云服务器源码库企业服务器亿华云