使用 linux 操控小米手环 1 代

本文作者:reboot(来自信安之路无线安全小组成员)

在这个智能加无线的时代,人们早已习惯于使用一些智能设备进行学习丶生活等等。可是你手中的智能设备安全吗?今天我们将使用无线的一些技术来带大家夺取手环的控制权。

基础知识点

按套路来,文章开头先讲几个需要知道的知识点:

低功耗蓝牙

低功耗蓝牙简称 BLE,是在蓝牙 4.0 之后提出来的技术,由于非常的节能所以被广泛的应用到许多智能设备上,例如智能跑鞋的芯片、计步器等,以及下面要讲的手环。

HCI

HCI(主机控制器接口),是蓝牙协议栈的重要部分

HCI Packet 在 Host 和 Control 之间进行传输,通常有三种类型 Command,Event,Data (ACL 和 SCO/eSCO)。其中 Data 是双向的, Command 只能从 Host 发往 Control, Event 始终是 Control 发向 Host 的。在本文中这点只需要了解即可。

ATT

ATT 允许设备作为服务端提供拥有关联值的属性集(服务端提供数据,客户端请求数据)。

让作为客户端的设备来发现、读、写这些属性;同时服务端能主动通知客户端

ATT 定义了两种角色: 服务端 (Server) 和客户端 (Client)

ATT 中的属性包含下面三个内容:

1、Attribute Type : 由 UUID(Universally Unique IDentifier) 来定义

2、Attribute Handle : 用来访问 Attribute Value

3、A set of Permissions : 控制是否该 Attribute 可读、可写、属性值是否通过加密链路发送

一个设备可以同时拥有 Server 和 Client,而一个 Server 可以支持多个 Client。

说了这么多废话。。其实这里只需要知道 ATT 数据包里面的内容就是用来发送指令。

实验环境:

小米手环 1 代、小米手机一部、Kali Linux、蓝牙适配器 CSR4.0(使用电脑自带的也可以)

1、将手环通过小米运动绑定到手机上,然后开启来电提醒(手环会震动)。

2、手机启用开发者模式并打开蓝牙

3、用另一个手机打这个手机,手环震动后挂断,然后到文件目录找到蓝牙日志文件并拷到电脑上:

4、使用 wireshark 打开日志:

wireshark 是一款用来抓包和分析数据包的非常好一款工具。

5、因为 HCI 的相关命令是用来控制连接的,而 ATT 才是用来执行操作的,所以我们只看 ATT 数据包,对协议进行排序,然后 ATT 的数据包就会按时间顺序进行排序:

找到 Sent Write Command..... 这一类的数据包,这些数据包就是往设备发送命令的数据包,点开一个,可以看到如图中红框标出的点,handle 表示句柄,是,最下面的 0x00 代表的是没有震动的值,因为我们是要“调戏”,自然希望它能震动,所以我们换个数据包,找到下面这个:

可以看到 强烈震动的值是 0x02,对应的是 0200(因为 02 是在高位,所以低危自动补 0,对应值是 0200)

6、打开蓝牙接口

首先用 hciconfig 看一下自己的蓝牙适配器,通常电脑自带的是 hci0,外接的是 hci1 然后启动它:

hciconfig hci1 up

注:

1.因为这款手环的协议栈用的是 Bluez,所以它的调试工具是 hcitool 和 gatttool。

2.这里有的人会出现打不开的情况,需要将:

这里的勾去掉才能找到蓝牙适配器。

7、扫描设备,因为是低功耗设备所以使用命令:

hcitool lescan

8、扫描设备,并连接:

有时候会连接不上,重试两下就可以了

注:

有的人这里会遇到 Connection Refused (111) 的错误:

(这张图与这次实验的设备没关系。。只是举个例子)

这个的话需要执行如下修改:

首先:

vim/etc/bluetooth/main.conf

在最下面添加 :

 EnableLE = true       AttributeServer = true    DisablePlugins=pnat然后service bluetooth restarthciconfig hci1downhciconfig hci1 up

然后再次连接:

9、使用命令 char-write-cmd(gatttool 中用往设备写命令的命令)来发送命令:

char-write-cmd+句柄+值

这里填上前面得到的数据,完整命令为:

char-write-cmd 0x0051 0200

回车后,手环就会震动了:

总结

