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给在线的洗衣机发送一些控制指令。

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

时间: 2024-10-11 20:40:43

HackPwn:TCL智能洗衣机破解细节分析的相关文章

智能路由器安全特性分析

智能路由器安全特性分析 腾讯安全中心 · 2015/07/21 14:09 博文作者:zhuliang 0x00 前言 随着互联网的发展,越来越多公司推出了智能路由器,这些智能路由器给用户带来了众多便利的功能,同时也采用了一些传统路由器不具备的安全特性,本文在简要分析下这些安全特性,供相关技术人员参考. 0x01 概述 传统路由器有意或无意地使用了种种不安全的特性,如预留后门,这些后门原本是为了现场调试方便,但是也开放了黑客进入的通道.又比如某些路由器WPS(Wi-Fi Protected Se

rip路由协议 细节分析及实例配置【完整版】

rip路由协议 细节分析及实例配置[完整版] RIP呢,这是一个比较重要的知识点,所以它的知识覆盖面很广泛:但是呢,我将会对碰到的问题进行一些分析解刨(主要是为了帮助自己理清思维):也希望能够从中发现自己不足的问题,也希望能够找到一些比较冷僻的问题,这样子才会有意思多了.   先上图,这个就是我准备做实验的基本用图了.现在已经按照图上标注的IP将所有基本配置设置好了. 在这个实验中,大多数都是基于ripv1,只有在需要比较的时候才会把版本改成ripv2,然后判断完之后再切换为ripv1: 第一步

中国智能硬件创新产业发展分析2017

2017年7月10日,易观发布了<中国智能硬件创新产业发展分析2017>的专题分析,智能硬件创新产业涵盖了智能家居等多个领域,多种硬件产品相继进入快速发展阶段,应用更加趋向于场景化.随着硬件产品品类及数量的增加,智能硬件平台开始崛起,人工智能技术带来语音交互.计算机视觉等更为多样的交互方式,智能音箱.服务机器人等产品向物联网入口级产品方向发展.通过整合“终端+数据+内容+服务”等产业间资源,智能硬件产品不断突破信息孤岛,智能硬件产业正蓬勃发展.

BI大数据智能可视化大屏分析系统建设软件开发

要建设企业级大数据可视化分析系统,需要构建企业统一的数据库体系或者直接将已有数据库对接.进行数据建模,为数据分析可视化呈现奠定基础.通过数据分析管理系统,有了数据基础,就可以构建BI大数据智能可视化大屏分析,满足企业的业务需求,提升数据价值. BI大数据智能可视化大屏分析系统建设软件开发的技术实现: 1.Hadoop:使用 hadoop作为系统的基础框架,对数据进行分布式的存储和分析.HDFS是 hadoop提供的分布式存储系统,它对体积巨大的数据切分成多个小块存储的不同的节点,每个块又做了多个

如何针对全自动纸塑分离机 输送烘干机设备全面的细节分析

何针对全自动纸塑分离机 输送烘干机设备全面的细节分析: 现在市场对全自动纸塑分离机的认可好使很好的,主要是目前来说揭纸分离效果比较有效的设备,怎样在原来基础上能够更好的有所发展才是最完美的,目前输送烘干机设备是纸塑分离机机器的上料使用跟组设备主要是生工个省市的安保.主要市场打开的局面现在,就是输送烘干机,纸塑分离机 打造精品设备皮带输送 网带输送 链板输送 拐弯输送,烘干机 食品烘干,等设备 原文地址:https://blog.51cto.com/14341866/2398816

RFID入门:Mifare1智能洗澡卡破解分析

科普前置知识: Mifare Classic card提供1k-4k的容量,我们经常见到的是Mifare Classic 1k(S50),也就是所谓的M1卡.M1卡有从0到15共16个扇区,并且每个扇区都有独立的密码,每个扇区配备了从0到3共4个段,每个段可以保存16字节的内容,反正从0开始数 就对了(和数组下标为0开始一样). 每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的00扇区的00段,也称为厂商段,其中前4个字节是卡的UID,第5个字节是卡UID的校验位,剩下的是厂商数据.

Chromium和WebKit的智能指针实现原理分析

C++不像Java一样,由虚拟机负责对象分配和释放.也就是说,开发人员使用C++编写代码时,要自己负责对象分配和释放.WebKit和Chromium都是使用C++开发的,因此它们也面临上述问题.在解决对象释放问题时,要做到在对象不需要时自动释放,因为手动释放会带来忘记释放或者释放后又继续使用的隐患.智能指针是实现对象自动释放的有效技术手段.本文就分析Chromium和WebKit的智能指针的实现. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 在现实中,

一个“文本文件”打开并且保存多元化的程序细节分析

实验目标:1)提供一个文件夹浏览框,让用户选择需要打开的文本文件,打开并显示文件内容.      2)当用户点击"OK"按钮的时候,比较当前文件是否被修改过,如果修改过,则提示"覆盖保存"."放弃保存"或"另存为"并实现其功能. import easygui as g import os file_path = g.fileopenbox(default="e:/pathonaaa/a/") with op

【转】华为Hbase二级索引(Secondary Index)细节分析

华为在HBTC 2012上由其高级技术经理Anoop Sam John透露了其二级索引方案,这在业界引起极大的反响,甚至有人认为,如果华为早点公布这个方案,hbase的某些问题早就解决了.其核心思想是保证索引表和主表在同一个region server上. 更新:目前该方案华为已经开源,详见:https://github.com/Huawei-Hadoop/hindex 下面来对其方案做一个分析. 1.整体架构 这个架构在Client Ext中设定索引细节,在Balancer中收集信息,在Copr