ubertooth one 是一套开源的方案,淘宝购买大概 800 左右,缺点是贵,还只能同时抓一个信道,Github地址:
https://github.com/greatscottgadgets/ubertooth
1、安装相关依赖
sudo apt install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev wget
pkg-config python3-numpy python3-qtpy python3-distutils python3-setuptools
2、安装 libbtbb
wget https://github.com/greatscottgadgets/libbtbb/archive/2020-12-R1.tar.gz -O libbtbb-2020-12-R1.tar.gz
tar -xf libbtbb-2020-12-R1.tar.gz
cd libbtbb-2020-12-R1
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
3、安装ubertooth tools
wget https://github.com/greatscottgadgets/ubertooth/releases/download/2020-12-R1/ubertooth-2020-12-R1.tar.xz
tar -xf ubertooth-2020-12-R1.tar.xz
cd ubertooth-2020-12-R1/host
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
4、安装 wireshark
sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake
5、配置 BTBB 和 BREDR 插件
cd libbtbb-2020-12-R1/wireshark/plugins/btbb
mkdir build
cd build
cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins ..
make
sudo make install
回到之前的目录
cd libbtbb-2020-12-R1/wireshark/plugins/btbredr
mkdir build
cd build
cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins ..
make
sudo make install
【这里如果提示没有python使用先whereis python3然后再sudo ln -s /usr/bin/python3 /usr/bin/python】
6、更新固件
在 github 上找到 release 里面的的压缩包,在里面找到 bluetooth_rxtx.dfu 以后拷贝出来
执行命令刷入固件,如果是在虚拟机中操作会断开连接,再次接入虚拟机即可
ubertooth-dfu -d bluetooth_rxtx.dfu -r
首先创建通信管道
mkfifo /tmp/pipe
在命令行输入 wireshark 打开 wireshark,然后点击 捕获 -> 选项
(忽略截图是windows平台的)
点击管理接口
新建管道 /tmp/pipe
点击开始抓包,新开一个终端,插入 ubertooth one 后输入
ubertooth-btle -f -c /tmp/pipe
就可以看到流量在终端里显示了,同时 wireshark 里也会捕获到流量
CC2540 是 TI(德州仪器)的一款芯片,优点是价格便宜,淘宝购买大概40,缺点同样是只能同时抓一个信道
TI 有配套的官方软件:Packet Sniffer,直接安装就行,安装好之后接上 CC2540 协议类型选择蓝牙就可以抓包了
他保存的文件格式为 psd,可以用 Github 上的开源项目转换成 wireshark 可以识别的 pcap 格式:
https://github.com/joswr1ght/tibtle2pcap
纬图出品的 BLE 抓包工具,配合 wireshark 抓包操作简单,优点是同时抓三个广播信道,不会出现概率问题,价格大概在 800 左右
提供官方软件,安装好后点击打开应用程序
配置好 wireshark 的安装路径,点击菜单栏的开始摁扭,列表右侧的 select 勾上哪个抓那个
ps.又出了一个 Hollong 低功耗蓝牙侦听仪9通道,价格 1376
目前感觉性价比最高的一款,使用北欧的 nRF 系列芯片,52840、52832 都行,同时抓三个广播信道,还能指定设备抓包,原版价格大概在 160 左右,信驰达的才 60
1、下载需要的插件,地址:
https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE/Download?lang=en#infotabs
2、在解压出来的目录里的 extcap 目录中运行如下命令安装 Python 依赖
pip3 install -r requirements.txt
3、打开 wireshrak,在 帮助 -> 关于wireshark -> 文件夹 找到Global Extcap path 里面的路径
把刚才的 extcap 文件夹里的内容拷贝过去
运行这条命令,若如下图所示这样就是成功了,Linux 下用 .sh
nrf_sniffer_ble.bat --extcap-interfaces
连接上设备之后在 wireshark 的捕获->刷新接口列表就可以看到 nRF Sniffer for Buletooth LE 这个接口
双击捕获就行了,另外,在 视图 -> 接口工具栏 中有个工具,可以指定捕获哪些地址的数据
还可以指定配对码,比如我抓的一个开发板的流量,设置错误的 passkey 显示的是 Encrypted
设置正确的就可以看到数据了
打开 nRF Connect for Desktop,找到这个 Programmer 打开
下拉选择设备
如果设备读不出来内存布局,可以摁一下一个小摁扭,注意是紧贴着板子的那个
选择要烧写的文件
找到下载的那个压缩包,在 hex 文件夹里面,选择
sniffer_nrf52840dongle_nrf52840_4.1.0.hex
点击 Write 烧进去就行了
nRF52840 是性价比最高的,既便宜又能同时抓取三个广播信道,还能自己刷写固件用作其他方面。Hollong 是个人感觉这几个方案中最好用的一款,在抓取非 Secure Connect 配对流量的时候它抓到的流量包能够用 crackle 解密,但 nRF52840 抓到的解密不了,可能是 nRF52840 抓的少了什么数据,暂时还没有认真检查。
1024安全团队是由来自网安企业、车企与高校的网络安全爱好者组建的团队,希望通过此平台更好的进行前沿的技术交流与分享,现研究方向包含但不限于车联网安全、物联网安全、硬件安全、无线电安全等,我们正在招募新的成员,期待更多志同道合的朋友加入我们,一起进行技术交流学习。
原文始发于微信公众号(1024安全团队):BLE空口抓包方案对比
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论