由上面的实验可以看到,我们很轻易的就可以控制手环并发送命令,而不需要进行接触,当然,这里肯定有人要说“前面你不是把小米手环和自己手机绑定了吗?”,是的,这个绑定是为了抓包来分析那些参数的值,而这些值在开发的时候是通用的,因为厂家不可能为这么多的手环都分配不同的值。所以我们只需要从一个手环上知道了这些值就可以按这个方法去控制别的手环的了。

当然了,这个实验更主要的就是反映了蓝牙安全性的问题。现在物联网技术发展非常的快,当年我刚听说到这个名词的时候还是 12 年,那会哪有什么智能手环、智能跑鞋、智能手表的,而现在这些东西已经是烂大街了。但是这些设备的安全性却十分的堪忧。比如你有可以记录心率和睡眠质量的手环,黑客通过抓包等手段来获取数据并分析处你睡眠质量较差、心率较快的时候,突然给你的手环发送进行强烈震动的命令,将你从梦中惊醒,大家都有惊醒的经历,都知道这时候你的心跳肯定会加快,若是心脏病患者这时候可能就。。。咳咳。。。所以说不要小看这种小设备的安全问题。甚至再扩展到以后的医疗设备、无人驾驶。。等等一系列的使用了无线手段的技术,若忽视了安全性那后果自行脑补。。。

本文分享自微信公众号 - 信安之路(xazlsec)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-14

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人称T客

问题疫苗高分评标 问责的不能仅限企业

故事总是惊人的相似,曾经的三鹿,今天的长生,从奶粉到疫苗,目标群体都发生在孩童身上,一时间群情激忿,刘强东怒了,因为他的孩子也在问题疫苗之列,还有人说安监局、食...

18100
来自专栏FreeBuf

别让你的手机成为恶意软件的温床

手机早已成为人们生活中不可或缺的一部分,在娱乐,移动支付,社交等方面都起到举足轻重的作用,可以说在当今社会手机就是人们重要的“生存”工具之一。但是在享受时代带给...

17600
来自专栏机器之心

学界 | 担心面部识别泄露隐私?多伦多大学图像「隐私过滤器」了解一下

每当用户将照片或视频上传到社交媒体平台时,这些平台的面部识别系统都会对用户有一定的了解。这些算法会提取包括用户的身份、所在地以及认识的人在内的数据,而且还在不断...

15500
来自专栏FreeBuf

Fredi的无线婴儿监控存在漏洞可被利用为间谍摄像机

近日,SEC Consult的安全研究人员发布报告称,Fredi公司的无线婴儿监控设备存在严重漏洞,该漏洞可被未经身份验证的攻击者所利用,不仅能够监控他人还能藉...

19400
来自专栏FreeBuf

发现微信支付的重大漏洞,白帽子竟然先联系了360?

随着微信支付逐渐向海外市场普及,越来越多的外国友人及店铺开始使用微信支付。不过却发生了一件有趣的事情,国外一名白帽子发现了微信支付的漏洞,但却不知道如何联系微信...

10730
来自专栏趣谈编程

高并发下的HashMap

HashMap不是一个线程安全的类,在并发下可能会出现死循环(JDK1.7),今天我们来聊聊这个死循环是如何形成的

12400
来自专栏FreeBuf

黑客连卫星都抢,美国国安局慌得一比

随着科技的高速发展,互联网早已遍布我们生活中大大小小各个角落。伴随着网络而生的便是各种安全问题,看似无所不能的黑客时时刻刻通过各种案例提醒我们要注重自身数据安全...

16700
来自专栏人称T客

微信办公不安全 错在微信还是管理?

微信办公不安全,最近被政府相关单位点名批评,多家媒体更是一路声援转发,从五月份事起至今,微信俨然成为了企业办公的雷区,工作用微信不安全甚至上升到了企业安全高度,...

19600
来自专栏FreeBuf

【FB TV】一周「BUF大事件」:WiFi联盟发布新一代WPA3安全标准;2018MOSEC移动安全技术峰会上海举行

本周BUF大事件还是为大家带来了新鲜有趣的安全新闻,上周五第四届MOSEC移动安全技术峰会如期举行,来自全球的优秀互联网专家齐聚上海;江苏检方依法逮捕山寨微信案...

12600
来自专栏FreeBuf

VOOKI:一款免费的Web应用漏洞扫描工具

Vooki是一款免费且用户界面友好的Web应用漏扫工具,它可以轻松地为你扫描任何Web应用并查找漏洞。Vooki主要包括三个部分,Web应用扫描器,Rest A...

38030

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励