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.使用访问控制过滤京东微联的控制会话请求,只允许京东微联账户发送控制指令。

*作者:geekpwn,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2015-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

阿里Android客户端一面经历

猝不及防的空降,表示电影刚开场、等了两个星期的一面应该是简历面吧,终于打过来了。讲道理并不敢拒面,天知道下次什么时候打过来。

9810
来自专栏携程技术中心

干货 | 携程呼叫中心异地双活——座席服务的高可用

颜值高的,点上面! 随着业务量的不断上升,呼叫中心已经从单纯的大容量单中心逐渐向多地多中心演化,在这种架构下,多地呼叫中心的统一协作成为整合资源、提升可用性、提...

55190
来自专栏开源项目

码云小课堂 | 主流的开源协议有哪些?我们该如何选择?

主流的开源协议有哪些?我们该如何选择? License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的...

409100
来自专栏开源项目

【码云周刊第 10 期】放码过来,四个男人的带头冲锋!!

一周热门资讯回顾 码云全面改版:新界面新态度,更一致的体验 DuangDuangDuang!码云项目的 Readme.md 特殊技能 微软技术透明中心...

41370
来自专栏应用案例

一次支付系统升级过程经验教训分享

一、主题分享 大家好!我今天讲的不是什么高深的技术或者产品设计,只是前一段时间发生的真实的上线过程。大家就权当我讲一个故事。里面涉及的技术也比较简单,请大家可以...

23180
来自专栏FreeBuf

左右互博:站在攻击者的角度来做防护

0x01、前言 习惯性的讲点废话,笔者是一名菜鸟安全工程师。有幸参与过两次安全方面的比赛,有些个人的体会,所以就有了这篇文章了。(自知技术还很菜,望各位大牛不喜...

27890
来自专栏Crossin的编程教室

3分钟破译朋友圈测试小游戏

最近,朋友圈时不时会流行起某个测试类小游戏,比如你的性格图谱啦,你是三体中的哪个角色啦,你有什么超能力啦……昨天晚上在某个群里,又被一个测测你是什么书的小游戏刷...

48170
来自专栏大数据和云计算技术

超融合产品分析系列(1):nutanix方案

导言 上篇概述了一下现在非常火的超融合《超融合概述》。接下来要分析一下各家的超融合方案,今天开始第一家的分析:nutanix的超融合方案分析。 根据各种公...

91460
来自专栏安智客

Android8.0中CTS测试对TEE的要求(Google 9月1日文档)

我们知道TEE在Google Android7.0后成为一种强制性要求,那么Android8.0又是如何要求的呢? 我们来看在9.1日Google最新的文档。 ...

35960
来自专栏IMWeb前端团队

如何选一个心仪的腾讯大王卡手机号

本文作者:IMWeb yisbug 原文出处:IMWeb社区 未经同意,禁止转载 最近淘了一个支持4G的iPad Pro,考虑买一个什么类型的流量卡比...

457100

扫码关注云+社区

领取腾讯云代金券