前言

随着物联网各类技术的逐步进步,越来越多的智能设备出现在我们生活中,智能锁在锁具市场上所占的份额将会越来越大,甚至超过传统锁,成为主流。而在智能锁中,因为低功耗蓝牙技术的推广,以及受外部环境限制小,通过手机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