什么是蓝牙?
蓝牙技术基于芯片,提供短距离范围的无线跳频通信。它有很低的电源要求,并且可以被嵌入到任何数字设备之中。
0x01蓝牙协议栈
整个蓝牙协议体系结构可分为底层硬件模块、中间协议层和高端应用层三大部分。
底层硬件模块由链路管理层(LMP)、基带层(BB)和蓝牙无线电信道构成。
LMP层负责连接的建立和拆除以及链路的安全和控制,BB层负责跳频和蓝牙数据及信息帧的传输,它们为上层软件模块提供了不同的访问人口,但是两个模块接口之间的消息和数据传递必须通过蓝牙HCI接口的解释才能进行。
中间协议层包括逻辑链路控制与适配协议(L2CAP)、服务发现协议(SDP)、串口仿真协议(RFCOMM)和电话控制协议规范(TCS)。L2CAP完成数据拆装、服务质量控制、协议复用和组提取等功能,是其他上层协议实现的基础,因此也是蓝牙协议栈的核心部分。SDP则是上层应用程序提供一种机制来发现网络中可用的服务及其特性。
0x02蓝牙配对
当两个蓝牙设备连接时,这被称为配对。几乎任何两个蓝牙设备都可以彼此连接。任何可发现的蓝牙设备会传输以下信息:
名称
类
服务列表
技术信息
当两个设备配对时,它们交换预共享的私钥或连接密钥。每个存储此连接密钥的设备会在将来配对中识别另一个。每个设备都有唯一的48位标识符(类似MAC地址),通常是制造商分配的名称。
0x03蓝牙工具
蓝牙扫描工具可以发现附近蓝牙设备,并获取设备信息,如设备的蓝牙 MAC、设备类型、名称等。Kali Linux 提供多种蓝牙扫描工具,用于扫描可发现设备和不可发现设备,如 bluelog、blueranger、redfang等。同时,Kali Linux里面还包含蓝牙核心组件工具集 BlueZ ,其覆盖设备管理工具btmgmt、hcitool、hciattach,服务管理工具sdptool、gatttool、ciptool、rfcomm、rctest、obexctl等。
看了那么多干货,是不是想搞点事情呢?那么,接下来我将介绍如何使用工具Hack蓝牙:
一、Kali Linux下开启蓝牙
Kali Linux下默认是不启动蓝牙的
启动蓝牙的方法是需要现启动蓝牙服务,终端输入:
service bluetooth start
若要开机启动则需要终端输入:
update-rc.d bluetooth enable
二、使用hcitool获取蓝牙地址和设备名
扫描蓝牙设备:hcitool scan
若如果对方开启隐藏,可以使用fang工具扫描隐藏的蓝牙设备,如下:
使用fang工具扫描隐藏的蓝牙设备,可以设置扫描范围,默认为000000000000>>>ffffffffff;为了快些,这里设置的范围比较小 ,实际就不一定有这么简单了!
fang -r 范围 -s
fang -r b0aa3618e5d8-b0aa3618e5f4 -s
获得我的设备蓝牙地址为 E4:46:DA:7C:F3:AB
三、使用blueranger强行配对对方设备
blueranger是Kali Linux预安装的一款蓝牙探测工具。该工具通过向指定设备发送蓝牙L2CAP协议的ping包,创建连接。由于大部分蓝牙设备对ping包不进行认证,所以可以直接连接成功。在连接过程中,通过切换Class 1和Class 3模式,来更为精准的确认目标设备距离。
blueranger.sh {hciX} {bdaddr }