如何破解一个蓝牙锁
前言
随着物联网各类技术的逐步进步,越来越多的智能设备出现在我们生活中,智能锁在锁具市场上所占的份额将会越来越大,甚至超过传统锁,成为主流。而在智能锁中,因为低功耗蓝牙技术的推广,以及受外部环境限制小,通过手机APP交互方便等特点,很多智能锁采用的就是以BLE蓝牙芯片作为控制单元,控制电机或锁簧转动的模式,实现开关锁功能。与其他的安全问题相比,锁具的被破解,可能造成的危害更大,本文通过以破解某型号蓝牙锁,来展示目前蓝牙智能锁可能面临的安全风险。
蓝牙锁介绍
蓝牙锁由于不受外部环境限制,功耗较低,和手机交互方便,目前用的比较多,形状也五花八门,例如目前使用最广泛的一些智能蓝牙锁。
如何去破解一个蓝牙锁
目标介绍
这个属于低功耗蓝牙锁,使用app 绑定之后可以开启,还能共享密码,修改密码。
内部构架
显微镜查看电路板
拆解
蓝牙锁内部搭载了一块CC2541蓝牙芯片,通过控制电机驱动芯片,带动卡榫运转,从而形成拉锁的开关。CC2541是TI推出的一款专门适用于BLE和专用的2.4GHz应用的SOC芯片解决方案,CC254X在目前物联网蓝牙通信解决方案中,市场占有率很高,应用场景非常广泛。
探测
使用app初步连接探测,可以看到
开锁流程
Logcat 查看app日志
流程为
攻击方式
一般对于蓝牙锁的攻击方式有三种
1、重放攻击
2、暴力破解(6位数字)
3、云端漏洞
重放攻击
通过蓝牙抓包分析,发现通信过程没有加密,可以重放获取认证密码,但如果要模拟真实的智能锁攻击场景,显然不能通过如此显眼的方式,真实环境中往往很难有一个给我们抓包或劫持的场景,所以最好的方式是远程无接触开锁,需要去找云端的漏洞。
云端漏洞
云端是Thinkphp5 写的,稍微看了一下,存在有两个漏洞。无认证可以遍历所有id拿到所有锁的信息
没有关闭调试模式会泄露信息,传入一个空的id会吧所有锁的信息报错显示出来,泄露所有锁的密码以及绑定的电话号码mac地址等信息。
漏洞利用
对于真实的破解锁场景,最好用一个手机app来开锁掩人耳目,综合以上分析,编写一个开锁Android app 。
工作流程为
利用 com.inuker.bluetooth 库快速开发
APP界面
视频演示
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