HackPwn:TCL智能洗衣机破解细节分析

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 上周结束的Hackpwn上,黑客们脑洞大开,破解了比亚迪汽车、小米手环、乐小宝、长虹电视、TCL洗衣机和九阳豆浆机等一系列最新的智能硬件,据黑客介绍,TCL是一家把家门“砌死”的企业,由于得到了将要被现场破解的消息,在HackPwn前一天,TCL就已经关闭了云服务器,在黑客童鞋以消费者身份苦苦哀求了一晚上以后,终于恢复服务,但是在Hackpwn当天又关闭了,又关闭了…… TCL的洗衣机在云端可以相互识别。

上周结束的Hackpwn上,黑客们脑洞大开,破解了比亚迪汽车、小米手环、乐小宝、长虹电视、TCL洗衣机和九阳豆浆机等一系列最新的智能硬件,据黑客介绍,TCL是一家把家门“砌死”的企业,由于得到了将要被现场破解的消息,在HackPwn前一天,TCL就已经关闭了云服务器,在黑客童鞋以消费者身份苦苦哀求了一晚上以后,终于恢复服务,但是在Hackpwn当天又关闭了,又关闭了……

TCL的洗衣机在云端可以相互识别。但正常来说,一台洗衣机是无法给另一台洗衣机下命令的。不过,黑客团队发现了一招制敌妙计,那就是:把命令中禁止发送的字符换成小写字母,换成小写字母,换成小写字母。(重要的事情说三遍)

没错,绕过系统控制就是这么简单。通过此种方法可以通过模仿云端的控制器“京东微联”向任何一台洗衣机下达指令,指令可以精确到温度和转速。

所以,当你回家发现洗衣机已经以90度的设定温度,以1200转每分钟的转速转了一天的时候,请不要太惊讶哦,你的洗衣机只不过是“认贼作父”了。

通过京东微联手机APP,我们可以查看洗衣机的状态,可以选择多种洗衣模式,调整洗衣机的转速、洗衣的温度等参数。可以实现在任何地点只要洗衣机能接入互联网都可以控制。

对于洗衣机的攻击点分析

使用TCP智能洗衣机时需要对洗衣机进行配置,才能够接入网络,从而使用手机客户端进行远程控制。TCL洗衣机使用的是”京东微联”物联网平台,京东微联是京东旗下针对智能硬件产品专门推出的一项云服务,致力于打造一个多方共赢的智能硬件生态链。

我们可以通过简单的配置将设备通过wifi接入互联网,配置成功后就可以使用京东微联手机客户端来反向控制洗衣机,达到洗衣机设备能够通过手机远程控制的功能,这也就是为什么说这个型号的洗衣机是”智能洗衣机”的原因了。

通过对洗衣机上线流程的配置过程中,可以了解到手机下发控制指令的整个流程如下图:

1.手机首先使用京东账号进行认证。

2.认证成功后添加了设备和账号的绑定关系。

3.手机下发设备控制指令给京东智能云。

4.京东智能云在把控制指令转发给第三方平台。

5.第三方平台将指令转发到设备,由设备来执行。

6.设备执行成功后将状态返回给第三方平台,第三方平台在转发至京东智能云,反馈到手机APP中。

通过分析验证,在京东智能云和手机之间。都具备高强度的加密传输和身份认证的方案,在进行分析过程中,可以发现京东智能云在安全方面还是考虑的比较多的。在短时间要攻破京东智能云平台比较难。所以我把攻击点定位在第三方平台和设备之间。

模糊测试

首先使用360wifi将洗衣机接入到网络中,使用“京东微联”手机APP触发对洗衣机的控制,同时对无线网卡进行抓包分析如下:

洗衣机和第三方平台之间使用的是XMPP协议实现会话的控制和长连接保持在线的。XMPP一般是用来实现聊天工具的一个框架协议。因为智能硬件需要保持长时间在线的会话并且要接收消息,所以一些厂商会改用一些聊天工具来实现。图中标记的数据内容是洗衣机作为客户端登陆成功的状态。使用的登陆数据是用base64进行编码的。

将登陆数据进行解码后发现第一个字段是设备的ID,第二个字段是密码。也就是说洗衣机使用的是这段用户名和密码,登陆云服务器。然后等待京东云平台下发控制指令的。

通过分析数据包可以发现洗衣机主要使用TCP、UDP、XMPP/XML三种协议,通过对数据包内容观察,发现第三方平台到洗衣机之间的数据包没有进行传输加密,可以清晰的看到控制指令的格式和内容。

登陆测试

为了更直观的测试漏洞,选用了一款带有XMPP协议聊天功能的软件。来模拟洗衣机登陆。

使用从数据包分析出来的用户名和密码,登陆第三方云服务器。发现成功的用洗衣机账号登陆成功。

获取控制指令

模拟洗衣机账号登陆成功后,模拟在线的洗衣机接收控制指令。这时使用京东微联手机APP给在线的洗衣机发送一些控制指令。

smartjd@openfire-server:<msg:msgid="SetMessage"type="Control"seq="null"><SetMessage><TurnOn>on</TurnOn></SetMessage></msg>

目前已经成功的伪造洗衣机接收到了,京东智能云发送的开启洗衣机的控制指令。由于目前不知道洗衣机给京东微联响应的什么样的数据包,所以这时将聊天软件关闭,让洗衣机上线,发送启动指令。然后在手机APP客户端中可以进入下发控制指令的界面。然后在断开洗衣机连接,使用聊天软件继续获取其它的控制指令。

伪造洗衣机控制目标洗衣机

