10x00前言
前段時間嘗試用虛擬機安裝Ubuntu系統和一款軟硬件開源的藍牙抓包器Ubertooth One來搭建藍牙嗅探環境,從官方推薦的Ubuntu16.04版本一直測試到22.04版本,看似簡單的藍牙環境嗅探,搭建過程卻遇到各種問題,如各版本報錯不一致,插件安裝失敗,ubertooth固件問題等,查閱了很多材料,嘗試了很久都沒有成功,想到手頭還有個樹莓派,考慮到會有wireshark等界面交互連接了個3.5寸屏幕。
樹莓派環境境說明
樹莓派型號:樹莓派4B 操作系統:Raspberry Pi OS 2023-05-03-raspios-bullseye/ Debian GNU/Linux 11 (bullseye) Ubertooth固件版本:ubertooth 2018-12-R1(更新固件后ubertooth 2020-12-R1) ubertooth tools 版本:libubertooth 1.1 (2020-12-R1), libbtbb 1.0(2018-06-R1) Wireshark版本:Version 3.4.10(Git v3.4.10 packaged as 3.4.10-0+deb11u1)
樹莓派系統安裝
樹莓派安裝過程比較簡單,簡述一下
1.下載官網刻錄軟件
2.按需刻錄樹莓派系統
3.刻錄時提前配置開啟ssh、wifi
4.將刻錄好的儲存卡插入到樹莓派中
此時就可以ssh連接樹莓派,如果有需要屏幕的情況比如wireshark圖形界面等,可以連接自帶的hdmi線到顯示屏上,如果覺得連接顯示屏有些麻煩,想用vnc連接遠程桌面
VNC連接
終端輸入命令sudo raspi-config,會彈出一個界面選擇Interface Options -> VNC-> enable -> YES即可開啟vnc
調整臨時分辨率
但默認連接vnc分辨率會比較小,無法看清屏幕內容可以通過終端輸入以下命令臨時調整vnc分辨率,下次重啟后失效
vncserver -geometry 1920x1080
vnc連接是地址后加:1選擇通道1,例如192.168.1.1:1即可連接,但192.168.1.1仍可正常連接vnc
20x01藍牙協議簡介
藍牙低能耗(Bluetooth Low Energy,或稱Bluetooth LE、BLE,舊商標Bluetooth Smart)也稱低功耗藍牙,是藍牙技術聯盟設計和銷售的一種個人局域網技術,旨在用于醫療保健、運動健身、信標、安防、家庭娛樂等領域的新興應用。相較經典藍牙,低功耗藍牙旨在保持同等通信范圍的同時顯著降低功耗和成本。
傳統藍牙和低功耗藍牙對比:
-w1455
低功耗藍牙(Low Energy; LE),又視為Bluetooth Smart或藍牙核心規格4.0版本。其特點具備節能、便于采用,是藍牙技術專為物聯網(Internet of Things; IOT)開發的技術版本。
BLE主打功能是快速搜索,快速連接,超低功耗保持連接和傳輸數據,弱點是數據傳輸速率低,由于BLE的低功耗特點,因此普遍用于穿戴設備。
BLE優點
1.高可靠性
對于無線通信而言,由于電磁波在傳輸過程中容易受很多因素的干擾,例如,障礙物的阻擋、天氣狀況等,因此,無線通信系統在數據傳輸過程中具有內在的不可靠性。藍牙技術聯盟 SIG 在指定藍牙 4.0 規范時已經考慮到了這種數據傳輸過程中的內在的不確定性,在射頻,基帶協議,鏈路管理協議中采用可靠性措施,包括:差錯檢測和矯正,進行數據編解碼,數據降噪等,極大地提高了藍牙無線數據傳輸的可靠性,另外,使用自適應調頻技術,能最大程度地減少和其他 2.4G 無線電波的串擾。
2.低成本、低功耗
低功耗藍牙支持兩種部署方式:雙模式和單模式,一般智能機上采用雙模式,外設一般采用 BLE 單模。
低功耗設計:藍牙 4.0 版本強化了藍牙在數據傳輸上的低功耗性能,功耗較傳統藍牙降低了 90%。
傳統藍牙設備的待機耗電量一直是其缺陷之一,這與傳統藍牙技術采用16至32個頻道進行廣播有很大關系,而低功耗藍牙僅適用 3個廣播通道,且每次廣播時射頻的開啟時間也有傳統的 22.5ms 減少到 0.6~1.2ms,這兩個協議規范的改變,大幅降低了因為廣播數據導致的待機功耗。
低功耗藍牙設計用深度睡眠狀態來替換傳統藍牙的空閑狀態,在深度睡眠狀態下,主機 Host 長時間處于超低的負載循環 Duty Cycle 狀態,只在需要運作時由控制器來啟動,由于主機較控制器消耗的能源更多,因此這樣的設計也節省了更多的能源。
3.快速啟動/瞬間連接
此前藍牙版本的啟動速度非常緩慢,2.1 版本的藍牙啟動連接需要 6s 時間,而藍牙4.0版本僅需要3ms 即可完成。
4.傳輸距離增強
傳統藍牙傳輸距離一般為2-10米,而藍牙4.0的有效傳輸距離可以達到 60~100米,傳輸距離大大提高,極好的開拓了藍牙技術的應用前景。
30x02環境安裝
測試發現自帶源速度還是挺快的,這里就不用換源了
1、安裝依賴
可以通過 sudo passwd root 重置下root密碼后再執行sudo
sudoapt-getinstallcmakelibusb-1.0-0-devmakegccg++libbluetooth-dev pkg-configlibpcap-devpython-numpypython-pysidepython-qt4
2、安裝libbtbb
wgethttps://github.com/greatscottgadgets/libbtbb/archive/2020-12-R1.tar.gz-Olibbtbb-2020-12-R1.tar.gz tar-xflibbtbb-2020-12-R1.tar.gz cdlibbtbb-2020-12-R1 mkdirbuild cdbuild cmake.. make sudomakeinstall sudoldconfig
3、安裝 Ubertooth tools
wgethttps://github.com/greatscottgadgets/ubertooth/releases/download/2020-12-R1/ubertooth-2020-12-R1.tar.xz tar-xfubertooth-2020-12-R1.tar.xz cdubertooth-2020-12-R1/host mkdirbuild cdbuild cmake.. make sudomakeinstall sudoldconfig
4、安裝wireshark及ubertooth插件:
sudoapt-getinstallwiresharkwireshark-devlibwireshark-devcmake cdlibbtbb-2020-12-R1/wireshark/plugins/btb mkdirbuild cdbuild cmake-DCMAKE_INSTALL_LIBDIR=/usr/lib/arm-linux-gnueabihf/wireshark/plugins/.. make sudomakeinstall
5、安裝wireshark藍牙插件
sudoapt-getinstallwiresharkwireshark-devlibwireshark-devcmake cdlibbtbb-2020-12-R1/wireshark/plugins/btbredr mkdirbuild cdbuild cmake-DCMAKE_INSTALL_LIBDIR=/usr/lib/arm-linux-gnueabihf/wireshark/plugins/.. make sudomakeinstall
添加wireshark權限
sudogroupaddwireshark sudochgrpwireshark/usr/bin/dumpcap sudochmod4755/usr/bin/dumpcap sudogpasswd-a你的用戶名wireshark
0x03刷新固件
安裝好上述環境之后,如果你的Ubertooth one是之前買的,是需要更新一下固件版本:
查看一下當前固件版本:ubertooth-util -v
如果不是最新版本固件可以進入到之前下載的ubertooth-2020-12-R1文件夾下,找到 bluetooth_rxtx.dfu文件
cdubertooth-2020-12-R1/ubertooth-one-firmware-bin/ ubertooth-dfu-dbluetooth_rxtx.dfu-r
運行刷新固件命令,設備將自動進入DFU模式并刷新固件。
如果上訴操作沒有成功,可以嘗試將圖中設備短接一下再進行固件刷新命令
固件更新完成后可以再次通過ubertooth-util -v查看固件版本,查看是否已更新固件成功。
tips
如果最后出現control message unsupported,則意味著更新固件失敗。可以通過運行ubertooth-util -r 或重新拔插Ubertooth后再進行固件更新。
40x04 開始嗅探
使用ubertooth-btle進行掃描
在Wireshark中捕獲BLE數據
1.終端運行命令:mkfifo /tmp/pipe創建管道文件
2.打開 Wireshark,單擊捕獲(Capture )->選項(Options)點擊窗口右側的管理接口(Manage Interfaces)按鈕
在管道(Pipe)文本框中,鍵入“ /tmp/pipe”,單擊OK保存后點擊“開始”,完成后在終端中,運行ubertooth-btle:
ubertooth-btle -f -c /tmp/pipe
在 Wireshark 窗口中,可以看到數據包滾動。
可以使用ubertooth-btle -f -c test.pcap抓包并保存到本地
直接導入wireshark可能會顯示不正常,需要對wireshark進行一些配置
1.單擊編輯(Edit)->首選項(Preferences)
2.單擊協議(Protocols)-> DLT_USER
3.單擊編輯,點擊加號(+),在DLT下,選擇“用戶0(DLT = 147),在有效載荷協議下,輸入:btle
配置完成后,直接在wireshark中打開即可
使用hcitool進行掃描
常用命令hcitool scan :掃描附近藍牙設備
hcitool lescan :掃描附近低功耗藍牙設備
使用bluetoothctl進行掃描
#bluetoothctl #scanon
審核編輯:劉清
-
虛擬機
+關注
關注
1文章
926瀏覽量
28354 -
藍牙協議
+關注
關注
1文章
29瀏覽量
11454 -
樹莓派
+關注
關注
117文章
1710瀏覽量
105800 -
Ubuntu系統
+關注
關注
0文章
91瀏覽量
4014
原文標題:基于樹莓派的藍牙協議抓包
文章出處:【微信號:Tide安全團隊,微信公眾號:Tide安全團隊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論