我是 Harish SG,一名安全研究员,在 UT Dallas 攻读网络安全硕士学位,在 Cisco 担任 AI 安全实习生,之前曾在 Microsoft Bug Bounty 计划和 Google VRP 上进行猎杀
我分享这篇文章仅出于安全意识和教育目的,我仅分享个人观点,这些都与我在思科的工作无关
在本文中,我将分享我如何破解 BLE 供电的智能牙刷,以及攻击者如何通过耗尽电池来远程造成滋扰,以及攻击者如何远程控制牙刷的振动电机。
免责声明:如果有人滥用本博客中的这些信息来攻击某人,我不承担任何责任,我写这篇文章是为了提高这些应用程序开发人员以及使用这些应用程序和设备的人们的认识
逆向工程 Android 应用程序
最初,我对应用程序进行了逆向工程,以了解应用程序内部如何工作以及它必须获得什么样的权限才能了解从用户收集的数据。但不幸的是,我无法完全逆向工程应用程序,因为使用 Android 本机函数发送和接收 GATT 命令以通过 BLE 刷刷,然后而不是使用 ARM 支持的二进制逆向工程工具(例如 IDA64、ghidra 等)进行逆向工程 .so 本机文件我在 Android 的开发人员选项中启用了 btsnoop 或蓝牙日志记录选项,以记录从手机发送和接收的所有蓝牙数据包。
我使用 adb 实用程序从 Android 手机收集日志到 PC,并分析日志以查找用于控制刷子的每个蓝牙服务 ( GATT ) 的值,基本上任何支持 BLE 的设备都可以连接到此刷子,无需任何 PIN 或密码和蓝牙模块它始终处于开机状态,因此刷子范围内的任何人都可以连接和控制它,而无需其所有者知情
从技术上讲,攻击者可以让该刷子过夜工作并耗尽其电量,从而对该刷子的所有者造成滋扰
从wireshark日志分析中我发现发送1101到上面的GATT服务我可以远程打开刷子
从wireshark日志分析中我发现发送15000064022c011027到上面的GATT服务我可以让刷子LED闪烁
从wireshark日志分析中,我发现发送5000到上述GATT服务我可以编程刷子在正常模式下振动,我发现发送5001到上面GATT服务我可以编程刷子在敏感模式下振动。
我还能够远程启用刷机中的 DFU 模式并推送恶意固件更新
演示视频
在此演示中,我演示了使用 NRF Connect 应用程序破解高露洁智能刷
入侵高露洁智能牙刷以获得乐趣!
结论:
我们得出的结论是,我们可以使用我在上述研究中探索的方法轻松侵入任何 BLE 支持的物联网设备