2019-08-31 | UNLOCK

2019-8-31-蓝牙抓包-Ubertooth及hollong

蓝牙抓包-Ubertooth

安装

环境lib库:

1
2
3
4
apt-get install python-software-properties
add-apt-repository ppa:pyside
apt-get update
apt-get install libnl-dev libusb-1.0-0-dev pyside-tools

环境libbtbb:

1
2
3
4
5
6
7
8
wget https://github.com/greatscottgadgets/libbtbb/archive/2015-09-R2.tar.gz -O libbtbb-2015-09-R2.tar.gz
tar xf libbtbb-2015-09-R2.tar.gz
cd libbtbb-2015-09-R2
mkdir build
cd build
cmake ..
make
sudo make install

ubertooth:

1
2
3
4
5
6
7
8
9
wget https://github.com/greatscottgadgets/ubertooth/releases/download/2015-09-R2/ubertooth-2015-09-R2.tar.xz -O ubertooth-2015-09-R2.tar.xz
tar xf ubertooth-2015-09-R2.tar.xz
cd ubertooth-2015-09-R2/host
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

抓包

低功耗蓝牙抓包:

1
sudo ubertooth-btle -f -c blue.pcap

抓到的blue.pcap放入wireshark,数据格式无法识别

在wireshark的Edit->Preferences->protocols->DLT_USER中设置payload protocol为btle

ubertooth

就能正常解析低功耗蓝牙包了

另外ubertooth可以指定双方蓝牙mac地址,从而跟踪指定的建链,如果只有-f -c参数则只能自动跟踪第一次抓到的建链信息,另外在实际的蓝牙抓包中发现,ble在第一次建链过程中是不加密的,但断开重连后第二次就会发送密钥,学习蓝牙协议栈后发现这是一个椭圆曲线加密,蓝牙建链双方会发送自己的公钥,因为不清楚双方的私钥,所以断开重连后的信息就无法破解了。

hollong

hollong比起ubertooth更加简单,按官网上的说法在windows上先安装了驱动,然后安装软件,结果还是出现了驱动证书问题,无法正确识别驱动,只好在kali上使用,很顺利,linux下就不需要安装驱动了,直接运行官网上linux版本文件中的start.sh就行,只要确保三个蓝牙嗅探设备都接入就能点击start,这时候会出现设备列表,可以全抓也可以指定抓,比起ubertooth有了可视化界面,比较方便。

蓝牙协议栈学习

推荐ble协议栈从零开始 https://blog.csdn.net/XG_2013/article/details/80726807

在抓包的时候发现有些设备的蓝牙mac地址不停变化,就是看了《ble协议栈从零开始四》解惑的。

在抓包过程中发现蓝牙断开重连后无法继续跟踪报文,看了《ble协议栈从零开始八》才明白,在实际中发现蓝牙断开重连后才会发送ENC报文,其中包含了密钥,因为没有双方设备的私钥,即使抓到公钥也没用,之所以之前能抓到包并得到数据完全是因为第一次建链没有加密。

评论加载中