欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

对小米Mi Band 2的破解

来源:本站整理 作者:佚名 时间:2019-03-15 TAG: 我要投稿

Mi Band 2(小米手环2)是小米公司在2016年6月2日正式发布的一款运动追踪产品,它支持运动计步、睡眠监测、久坐提醒、心率监测(可实时监测)、来电提醒、屏幕解锁(Android系统)、振动闹钟和免密支付等功能。
要想让你的MiBand 2和手机绑定,具体过程有以下5步:
1.首先在手机的应用商店里下载小米运动APP,并打开手机蓝牙。
2.用手机号注册登录小米帐号,或直接登录小米账号,并进入手环的绑定页面里。
3.开始搜索手环,蓝牙搜索需要时间,需耐心等待片刻。
4.出现“请点击手环”的提示后,在手环上点击触摸按键。
5.绑定完成会出现√,这样手环就绑定完成啦!
破解MiBand2设备前的准备
本文所讲的破解,正是利用了以上与手机绑定过程中的蓝牙连接过程。
对Mi Band 2的破解还得从发表的一篇博文开始谈起,当时我在文中谈到有关运动追踪产品的监控问题。后来,我的朋友Volodymyr shymansky 帮助我在Github上找到了Mi Band 2的代码。根据这些代码,我就可以顺利进入连接到Mi Band 2,运行通知,并开启心脏测量等功能。但这并不是我的本来目的,我地目的是要从传感器获取实时原始数据,以便我了解Mi Band 2的真实追踪情况。简而言之,我想开发一个健身运动的预测工具,所以我决定破解我的健身追踪器。
由于我没有任何破解低功耗蓝牙的经验,所以首先我试着了解这项技术的工作原理,以及它们之间的不同功能是如何组合在一起的。事实证明,这很简单,以下就是我总结的一些经验:
1.每个低功耗蓝牙都有一些特定的服务对象;
2.每个服务对象都有一些自己的特点;
3.其中一些特点含有特定的描述符(如果特征具有多个参数或类型为读取或通知类型);
4.某些特性仅具有读或写访问权限(例如,当前时间,电池状态或修订信息);
5. 有些特征比较复杂,需要使用请求或通知循环(例如实时心率监视器或授权);
除了了解以上这些基本的原理外,你还需要两个可以帮助你调试低功耗蓝牙的应用程序:Wireshark协议分析器和BLE蓝牙调试工具。为此你需要进入你的Android手机开发者选项来进行相应设置,由于本文我讨论在iOS中的情况,所以感兴趣的iOS用户请自行找到相同的设置选项。
wireshark是一款专用于网络封包的工具,比较适用于网络管理和安全工程这个职业。通过使用Wireshark免费开源分析,为当前和未来的网络工程师,网络架构师,应用工程师,网络顾问和其他IT专业人员提供有关故障排除,保护,分析和维护高效,高效的网络基础架构的最佳实践的教育工具。BLE蓝牙调试工具是一款好用的蓝牙串口调试工具,用户能够在线对蓝牙设备进行数据的接受以及显示,能够在手机上进行数据的传送,支持一键扫描连接,能够直接打印数据,是一个非常实用的工具。
准备好调试工具,并设置好对应的选项,就可以开始进行破解MiBand2设备了。
破解MiBand2设备
首先,你需要从手机应用程序取消配对的Mi Band2设备。
现在让我们看看Mi Band2的服务特性,打开BLE调试器开始扫描,你会看到以下的场景。

将你的设备MAC地址保存在某个地方,稍后我们要用到它。现在让我们连接到Mi Band2,看看它有哪些服务和特性。

通过这两个简单的操作,我们已经获得了有关Mi Band2设备的一些有用信息。不过获取信息的另一种方法是使用命令行工具,如hcitool和gatttool。
首先,要通过以下命令从命令行运行BLE扫描。
sudo hcitool lescan
连接到低功耗蓝牙的Mac地址并检索服务和描述符:
sudo gatttool -b YOUR_MAC -I -t random
> connect
> primary
> char-desc
在某些情况下,BLE堆栈可能出现故障,你可以打开或关闭蓝牙设备或运行以下命令。
sudo hciconfig hci0 reset
如何嗅探数据
为了嗅探手机与低功耗蓝牙通信时的数据,我们需要在开发设置中启用蓝牙日志。要执行此操作,你需要先在Android设备上启用开发人员设置。为此,请按照以下步骤操作。
注意:在Android 4.1及更低版本中,默认情况下可以使用“开发人员选项”。而在Android 4.2及更高版本中,你必须按如下步骤,才能启用“开发人员选项”:
1.在Android设备上打开“设置”应用;
2.选择系统(该操作只需要在Android 8.0或更高版本的设备上才有);
3.滚动到底部,然后选择“关于手机”的选项;
4.滚动到底部,然后选择“版本号”选项,点击7次;
5.返回上一操作屏幕,在底部附近找到“开发人员”选项。
现在打开“开发”设置并找到“Enable Bleutooth HCI snoop log” 选项,启用它。在此之后,来自设备与所有外部蓝牙设备的所有蓝牙通信将被记录下来。你可以通过访问名为btsnoop_hci.log的文件来查看日志(在我的Android 7.0设备,日志位于/mtklog/btlog/btsnoop_hci.log。
身份验证
现在,我们需要执行以下步骤来获取有关身份验证(配对)如何工作的一些信息。
1.打开蓝牙和HCI日志;
2.将你的设备与Xiaomi Android App配对;
3.关闭蓝牙;
4.将你的btsnoop_hci.log下载到你的PC;
5.用Wireshark打开它;
6. 找到处理0x0055的第一个ATT协议请求(0x0055代表安徽华米信息技术有限公司,小米可穿戴设备就是该公司生产的);
此时,你看到的场景如下所示。

这个请求是验证过程的第一步,从上图中可以看出,句柄UUID的值是:
1.配对设备:
主要服务UUID是0000fee1-0000-1000-8000-00805f9b34fb

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载