我是如何利用蓝牙向你手机发送文件的?

什么是蓝牙?

蓝牙技术基于芯片,提供短距离范围的无线跳频通信。它有很低的电源要求,并且可以被嵌入到任何数字设备之中。

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 }

比如我要强行配对我的手机

blueranger.sh hci0 E4:46:DA:7C:F3:AB

四、利用metasploit制作木马Apk进行发送

制作木马Apk的教程请移步至工作室一位大神发表的文章,这里就省略了,网址如下:

沙丁鱼也能读懂的安卓木马制作教程

最后利用Kali Linux下的bluetooth-sendto进行发送,好了,就等他点击接受了,即可获得meterpreter