时时勤拂拭,勿使惹尘埃

TOC

Categories

BLE(四)嗅探工具


商业级的Ellisys BEX400侦听工具最为符合对BLE流量捕获及分析的要求,然而售价过于昂贵;
其次,作为开源硬件且配有混杂模式追踪的“超牙”设备——Ubertooth One拥有二次开发和嗅探已建立连接的蓝牙通信数据包的能力;
而淘宝购买的廉价CC2540开发板则作为最佳替补方案。

0x1 低功耗蓝牙SOC

低功耗蓝牙推出以来,众多厂商根据标准规范实现了不同的解决方案,包括TI的CC2540\2541、北欧Nordic的nRF51822、CSR的1000\1001、Quintic的QN9020\9021(现在被NXP收购)、Broadcom的BCM20732等。其中,在开发者当中比较知名的是TI的CC254x系列和Nordic的NRF51822,并且这两款产品当有着自己的开发板和用于嗅探的调试工具。。

0x11 CC2540

德州仪器的CC2540,是一款高性价比、低功耗的片上系统(SOC)解决方案,适合蓝牙低功耗应用。它包含了一个8051内核的RF收发器,可编程闪存,8KB RAM和其他功能强大的配套特征及外设。CC2540有两种版本:CC2540F128 / F256,分别为128和256 KB的闪存,结合TI的低功耗蓝牙协议栈,CC2540F128 / F256形成了市场上最灵活,性价比也最高的单模式蓝牙BLE解决方案。
CC2540 USB Dongle的实物图如下,它可以配合TI的PacketSniffer软件实现对BLE无线抓包:
实际上,任意包含CC2540芯片的开发板都能实现BLE流量嗅探的功能。不过,TI官方并没有将侦听BLE的源代码放出,仅提供了烧写到USB Dongle的固件
在这个基础上,如果想要实现更多的功能,比如监听指定范围内所有的低功耗蓝牙设备的流量,就有必要对其进行逆向或者自己完全重写个程序。。
优点:
  • 价格便宜,单个的USB Dongle淘宝价格60元左右,整套价格在200~400左右
  • 配合官方的PacketSniffer程序,可以实现BLE流量嗅探
缺点:
  • 程序界面比较简陋,无法很好的展示出数据包中的层级关系
  • 本身是作为开发环节中的调试过程,作为逆向分析工具不够亲切。必须要事先在3个广播信道中指定一个进行监听,若恰好在该信道下有设备完成配对连接,方可追踪到后续的通信数据包,整个嗅探过程中存在较大的随机性和不确定性
使用:
  • CC2540需事先刷入sniffer固件包(淘宝购买时可选)
  • 安装PacketSniffer与驱动(只有win版本)
  • 选择bluetooth low energy
  • 开始抓包(只可选37、38、39广播信道其中之一,但只有三分之一的概率能捕捉到通信数据包,推测应该是选择信号最好的一个,如:主设备在三个信道进行广播,从设备发起响应,最后选择最先收到响应的信道)
    • 绿色为广播包,initA为初始连接包,如果通信信道与设置不对则停在初始连接包
    • 黄色为通信数据包,可多次抓包尝试,如断开手机蓝牙后重新给设备发送控制指令(不用填initA地址)


数据包类型:

M -> S  主机到从机  手机到ble固件

S -> M  从机到主机

广播包:

初始连接包:



连接事件:


请求更新参数包:


接受请求参数:

result 0表示接受,1表示拒绝

重新设置更新参数:

write写:

主机监听:

监听到:(从机返回)

0x12 NRF51822

挪威Nordic Semiconductor(简称Nordic)公司的nRF51822,是一款多协议ARM内核蓝牙4.0低功耗/ 2.4GHz 专用RF的单芯片解决方案。它基于Cortex-M0 内核,配备16kB RAM,可编程闪存,提供128 KB和 256 KB Flash两种版本供用户选择。
nRF51822 USB Dongle及开发板套件如下所示:
刷入以下固件,配合官方的BLE sniffer程序,即可实现蓝牙流量的嗅探功能
不同与cc2540的Packet Sniffer,该程序无需事先在3个广播信道中指定其一进行守候,只要指定要监听的设备,就会自动进行追踪,并能够配合Wireshark解析BLE数据包,可以很直观的显示出内部的层级关系和各字段含义。比较遗憾的是,实际使用发现它并没有CC2540 USB Dongle稳定,经常会抓不到后面数据通信的网络包,不过这一问题应该是可以通过优化算法得到解决的,但需要对官方的固件进行逆向或自己根据Nordic公司提供的BLE协议栈重写代码。。
优点:
  • 价格便宜,USB Dongle淘宝价70元左右,整套开发板售价约200软妹币上下
  • 无需事先在3个广播信道中指定其一进行守候,只要指定要监听的设备,就会自动进行追踪
  • 官方提供的BLE Sniffer程序可配合Wireshark工具对嗅探到的低功耗蓝牙数据包进行解析,能够很直观的显示出内部的层级关系和各字段含义
