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