在知道了控制指令、登陆的ID和密码的情况下。一开始是想使用smartjd这个账号进行登陆,但是这个账号只有京东智能云里面会保存。所以无奈的情况下发现了一个意外惊喜。登陆洗衣机的ID是一设备的MAC地址+DEVICE为标识的。只要修改一下MAC就可以登录到另外一台洗衣机设备。给目标洗衣机设备发送控制指令。

使用修改后的ID和默认的口令。成功的登陆了另外的一台洗衣机。这时尝试给设备发送控制指令,发现目标设备没有任何响应。

绕过控制指令限制

通过了无数次横向测试,对比测试,各种无厘头的测试之后。怀疑是服务器对发送指令进行了过滤,在对标签和参数进行枚举的过程中发现服务器过滤了”Control”参数。然后机智的把”Control”改为”control”重新发送,奇迹出现了。

成功的使用另外一个洗衣机的账号,给目标洗衣机发送了控制指令。那么就说明目前已经对洗衣机有完全的控制权限。

再使用前面获得的控制指令,控制洗衣机以800的转速开始甩干。

为了验证影响范围,这里写了一个python脚本去遍历MAC地址的在线状态,可以发现很多在线洗衣机的MAC地址。

利用场景

1.通过MAC地址+DEVIVE和默认的密码登陆任意一台洗衣机。

2.通过事先抓取好的控制指令,来制定目标洗衣机的工作内容。

3.通过XMPP软件给目标洗衣机发送控制指令。

问题总结

1.洗衣机终端和第三方云平台之间使用的XMPP协议传输内容未进行加密。

2.使用base64编码洗衣机的ID和密码。

3.洗衣机与第三方平台认证时使用的是MAC+deivce字段作为用户名进行认证标识,这样容易能够通过枚举MAC地址遍历出更多的洗衣机。

4.使用相同的密钥进行洗衣机终端端的认证。

5.洗衣机终端与洗衣机终端通信未进行隔离。

6.未对京东智能云平台下发的控制会话内容为进行过滤,导致任意洗衣机都可以发送控制指令。

TCL智能洗衣机最主要的问题时能够绕过”京东微联”平台的统一管控,再利用传输未加密、使用单一因素作为身份鉴权标识,还有XMPP会话登陆机制等特性,最终实现可以通过任意账号横向控制TCL所有的智能洗衣机。在国内主流的一些智能家居设备,接入到大的IOT平台中也有可能存在同样的问题。

安全建议

1.使用具备一定强度的加密方式加密对XMPP协议传输的内容。

2.身份认证过程当中使用随机数或者无规律的串号进行验证,要求每个洗衣机有独立且不相同的密码。

3.对洗衣机和洗衣机直接的通信进行隔离。

4.使用访问控制过滤京东微联的控制会话请求,只允许京东微联账户发送控制指令。

相关文章
【单片机课程设计】汽车盲区检测系统
【单片机课程设计】汽车盲区检测系统
158 0
|
存储 机器学习/深度学习 算法
【HaaS Python硬件积木】AS608指纹识别模块 打造指纹门禁 开门有手就行
【HaaS Python硬件积木】AS608指纹识别模块 打造指纹门禁 开门有手就行
265 0
|
人工智能 网络协议 网络性能优化
【毕设参考】HaaS Python 云端一体AI【手势识别】窝在家里看电视不想动?想换台懒得找遥控器?试试解锁智能设备新玩法
【毕设参考】HaaS Python 云端一体AI【手势识别】窝在家里看电视不想动?想换台懒得找遥控器?试试解锁智能设备新玩法
164 0
|
Web App开发 Linux 数据安全/隐私保护
亮个相吧小宝贝儿,五款压箱底的软件
今天要给大家推荐5款压箱底的宝贝软件了,百度搜索一下就能找到下载链接了。
144 0
亮个相吧小宝贝儿,五款压箱底的软件
西门子S7-200 SMART运动控制功能,编写程序并测试,运动控制面板
本篇我们来学习编写程序并测试以及如何使用运动控制面板。编写程序,首先将初始化速度送至相关存储区,再编写使能驱动程序,M2.0为1时使能驱动器,调用轴控制子程序,编写输入输出参数,输入端填写SM0.0,表示每个扫描周期都要使能该子程序。
西门子S7-200 SMART运动控制功能,编写程序并测试,运动控制面板
|
传感器 编解码 算法
超声波「读心术」!读懂恒河猴的想法,无需开颅植入电极
当你浏览这篇文章的时候,你的大脑里发生了什么?换句话说,你大脑的哪些区域是活跃的,哪些神经元正在与其他神经元交流,它们在向你的肌肉发送什么信号?
172 0
超声波「读心术」!读懂恒河猴的想法,无需开颅植入电极
|
数据挖掘
STM32入门开发: 制作红外线遥控器(智能居家-万能遥控器)
STM32入门开发: 制作红外线遥控器(智能居家-万能遥控器)
912 0
STM32入门开发: 制作红外线遥控器(智能居家-万能遥控器)
|
人工智能 自然语言处理 算法
唇语识别真会是语言交互的终极战场?
在今年的乌镇世界互联网大会上,搜狗展出了一项黑科技——唇语识别,12月14号搜狗在北京又公开演示了这项技术。作为行业领先的唇语识别系统,搜狗在非特定开放口语测试中,通用识别的准确率在60%以上,而在车载、智能家居等垂直场景下,已达到90%的准确率。
唇语识别真会是语言交互的终极战场?
Qt 实现脉搏检测-2,简陋的功能产品
今天终于可以接上硬件来显示真是的脉搏情况了,上图
174 0
Qt 实现脉搏检测-2,简陋的功能产品
|
机器人
DNA机器人进化!这款软件能用几分钟造出复杂结构纳米设备,进入你的身体执行任务
DNA机器人进化!这款软件能用几分钟造出复杂结构纳米设备,进入你的身体执行任务
170 0