智慧型手環的漏洞挖掘

2021-10-01 12:22:41 字數 1432 閱讀 1301

在乙個悠閒的陽光午後,拿出乙個未知品牌的藍色小藥……,哦,小手環。用力撕扯半張衛生紙,將擱置已久的手環表面擦拭。

既然是藍芽版的智慧型手環,那必不可少的要介紹一下通訊協議啦。低功耗藍芽(ble)是藍芽技術聯盟設計和銷售的一種魯棒性無線技術,旨在用於醫療保健、運動健身、信標、安防、家庭娛樂等領域的新興應用。相較經典藍芽,低功耗藍芽旨在保持低成本、短距離、可互操作。

生平介紹

協議內容

要使安卓裝置連線上智慧型穿戴裝置(如智慧型手錶),通過經典藍芽的socket連線一般是連線不上的(為什麼說一般呢,因為有些不良廠家和雜牌智慧型手環用的不是低功耗藍芽,這個可以使用經典藍芽連線上),必須要使用ble的 gatt連線才能連線上。

gatt連線涉及到四個比較陌生的名詞:服務(service)、特徵值(characteristic)、描述(discript)、uuid

apk逆向下圖為crc(訊息鑑別碼)在該apk中的構造方式:

雖然看起來很簡單的定位到了我們所需的功能實現**,但從開始到成功定位,**分析和查詢的工作量確是最大的,在整個漏洞挖掘過程中所耗時間也是最多的。但慶幸的是,本次apk並未進行**加固,很容易就成功逆向出**,並且未做**混淆,方便了我們分析,而且省下很多時間,否則可能會耗費更多。

分析出藍芽命令的結構了,來點實際的驗證一下。

分析手環藍芽資訊

分析手環藍芽資訊首先得獲取手環的藍芽屬性,可以使用python指令碼(利用python bluepy模組)對智慧型手環進行掃瞄,

掃瞄得到手環藍芽資訊:

如圖,該手環低功耗藍芽handle為3和14的屬性存在write方法,其中handle為3的屬性同時具有讀和寫的屬性,讀出的值為「lem_s9p」,我們猜測此屬性用於讀或修改裝置名稱,下面資料報分析中我們將重點關注handle為14的屬性。

下面為抓取到的藍芽通訊資料報(主要關注handle為14及0x000e的通訊資料報,篇幅有限給出兩個示例):

與apk內的命令構造模組進行對比,格式完全匹配。開始寫指令碼嘗試傳送一些我們構造的藍芽指令吧!

拿下手環

手環震動的命令是由長度為5的位元組陣列構成,其中第四位元組值可為(1,2,3,4)中的乙個(表示震動型別,如來電為1)。

以來電為例,構造低功耗藍芽命令:126=0x7e, 5=0x05, 8=0x08, 1=0x01, crc=0x82。或者通過藍芽日誌發現的value值重放「7e05080182」,我們使用python指令碼實現手環震動命令:

手環成功的不停震動~太**了。

智慧型手環 會打字的手環

不知怎麼,突然對手環感興趣了,想起之前 搜狗的愚人節宣傳片,type打字手環,當時真是眼前一亮 手環還可以這樣玩!隨後也只是當成乙個愚人節笑話了 大多數人其實應該還是滿期待的吧,重重的失落感 今天想起來,真的想自己做乙個可以打字的手環呢 先簡單記錄下幾個想法 1 智慧型手環沒有攝像頭,輸入應該僅僅是...

智慧型手環功能模組設計 智慧型手環畢業設計

智慧型手環畢業設計 篇一 基於嵌入式智慧型手環的設計與開發 基於嵌入式系統智慧型手環的設計開發 姓名 楊賽專業 訊號與資訊處理 學號 1.設計目的 隨著科技的進步,智慧型化成為了人們關注的焦點,同時也越來越貼 近人們的生活。人 們對於健康生活方式的需求催生出了智慧型可穿戴裝置,智慧型手環就 屬於其中...

智慧型手環市場調研

同類產品具有的功能 名稱 主要功能 microsoft band 2 249.99 持續式心率監測 卡路里消耗監測 睡眠質量監測 運動模式自動識別與監測 跑步 單車 高爾夫 健身房 健康計畫指導 電子郵件 文字顯示 日曆即時通話鬧鐘 陀螺儀重力感應 gps光強感應 體溫監測器 電容感應器 皮電反應感...