基于 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_dic

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

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

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

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

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

3.MQTT 协议的安全建议

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

(2) 根据实际情况,优先使用 TLS/DTLS 加密传输数据,防止中间人攻击。

(3) 加密 Payload 后在进行安全传输。

(4) 使用最新的服务端程序架设 MQTT 云服务。

(5) 不要将实现的代码上传到 Github 等代码公开平台。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/143402.html<

(0)
管理的头像管理
上一篇2025-03-09 16:36
下一篇 2025-03-09 16:38

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注