硬核黑客笔记-不聪明的蓝牙锁

admin 2021年7月14日18:22:57评论55 views字数 2082阅读6分56秒阅读模式

本文首发于奇安信攻防社区

社区有奖征稿


· 基础稿费、额外激励、推荐作者、连载均有奖励,年度投稿top3还有神秘大奖!

· 将稿件提交至奇安信攻防社区(点击底部 阅读原文 ,加入社区)


点击链接了解征稿详情



0x00 前言

大家好, 我是Kevin2600. 最近设计了一套物理安防渗透课程, 在研发过程中遇到了一把蓝牙锁, 因其之前被大神Stawomir Jasek破解过, 本以为会是个简单的复现过程. 未曾想此蓝牙锁的安全机制已经完全升级, 只得从头开始研究. 这里跟大家分享一下心得. 同时借此机会向BaCde 在研究过程中的协助表示感谢。
硬核黑客笔记-不聪明的蓝牙锁

0x01 开局

传统物理安全的历史由来已久, 涉及各行各业的各个领域. 门禁; 视频监控; 警报系统种类繁多. 尤其是门锁的历史甚至可以追述到古埃及. 门锁这个作为保护民众财产的重要器材, 一直就伴随着人类文明的发展. 甚至可以说锁具的发展也体现了人类智慧的结晶.随着科技一日千里, 物联网的逐渐流行. 物理安防领域也发生了翻天覆地的变化. 采用蓝牙或NFC 作为智能门锁的通讯方式几乎成了标配. 并且有人还认为智能锁比传统锁具更加安全, 比如以下这段具有代表性的网友留言。
硬核黑客笔记-不聪明的蓝牙锁
然而真实情况是在方便了用户操作的同时, 因设计缺陷所导致的安全问题也层出不穷. 在过去几年里不断有研究人员在智能门锁产品中发现安全漏洞. 其中由Stawomir Jasek发现的某蓝牙锁厂商在自研加密方案上的设计缺陷非常具有代表性. 具体分析过程建议大家可以去看原文, 简单来说其发现有以下几个缺陷。
缺陷1: 蓝牙锁APP的登录验证密码是以明文的方式传输的. 只需要在用户登录的时候, 捕获蓝牙流量即可获取密码。
硬核黑客笔记-不聪明的蓝牙锁
缺陷2: 蓝牙锁APP在跟锁交互之初会发送类似应答挑战的数据包. 然而这样的应答响应的发起方竟然是手机APP端. 也就是说如果采用中间人攻击的方式, 每次发给锁端的挑战数据可以是一样的, 因而锁定应答数据也会是一样. 这就给我们带来了数据重放攻击的机会。
硬核黑客笔记-不聪明的蓝牙锁
硬核黑客笔记-不聪明的蓝牙锁
缺陷3: 通过逆向蓝牙APP找到了开发人员硬编码的超级密码 741689. 进而分析出整个数据包的结构. 看来业界常说没事不要自研密码算法是有道理的。
硬核黑客笔记-不聪明的蓝牙锁
硬核黑客笔记-不聪明的蓝牙锁
本来事情到这里, 只需复现以上几个缺陷就该结束了. 没想到一上来捕获的用户登录数据包跟期待的就完全不同, 仔细一看这分明是加密后的密文啊, 说好的明文密码呢?
硬核黑客笔记-不聪明的蓝牙锁

0x02 分析

先来了解下这款蓝牙锁的APP吧. 其流程很简单先跟目标锁建立连接, 随后需要输入正确的密码 (默认是123456). 连接成功后便可对锁进行开关操作。
硬核黑客笔记-不聪明的蓝牙锁
对APP反编译后找到几个至关重要的信息. 例如APP包含的UUID和其功能。
硬核黑客笔记-不聪明的蓝牙锁
以及蓝牙锁采用的密钥信息, 很明显开发者用硬编码的方式将AES密钥写在APP 中. 同时我们还能找到各个操作指令的硬编码, 如登录时的 616。
硬核黑客笔记-不聪明的蓝牙锁
除此之外开发者还将加密前和加密后的指令信息写在了log 文件中, 也许是为了方便调试吧. 当然我们也一样可以通过logcat 指令来查看和分析。
硬核黑客笔记-不聪明的蓝牙锁

0x03 验证

基于前面的分析, 可得出结论, 升级过后的Smart-lock 仍有设计缺陷, 且会被黑客滥用. 让我们一起来验证下吧。

缺陷1: 虽说安全机制采用了AES128. 但因为是对称性加密, 其16字节的密钥被开发人员以硬编码的形式写在APP中. 这让我们在获取蓝牙数据包后, 便可轻易破解出原文.如下图所示, 用户登录时的密文仍可被破解并获取密码。
硬核黑客笔记-不聪明的蓝牙锁
缺陷2: 蓝牙锁APP在跟锁交互时发送的应答挑战数据包, 依旧是由手机APP端发起的. 也就是说数据重放攻击隐患依旧存在. 我们甚至只需要一台手机便可完成重放攻击的整个操作. 如下图所示将编辑好的X ML 文件导入nRF Connect 宏文件, 或直接对UUID进行写操作即可。
硬核黑客笔记-不聪明的蓝牙锁
硬核黑客笔记-不聪明的蓝牙锁硬核黑客笔记-不聪明的蓝牙锁

0x04 结语

通过Smart-Lock这个案例, 相信大家对蓝牙锁应用的安全分析有了更多了解. 市面上的蓝牙锁种类繁多, 每款产品的安全程度也各不相同. 建议用户考虑相对重视自身安全的大品牌产品. 从开发者的角度来说在设计初期就需将安全防御考虑进去. 同时也要避免如硬编码这类错误, 以免被攻击者滥用。

0x05 参考文献

https://github.com/kevin2600/BTLE-SmartLock-Hacking

https://smartlockpicking.com/tutorial/how-to-pick-a-ble-smart-lock-and-cause-cancer/

END



【版权说明】本作品著作权归Kevin2600所有,授权补天漏洞响应平台独家享有信息网络传播权,任何第三方未经授权,不得转载。



硬核黑客笔记-不聪明的蓝牙锁
Kevin2600

安全研究员


敲黑板!转发≠学会,课代表给你们划重点了

复习列表





你的跑步打卡数据是真实的吗?


Celery Redis未授权访问利用


无线电攻击初探


实战遇见到的好用提权方法集合


DIY 苹果无线充电绕过手机充电认证


某CMS代码执行漏洞分析

硬核黑客笔记-不聪明的蓝牙锁


分享、点赞、在看,一键三连,yyds。
硬核黑客笔记-不聪明的蓝牙锁

点击阅读原文,加入社区,获取更多技术干货!

本文始发于微信公众号(补天平台):硬核黑客笔记-不聪明的蓝牙锁

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月14日18:22:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   硬核黑客笔记-不聪明的蓝牙锁http://cn-sec.com/archives/422489.html

发表评论

匿名网友 填写信息