【蓝牙安全】蓝牙安全测试环境搭建(硬件设备篇)

该篇文章主要讲蓝牙设备的测试环境搭建以及能使用到的程序。

硬件设备篇

硬件设备的话是针对那些没有app的或者没有Android的app的环境下进行的。 这里列出的工具有:

  • Ubertooth
  • Holling BLE sniffer
  • NORDIC dongle或者德州仪器(TI)CC2540
  • CC Debugger

Ubertooth

设备固件等内容地址https://github.com/greatscottgadgets/ubertooth 包含环境安装、常见问题、wireshark联动、固件升级等内容等内容。

环境安装参照https://github.com/greatscottgadgets/ubertooth/wiki/Build-Guide

  • 第一步 :在构建libbtbb和Ubertooth工具之前,需要安装一些先决条件。其中许多可从您的操作系统的软件包存储库中获得,以下为Debian / Ubuntu(kali)的内容如果其它系统请参照原网址
sudo apt-get install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev \
pkg-config libpcap-dev python-numpy python-pyside python-qt4
  • 第二步 :然后安装libbtbb
    #wget https://github.com/greatscottgadgets/libbtbb/archive/2017-03-#R2.tar.gz -O libbtbb-2017-03-R2.tar.gz
    #tar xf libbtbb-2017-03-R2.tar.gz
    #cd libbtbb-2017-03-R2
    #mkdir build
    #cd build
    #cmake ..
    #make
    #sudo make install
    #sudo ldconfig
  • 第三步 :安装Ubertooth tools
    #wget #https://github.com/greatscottgadgets/ubertooth/releases/download/2017-03-R2/ubertooth-2017-03-R2.tar.xz -O ubertooth-2017-03-R2.tar.xz
    #tar xf ubertooth-2017-03-R2.tar.xz
    #cd ubertooth-2017-03-R2/host
    #mkdir build
    #cd build
    #cmake ..
    #make
    #sudo make install
    #sudo ldconfig
  • 第四步 :安装wireshark Wireshark BTBB和BR / EDR插件允许使用Kismet捕获的蓝牙基带流量在Wireshark GUI中进行分析和检测。它们与Ubertooth和libbtbb软件的其余部分分开构建。传递给cmake的目录MAKE_INSTALL_LIBDIR因系统而异,但它应该是现有Wireshark插件的位置,例如asn1.so和ethercat.so
    #sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake
    #cd libbtbb-2017-03-R2/wireshark/plugins/btbb
    #mkdir build
    #cd build
    #cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins ..
    #make
    #sudo make install
  • 第五步 :安装BT BR/EDR插件
    #sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake
    #cd libbtbb-2017-03-R2/wireshark/plugins/btbredr
    #mkdir build
    #cd build
    #cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins ..
    #make
    #sudo make install
  • 第六步 :联动wireshark 运行命令: mkfifo /tmp/pipe 打开Wireshark 点击捕获 – >选项 点击窗口右侧的“管理界面”按钮 点击“新建”按钮 在“管道”文本框中,输入“/ tmp / pipe” 点击保存,然后点击关闭 点击“开始”在终端中,运行ubertooth-btle:
    ubertooth-btle -f -c /tmp/pipe

    wireshark执行以下进行过滤

    btle.data_header.length > 0 || btle.advertising_header.pdu_type == 0x05

选择了ubertooth one启动,必须让三个LED灯亮起来。其中两个绿色的LED(RST和1.8V)都亮说明Ubertooth成功插在了你的主机上,红色LED(USB LED)亮了表示Ubertooth可以通过USB端口进行通讯了。

参考链接:

https://github.com/greatscottgadgets/ubertooth/wiki/Getting-Started

http://www.freebuf.com/sectool/95426.html

http://www.freebuf.com/articles/wireless/106298.html

http://www.freebuf.com/news/88281.html

Holling BLE sniffer