缺点:
  • 不用指定广播信道,确实操作起来比较方便,但与之相对的是经常无法抓到后面的通信数据包。无论是作为开发用的调试工具,还是分析用的嗅探工具,都不够理想

0x2 商业侦听工具

0x21 Frontline BPA® 600

Frontline Test Equipment——“前线测试设备”(简称“前线”,Frontline),主要是针对各种各样的协议所做的一个“协议分析器”。“前线”系统的销售策略是“卖硬件,送软件”,而软件自然是和硬件相关联的,其侦听范围包括SCADA系统、RS-232串口通信、Ethernet以太网通信、ZigBee网络通信,以及蓝牙网络技术。Frontline旗下的BPA® 600双模蓝牙协议分析仪,能够把从空中获取到的基础速率/ 增强数据速率(BR/EDR)的传统蓝牙无线通信和低功耗蓝牙无线通信数据同时直观的显示出来。
优点:
  • 无角色指定链路抓取意味着在初始化设置时不再需要指定哪个设备是主设备(master),哪个设备是从设备(slave)
  • 能够同时可视化的监视低功耗蓝牙技术所使用的三个广播信道
  • 同时抓取和解密多条蓝牙链路
  • 链路密钥可自动从第三方软件或调试工具导入到BPA 600
  • 支持蓝牙SIG组织发布的所有的协议和应用层协议,完全支持蓝牙4.1版本
缺点:
  • 十分昂贵,官网上虽并未公布具体的价格信息,需要与对方进行联系,但淘宝价格在15万左右
  • 需要捕获到蓝牙的“连接建立”过程,对于已经建立好连接的蓝牙网络,无法从一个正在处理的进程中,嗅探到这个“微微网”里面的通信数据包

0x22 Ellisys BEX400

Ellisys公司的BLuetooth Explorer 400(简称“BEX400”),是个独特的蓝牙数据通信捕获系统。它使用了一个wideband的接收器,能够同时侦听蓝牙整个79MHz的所有频谱。通过这种无线接入方法,嗅探蓝牙数据包以及对蓝牙活动的评估变得很容易。在BEX400强大的宽带接收能力支持下,我们能够同时捕获蓝牙的所有活动,且无需指定“蓝牙设备地址”信息。此外,该设备在捕获一个“微微网”中的蓝牙通信数据时,既可以是在连接建立前,也可以在连接建立后
优点:
  • 对于BLE的流量捕获没有必须在建立连接前就开始嗅探的限制
  • 能够同时侦听蓝牙的所有信道,且无需指定“蓝牙设备地址”信息
缺点:
  • 价格极其昂贵
  • 除价格外,几乎完全符合需求,暂未发现明显缺点

0x3 开源侦听工具Ubertooth

“超牙项目”(Project Ubertooth)是一个开源的硬件项目,由Great Scott Gadgets团队的Michael Ossmann开发。超牙的硬件系统,目前处于版本为1的阶段,称为“超牙一号”(Ubertooth One)。通过这个工具,可以创建属于自己的“传统蓝牙”和“低功耗蓝牙”底层通信数据包捕获工具。
此外,Ubertooth的固件源代码,可以直接从github:https://github.com/greatscottgadgets/ubertooth下载到最新的发布版。
优点:
  • 售价约120美元,比较亲民
  • 本身是一个开源的硬件和软件工程,其设计目的就是用来进行蓝牙网络的嗅探,便于研究员和黑客使用
  • 针对不同的蓝牙规范,具有不同的应对工具,支持传统蓝牙和低功耗蓝牙两种数据包的捕获
  • 能够在混杂模式下进行跟踪,通过ubertooth-btle程序对捕获的数据包进行识别和匹配,进而确定“访问地址”、“循环冗余校验”初始值、“跳转间隔”、“跳转增量”等,并还原出数据包的值
缺点:
  • 说是支持“传统蓝牙”,但其实只能捕获“基本速率蓝牙”在网络中的活动,并不支持后来的“增强速率蓝牙”在规范改进后的设备。不过这与我们的工作没有太大联系,主要关注的应是低功耗蓝牙

0 评论:

发表评论