白帽故事 · 2024年4月26日

入侵高露洁智能牙刷

背景介绍

今天来分享国外 Harish SG 安全研究员破解高露洁智能牙刷的故事,本文将为你带来如何入侵 BLE 供电智能牙刷,以及攻击者是如何通过耗尽电池和控制牙刷的振动电机来远程控制智能牙刷的。

img

逆向Android应用

img

一开始,我们的白帽小哥对牙刷的Android APP进行了逆向,以方便了解应用程序内部是如何工作的。不幸的是,他无法完全逆向应用程序,因为应用程序使用了 Android 原生函数来发送和接收 GATT 命令以通过 BLE 进行刷机,因此它不支持 ARM 二进制逆向工程工具(如 IDA64、ghidra 等)对 .so 原生文件进行逆向工程,因此白帽小哥在 Android 的开发者选项中启用了 btsnoop 或蓝牙日志记录选项来记录从手机发送和接收的所有蓝牙数据包。

使用 adb 将 Android 手机上的日志收集到 PC 中,然后对日志进行分析,找到每个蓝牙服务 (GATT) 的值,这些值用于控制牙刷,基本上任何支持 BLE 的设备都可以连接到牙刷,无需任何 PIN 码或密码,而且这个牙刷的蓝牙模块总是开着的,所以任何在牙刷范围内的人都可以连接和控制它。

从技术上讲,攻击者可以让牙刷一直工作并耗尽其电量,从而对牙刷的使用者造成困扰。

img

img

从Wireshark日志分析中可以发现发送1101到上面的GATT服务,可以远程打开牙刷。同时还发现发送15000064022c011027到上面的GATT服务可以让牙刷的LED灯不停闪烁。

img

另外发送5000到上述GATT服务还可以让牙刷在正常模式下振动,而发送5001到上面GATT服务甚至可以让牙刷在敏感模式下振动,另外还能够远程启用刷机中的 DFU 模式并推送恶意固件更新。

白帽小哥还特意拍摄了视频用于演示利用 NRF Connect 应用程序如何破解高露洁智能牙刷:

image-20240426095014366

以上内容由骨哥翻译并整理。

英文原文:https://infosecwriteups.com/hacking-into-colgate-smart-tooth-brush-for-fun-91d16907f20f