BLE设备是在37,38,39这3个频道进行广播,有时候是在一个频道广播,有时候是在这3个频道中轮询广播,而这些BLE Sniffer却只能监听某一个频道的数据,或者是轮询监听3个频道的数据,若只监听一个频道的数据,那么就有可能找不到不在这个频道广播的设备,当然用轮询监听3个频道的数据是可以解决这个问题,但是还是会有新的问题,那就是监听BLE设备连接问题,因为BLE设备在建立连接的时候,除了单频道广播的设备,其他多频道广播设备建立连接的频道是不固定的,这样就会导致轮询监听3个频道数据的BLE Sniffer存在丢失数据的可能。 Hollong BLE Sniffer内部使用3颗BLE芯片,同时抓取37,38,39这3个频道的数据。

参考链接:http://blog.csdn.net/viewtool2017/article/details/73887641

该工具相关程序资料下载地址http://www.viewtool.com/product/BLE-Sniffer/

环境软件安装

下载并安装软件(一路下一步即可), 将设备通过USB线连接到电脑,等待驱动自动安装完毕。

启动软件,点击“Start”按钮,然后选择设备列表中的你需要查看数据的设备即可。

软件界面介绍

软件操作流程演示


NORDIC dongle(EN-Dongle)或者德州仪器(TI)CC2540

NORDIC的意思是使用nrf的sdk的dongle(另一位一起参加众测的iot设备的师傅推荐用这种)通常叫 EN-Dongle。 德州仪器(TI)CC2540这种雪碧师傅说过这种嗅探方案优点是廉价,不足是只能嗅探到广播信道的数据包,无法捕获连接完成后也就是设备通信过程中的数据包。

引用地址 http://www.freebuf.com/articles/wireless/106298.html

德州仪器(TI)CC2540环境安装

  • 第一步 : 把“ sniffer_fw_cc2540_usb.hex” 固件烧录到CC2540 USB Dongle,并在电脑上安装 SmartRF Packet Sniffer 驱动,详细内容可参考:https://wenku.baidu.com/view/0e4baac5daef5ef7bb0d3c0a.html 。正常来说购买时默认都烧录完成的
  • 第二步 : 打开SmartRF Packet Sniffer软件后,选择Bluetooth Low Energy并点击Start

  • 第三步 : 点击Start开始捕抓数据

在Radio Configuration tab选项中勾上Connect to Initiator Address并填入主机地址,捕抓设备将根据填入的地址去跟随主机与从机之间的数据连接,如果不选择这个选项,捕抓设备不会跟踪指定连接,会开始跟随在当前广播通道上(37)的出现第一个数据连接; 从机开始广播,捕捉到数据如下:

主机连接从机,捕抓数据如下:


参考链接:https://blog.csdn.net/zhuangjitongxue/article/details/49337445

SmartRF Packet Sniffer使用手册中文版:http://pan.baidu.com/s/1o6AbAqu

SmartRF Packet Sniffer使用手册英文版:http://pan.baidu.com/s/1o608kL8

EN-Dongle

软件需求:ble-sniffer_win_1.0.1和Wireshark

驱动及软件安装

  • CP2102驱动
  • Wireshark
  • Sniffer

安装CP2102驱动

解压“CP210x_VCP_Windows.zip”,解压后如下图,根据具体情况选择安装32位版本或64位版本驱动。

wireshark安装 : 此处正常下载安装即可

安装Sniffer : Sniffer是绿色软件,无需安装,解压后双击“ble-sniffer_win_1.0.1_1111_Sniffer.exe”即可运行。


环境运行

  • 将EN-Dongle连接到计算机的USB接口上,并让EN-Dongle处于Central和Peripherel的信号覆盖范围内,如下图所示 :

  • 双击“ble-sniffer_win_1.0.1_1111_Sniffer.exe”,启动Sniffer。Sniffer启动后会自动检查串口及周围的 BLE 器件,如下图所示 :

上图中信息栏显示了Sniffer读取的串口是:COM25。设备列表中显示Sniffer已经抓取到两个BLE设备,编号分别是“0”和“1”。

  • 输入编号,选择BLE 器件,如下图所示 :

  • 输入“w”启动Wireshark,开始抓包 :

  • 启动Wireshark :

选中一个BLE包(这里捕获的是广播包),展开树形目录,即可看到Wireshark对这个广播包的分析


参考链接:https://blog.csdn.net/lep150510/article/details/78770398

