如何破解一个蓝牙锁


文章目录
  1. 1. 前言
  2. 2. 蓝牙锁介绍
  3. 3. 如何去破解一个蓝牙锁
    1. 3.1. 目标介绍
    2. 3.2. 内部构架
    3. 3.3. 探测
    4. 3.4. 开锁流程
    5. 3.5. 攻击方式
    6. 3.6. 重放攻击
    7. 3.7. 云端漏洞
    8. 3.8. 漏洞利用
  4. 4. 参考

前言

随着物联网各类技术的逐步进步,越来越多的智能设备出现在我们生活中,智能锁在锁具市场上所占的份额将会越来越大,甚至超过传统锁,成为主流。而在智能锁中,因为低功耗蓝牙技术的推广,以及受外部环境限制小,通过手机APP交互方便等特点,很多智能锁采用的就是以BLE蓝牙芯片作为控制单元,控制电机或锁簧转动的模式,实现开关锁功能。与其他的安全问题相比,锁具的被破解,可能造成的危害更大,本文通过以破解某型号蓝牙锁,来展示目前蓝牙智能锁可能面临的安全风险。

蓝牙锁介绍

蓝牙锁由于不受外部环境限制,功耗较低,和手机交互方便,目前用的比较多,形状也五花八门,例如目前使用最广泛的一些智能蓝牙锁。

img

img

img

img

如何去破解一个蓝牙锁

img

目标介绍

这个属于低功耗蓝牙锁,使用app 绑定之后可以开启,还能共享密码,修改密码。

img

内部构架

显微镜查看电路板
img

拆解
img

蓝牙锁内部搭载了一块CC2541蓝牙芯片,通过控制电机驱动芯片,带动卡榫运转,从而形成拉锁的开关。CC2541是TI推出的一款专门适用于BLE和专用的2.4GHz应用的SOC芯片解决方案,CC254X在目前物联网蓝牙通信解决方案中,市场占有率很高,应用场景非常广泛。

探测

使用app初步连接探测,可以看到

img

开锁流程

Logcat 查看app日志

img

流程为

img

攻击方式

一般对于蓝牙锁的攻击方式有三种

1、重放攻击
2、暴力破解(6位数字)
3、云端漏洞

重放攻击

img

img

通过蓝牙抓包分析,发现通信过程没有加密,可以重放获取认证密码,但如果要模拟真实的智能锁攻击场景,显然不能通过如此显眼的方式,真实环境中往往很难有一个给我们抓包或劫持的场景,所以最好的方式是远程无接触开锁,需要去找云端的漏洞。

云端漏洞

云端是Thinkphp5 写的,稍微看了一下,存在有两个漏洞。无认证可以遍历所有id拿到所有锁的信息

img

没有关闭调试模式会泄露信息,传入一个空的id会吧所有锁的信息报错显示出来,泄露所有锁的密码以及绑定的电话号码mac地址等信息。

img

漏洞利用

对于真实的破解锁场景,最好用一个手机app来开锁掩人耳目,综合以上分析,编写一个开锁Android app 。
工作流程为

img

利用 com.inuker.bluetooth 库快速开发

img

APP界面

img

视频演示

https://v.qq.com/x/page/b051058vicv.html

参考

ti官方页面 http://www.ti.com.cn/product/cn/CC2541
cc2541蓝牙芯片手册 https://wenku.baidu.com/view/c7f99ac7376baf1ffd4fad31.html