❶ 藍牙馬蹄鎖分析過程文章小結
觀文章有感,做個知識點小結整理
工具
Sniffle是英國網路安全公司NCC Group在2019年底開源的一個基於使用TI CC1352/CC26x2硬體的藍牙5和4.x LE嗅探器(抓包工具),最新的release版本是2022年8月發布的1.7。使用Sniffle需要購買指定的藍牙開發板,並刷入固件才能使用,電腦通過串口與藍牙開發板通信。
GitHub: github.com/nccgroup/Sni...
TI CC1352/CC26x2硬體的藍牙5和4.x LE嗅探器(抓包工具): CC1352R 數據表、產品信息和支持 | 德州儀器 TI.com.cn
逆向
jadx一款java編寫的開源圖形化反編譯工具
⭐GDA不依賴java且支持apk, dex, odex, oat, jar, class, aar文件的反編譯, 支持python及java腳本自動化分析
GDA主頁-亞洲首款互動式Android反編譯器
刷固件
Sniffle項目中fw文件夾是固件源碼,如果只是抓包的話,在Sniffle項目release1.7中有上傳的編譯好的固件,根據型號下載。
搜索相關資料得知,可以在TI網站上安裝UNIFLASH軟體來進行刷固件: ti.com/tool/UNIFLASH?...
抓包測試
Sniffle抓包方式是開發板抓到數據之後,通過串口發送給PC,PC收到數據包之後再根據設定條件來過濾數據,最後根據參數決定是否保存成pcap文件。因此需要用參數-s 指定某個串口,串口可以通過設備管理器查看,共有兩個,選擇UART的串口:
從README中可以知道python_cli中的sniff_receiver.py為抓包腳本,支持多個參數,這里簡單介紹下常用的設置:-a 只抓廣播包,不知道設備mac地址的情況下,可以用此參數 -m 只抓特定mac地址的數據包,可以從廣播包中分析出目標設備mac地址 -o 抓包結果保存到pcap文件
下圖是命令sniff_receiver.py -s COM7 -m xx:xx:xx:xx:xx:xx -o data.pcap的顯示:
下圖是保存的pcap文件中的BLE開始連接過程截圖:
低功耗藍牙(BLE)協議
BLE (低功耗藍牙)協議入門-01-整體介紹-騰訊雲開發者社區-騰訊雲 (tencent.com)
藍牙低功耗概覽 | Android 開發者 | Android Developers (google.cn)
手機端HCI
如何抓取Android手機藍牙HCI - 知乎 (hu.com)
⭐ Android Bluetooth HCI log 詳解 - 簡書 (jianshu.com)
pcap文件
pcap文件詳解 - CharyGao - 博客園 (cnblogs.com)
Wireshark文件pcap的格式詳細解析有實例(Global Header、Packet Header)_wireshark格式-CSDN博客
使用 Wireshark 導入/導出pcap文件——Wireshark 新手教程(3) - 嗶哩嗶哩 (bilibili.com)
AES加密
什麼是AES加密?詳解AES加密演算法原理流程 - 知乎 (hu.com)
⭐ 密碼學基礎:AES加密演算法 - 知乎 (hu.com)
藍牙屬性通知(Handle Value Notification)
⭐ 低功耗藍牙學習筆記-屬性協議-CSDN博客
藍牙BLE從機Peripheral講解二(句柄指示\確認(Handle Value Indication\Confirmation)) - SweetTea_lllpc - 博客園 (cnblogs.com)
ECB加密模式
ASE加密模式介紹(ECB、CBC、PCBC、CFB、OFB、CTR)-CSDN博客
AES五種加密模式_aes模式-CSDN博客
ECB模式解讀-CSDN博客
【密碼演算法 之三】分組密碼工作模式 (ECB \ CBC \ CFB \ OFB \ CTR \ XTS)淺析_xts模式-CSDN博客
Android logcat
Android logcat命令詳解 - 許忠慧 - 博客園 (cnblogs.com)
bleak低功率藍牙庫
其實各語言都有該類型庫哦 個人比較熱衷於rust,個人覺得其在內存耗損上比python好點(當然,編碼也會復雜一點)
bleak · PyPI
hbldh/bleak: A cross platform Bluetooth Low Energy Client for Python using asyncio (github.com)
GATT
藍牙BLE: GATT Profile 簡介(GATT 與 GAP) - 夜行過客 - 博客園 (cnblogs.com)
藍牙:GATT,屬性,特性,服務_ble服務和屬性特徵-CSDN博客
⭐ 六 藍牙低功耗(BLE)協議棧 之 GATT層_characteristic declaration-CSDN博客
Characteristics在代碼中是UUID形式,在數據包中是以Handle形式,Handle與Characteristics是一一對應的,對應關系是在GATT中定義。