CC Debugger

参考链接: http://www.waveshare.net/txt/CC-Debugger-Interface.htm

该物件要连到蓝牙芯片上后安装SmartRF Packet Sniffer查看数据可以针对一些设备接收数据进行收集

注:

  1. CC Debugger的2和9引脚需要短接,方可识别CC254x。
  2. P2.2引脚一定要加上拉电阻,否则会下载失败。

使用手册https://wenku.baidu.com/view/fb7271af941ea76e58fa04e7.html

另外说明

cc debugger 与 smartrfo4eb

  • 焦点问题1:CC-Debugger仿真器和SmartRF04EB仿真器的区别?

答:该问题几乎是所有打算购买CC-Debugger仿真器用户的第一个问题,区别非常大,但是可以总结为下面三个方面

1、所支持的芯片差异

A) SmartRF04EB实测后支持的芯片有CC2430、CC2530、CC2531、CC2540,不支持CC2541

B) CC-Debugger支持的芯片非常之多,除了和04eb相同的仿真及下载功能外,还可以通过SPI总线控制CC系列的收发器。

2、能够连接的目标板电压不同

A) SmartRF04EB仿真器只能链接3.3V目标板电压,如果强行连接非3.3V接口,可能会烧坏芯片。仿真器目标接口的第2脚和第9脚是相同的,电压是3.3V

B) CC-debugger仿真器则支持宽目标板电压,从1.2V到3.6V均支持,为什么CC-Debugger能够支持这么宽的目标电压呢,这是因为CC-Debugger与目标芯片之间加了信号电平转换芯片:SN74AVC4T245DR。

3、所具有的的功能不同

A) 我们的SmartRF04EB只有仿真器的功能,如通过IAR软件在线仿真单步调试,以及通过Flash Programmer直接烧写hex文件

B) CC-Debugger除了具有和SmartRF04EB相同的功能外,还有具有协议分析的功能 使用CC-Debugger作为协议分析仪和独立的USBDongle协议分析仪有些区别,CC25xxUSBDongle作为协议分析仪时,独立工作,只需连接USB,就可以通过PacketSniffer抓包 而使用CC-Debugger用来协议分析时,需要连接目标芯片,连接的接口如上图,必须要接SPI。

  • 焦点问题2:CC-Debugger无法识别目标芯片?

答:到目前为止,用户反映的不识别的情况只有下面三种:

1、没有向CC-Debugger放着器目标接口 第2脚提供Target Voltage,没有电压的愿意有两种,一个是你的板子没有供电,第二个就是你的板子debugger接口的第2脚没有接VCC。详情参加焦点问题1 如果你用的不是标准的10Pin,而是只有DC DD RESET GND四个信号,开发板无法提供连接VCC时,可以用杜邦线将CC-Debugger目标接口的第2脚和第9脚短接,自己对自己供电。

2、你自己做的板子存在虚焊,CC2540等CC系列的芯片通常是QFN封装,这种封装手工焊时非常容易出现虚焊。

3、忘记按复位按键,连接目标板之后,记住一定要按复位按键,然后仿真器识别到目标芯片后,再进行下一步操作。

  • 焦点问题3:如何安装驱动,支持64位系统吗?

答:CC-Debugger是支持Win7 64位系统的,有对应的驱动程序。 安装下列软件会自动安装CC-Debugger驱动: SmartRF Studio、Flash Programmer、IAR For 8051、PacketSniffer等。如果软件已经安装,CC-Debugger驱动仍未能成功安装时,请到设备管理器中,右击带黄色感叹号的CC-Debugger,手动更新驱动程序, Flash Programmer软件自带的驱动程序位于(默认路径):C:\Program Files\Texas Instruments\SmartRF Tools\Drivers\cebal IAR For 8051软件自导的驱动程序位于(默认路径):C:\Program Files\IAR Systems\Embedded Workbench 6.0\8051\drivers\Texas Instruments


 

如有意成为绿盟科技博客作者,欢迎进入作者群讨论!

绿盟科技博客作者QQ群:695158981

 

 

 

 

 

绿盟科技博客作者微信群:

 

Spread the word. Share this post!

Meet The Author

Leave Comment