16004488

蓝牙是大家经常使用的一种工具,手机之间的文件互传、手机和电脑之间的文件传输,蓝牙在其中发挥了重要作用。
蓝牙技术已经融入了人们生活当中,进入商场,几乎每款手机都带有蓝牙功能。另外,常见的蓝牙设备有蓝牙耳机、蓝牙适配器、蓝牙键盘等等。
蓝牙是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用蓝牙技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与Internet之间的通信,从而使数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。
Bluetooth无线技术是当今市场上支持范围最广泛,功能最丰富且安全的无线标准。全球范围内的资格认证程序可以测试成员的产品是否符合标准。自1999年发布Bluetooth规格以来,总共有超过4000家公司成为Bluetooth特别兴趣小组(SIG)的成员。

蓝牙技术在给人们带来方便的同时,也给人们带来了一些安全隐患。
一、蓝牙 Hacking 技术
(一)识别及激活蓝牙设备
目前市面上的蓝牙适配器有多种,大小也各不相同,不过大多数外置蓝牙适配器均以USB接口为主。在识别及激活蓝牙设备前,需要在笔记本上插入USB接口的外置蓝牙适配器,正确插入USB外置蓝牙适配器的效果如下图所示。

在正确插入USB外置蓝牙适配器后,就可以使用Linux系统下内置的hciconfig命令对蓝牙适配器的插入状态进行查询,如下所示。
hciconfig
一般都会先输入hciconfig来查看是否有蓝牙设备插入,直接按Enter键后即可看到当前已经识别出来的蓝牙适配器,如下图所示为hci0。注意:此时在hci0后面的BD Address处显示为00:00:00:00:00:00,这就意味着该蓝牙适配器驱动并未载入。

在确认已经识别出蓝牙适配器后,下面就可以进行将蓝牙适配器载入的操作了。
具体命令如下:
hcicon fi g hci0 up
参数解释:
hci0:为蓝牙适配器名称,一般都为hci0,若有多个蓝牙适配器,则第二个就是hci1,以此类推;
up:和ifconfig类似,up是载入该设备,若是down,就是卸载该设备。
在激活蓝牙适配器后,就能够看到如下图所示的内容,其中,在BD Address一栏可以清楚地看到出现了具体的MAC,这就表示系统已经正确识别并载入了该蓝牙适配器的驱动。

(二)查看蓝牙设备相关内容
Hciconfig所能提供的功能有很多,在Linux下可以使用——help参数或者使用man命令来查看这些支持的功能。下面举一个例子。
hcicon fi g hci0 class
参数解释:
hci0:这里指的是当前已经载入的蓝牙设备,这里就是hci0;
class:支持级别、内容。
按Enter键后就能看到如下图所示的内容,不过在下图中Device Class和Service Classes等处,并没有显示出很详细的内容。

对于有的蓝牙适配器,hciconfig可以轻松地将其提取出来。如下图所示,可以看到在Service Classes处显示为Rendering,Information,而在Device Class处显示为Computer,Laptop。

(三)扫描蓝牙设备
为了便于蓝牙设备的连接,那些开启了蓝牙功能的智能手机、PDA、PSP等便携式设备,在默认情况下,都是处于广播开启状态的,也就是说允许其他任意蓝牙设备探测。而在Linux系统下,扫描蓝牙设备常用到工具就是hcitool及图形化的btscanner。
1、hcitool
在Linux系统下完成BackTrack的升级操作后,系统会自动安装好蓝牙的全套操作工具,其中就包括了hcitool。该工具支持大量的蓝牙设备操作,如扫描、查看设备属性等。下面就来看看该工具是如何进行扫描的。
具体命令如下。
hcitool –i hci0 scan
参数解释:
-i:设备名称,这里的蓝牙设备名称是hci0,还可以先输入hciconfig来查看其名称,不过若只有一个蓝牙适配器的话,这个-i参数可省略;
scan:扫描模式,该模式下将对附近蓝牙适配器工作范围内的所有蓝牙设备进行探测。
按Enter键后就开始扫描,稍等片刻就可以看到如下图所示的内容,可以看到发现了两个蓝牙设备,在名称描述上出现了Dell Wireless 365 Bluetooth Module字样的设备,根据经验,显示为Module模块的,一般都是笔记本电脑上的蓝牙模块,所以初步判断为两台开启了蓝牙功能的笔记本电脑。

该命令很简单直观,不过也有个缺点,就是不能够持续地探测周边的蓝牙设备。
2、btscanner
用户要想使用btscanner工具扫描蓝牙设备,需要先打开该工具,有两种打开方式:一是通过蓝牙功能菜单;另一种是先打开一个shell,然后在其中输入btscanner。
在打开btscanner之前,该工具会自动检查是否存在蓝牙设备,如存在则启动并进入图形模式,否则不能启动。当刚进入btscanner时,会看到如下图所示的界面,在其中可以看到给出了相应参数的关键字。

这里如果输入字母“i”,即采用inquiry scan扫描方式,按Enter键后稍等片刻,就能够看到如图所示的内容,可以看到发现了3个开启了蓝牙的设备。与hcitool不同,这款工具会实时对当前蓝牙适配器有效探测范围(一般以6m为半径)内进行扫描,并将扫描结果实时显示在上方。换句话说,就是不停地对周边进行雷达式的扫描。如下图下方所示,能看到会不停地出现Found device ×××××××××提示,这就表示扫描到了新的蓝牙设备。

需要注意的是,有时,由于距离、扫描频率等因素,btscanner在初次扫描的时候,会识别不出蓝牙设备的名称,如下图所示,在设备后面会出现unknown(未知)的提示。

不过只要稍等片刻,btscanner就会识别出该蓝牙设备的名称,刚才显示为unknown的设备名称已经被识别出来,为OMIZ_2219,这是一款蓝牙耳机,如下图所示。

3、bluescan
若用户对btscanner的不间断扫描方式不满意的话,还可以使用bluescan进行蓝牙设备的搜索。
具体命令如下:
./bluescan
输入效果如下图所示,如果不需要参数,直接按Enter键就可以开始扫描。

开始扫描后,bluescan会不断地扫描周边的蓝牙信号,并同时将扫描的结果反馈到当前界面上,如下图所示,可以看到多个名称描述为Dell Wireless 365 Bluetooth Module的设备被扫描到,这些设备MAC地址各不相同,这是由于当前环境中有多台Dell笔记本电脑正在使用。

如下图所示,bluescan会自动不断刷新周边的蓝牙设备,并将其一一显示在当前界面上,除了名为Dell Wireless 365 Bluetooth Module的笔记本蓝牙模块外,还出现了苹果的iPod设备。

由于该软件是不间断地刷新屏幕,所以会出现重复的情况。当不需要继续扫描时,可以使用键盘上Ctrl+C组合键来强制中断扫描。如下图所示,在中断后,bluescan会提示保存扫描结果,输入数字“2”并按Enter键即可保存,该文件被保存在/root/bslog.txt。

若需要查看扫描结果,在Linux下可以使用cat命令打开该文件。
具体命令如下:
cat /root/bslog.txt
按Enter键后就可以看到如下图所示的内容,该文本中记录了所有已扫描到的蓝牙设备名称、地址及发现时间。

(四)蓝牙攻击技术
任何一个新技术在使用的过程中,都会出现这样或者那样的安全漏洞和潜在的攻击隐患,蓝牙技术也不例外。下面就来介绍比较出名的蓝牙攻击,分别是bluebugging攻击和bluejacking攻击。
1、bluebugging攻击
bluebugging允许恶意攻击者利用bluetooth蓝牙无线技术,在事先不通知或不提示手机用户的情况下,访问手机命令。此缺陷可以使恶意的攻击者通过手机拨打电话、发送和接收短信、阅读和编写电话簿联系人、偷听电话内容以及连接至互联网。要在不使用专门装备的情况下发起所有这些攻击,黑客必须位于距离手机蓝牙有效工作范围内。
此类攻击最早出现于2005年4月,主要是蓝牙自身缺陷导致,受其影响的机型也主要为2005年前后的Nokia 6310、6310i及索爱T68等,现在正规厂商生产的新款智能手机已基本不受其影响。这方面较出名的工具就是bluebugger了。
具体命令如下:
bluebugger -a 设备地址 info
参数解释:
-a:设备地址,这里的设备地址就是预攻击的地址。
info:获取目标手机上的信息。
按Enter键后,如果攻击成功,可以看到在攻击开启了蓝牙功能的Nokia6310i的手机后,成功地获取到了目标手机的部分联系人名单,包括姓名和对应的手机号码。

而当攻击失败时,会有Cannot open的提示,这往往是由于目标设备当前蓝牙版本过高或者为非手机类便携设备。

2、bluejacking攻击
bluejacking是指手机用户使用Bluetooth蓝牙技术匿名发送名片的行为。需要注意的是,bluejacking并不会从设备上删除或修改任何数据。而这些名片通常包括一些玩笑、挑逗或骚扰性的消息,而不是通常所说的姓名和电话号码。
从攻击本质上说,接收bluejacking消息并不会对自身的手机造成危害,但接收bluejacking文件会存在感染恶意代码的可能,所以为避免垃圾消息群发攻击及无意识的私人消息泄露,作为手机机主应拒绝将此类联系人添加至通讯录。一般情况下,设为不可发现模式的设备不容易受到bluejacking之类的攻击。
如下图所示为在PDA上对开启蓝牙功能的Nokia 5300进行bluejacking攻击,通过蓝牙发送恶意名片的工作界面。如这里写了一条短信,内容为Hi,I'm Christopher Yang!!,而作为攻击目标的Nokia 5300,此时会有提示收到一条未知的短信,询问是否查看,当使用者选择接收的话,就能够收到该短信。

(五)修改蓝牙设备地址
为了躲避可能的搜索和跟踪,用户可以通过修改蓝牙设备的地址来迷惑黑客,从而提高蓝牙设备的安全系数。对于黑客而言,可以将蓝牙适配器的MAC地址修改成其他的或者指定的地址,以达到迷惑对方或欺骗对方的攻击目的。
修改蓝牙设备地址比较常用的工具是bdaddr,该工具在BackTrack Linux下已经内置。下面就来介绍如何使用bdaddr。
步骤1 首先,来查看一下当前蓝牙设备的地址,输入hciconfig,按Enter键后出现如下图所示界面,在其中可以查看当前设备的MAC地址。

步骤2 作为测试,这里就修改成00:11:22:33:44:55,具体的命令为:
bdaddr [-i hci0] [00:11:22:33:44:55]
按Enter键后,就可以看到如下图所示的内容。其中在MAC地址下方显示的是Address changed-Reset device now,即地址成功修改,重新启动蓝牙适配器。接下来只要使用命令hciconfig hci0 reset就可以。

修改蓝牙设备MAC地址命令的具体格式如下:
bdaddr [-i <dev>] [new bdaddr]
参数解释:
-i<dev>:后跟蓝牙设备,就是前面载入的设备,一般都是以hci0、hci1等名称设置,这里是hci0;
bd_addr:此为希望修改成的蓝牙MAC地址。
二、蓝牙DoS攻击技术
DoS攻击是网络攻击方式的一种,而蓝牙技术是无线网络的一种,因此,蓝牙设备也会受到DoS攻击,下面介绍有关蓝牙DoS攻击技术的相关知识与实战。
(一)关于蓝牙DoS
DoS攻击是以向目标主机发送大量畸形的ICMP数据包的方式,使得目标计算机忙于响应从而达到资源耗尽死机的目的,实现这种攻击技术的相关工具是ping,与之相类似,实现蓝牙DoS攻击的工具是L2ping。
L2ping是一款用于测试蓝牙链路连通性的工具,主要在Linux下使用。不过这款工具并不需要先使用PIN码建立连接,而是对蓝牙适配器探测范围内的蓝牙设备都可以进行连通性测试。
(二)蓝牙DoS攻击演示
在了解了有关蓝牙DoS攻击的相关基础知识后,下面就以在BackTrack Linux环境下演示DoS攻击为例,来介绍实现DoS攻击的相关操作步骤。
步骤1 载入蓝牙适配器在开始实战前需要先载入笔记本电脑内置的或者外置蓝牙适配器,具体命令如下:
hcicon fig
hcicon fig hci0 up
参数解释:
hci0:此为蓝牙适配器名称,一般都为hci0,若同时使用多个蓝牙适配器,则第2个就是hci1,以此类推;
up:和ifconfig类似,up就是载入该设备,若是不再使用适配器,此处应当使用down来卸载该设备。
一般都会先输入hciconfig来查看是否有蓝牙设备插入,若有hci0存在,再执行hciconfig up来激活,若没有任何回应,则应该重新插入蓝牙适配器,具体如下图所示。

步骤2 扫描蓝牙设备,具体命令如下:
hcitool scan

步骤3 对蓝牙设备进行DoS攻击。目标确认后,就可以直接开始连通性测试,l2ping的基本命令很简单,具体命令如下:
l2ping 目标MAC
参数解释:
目标MAC:此处输入之前扫描得到的目标蓝牙设备的MAC地址。
按Enter键后,将看到类似于如下所示的内容。
----------------------------------------------------------------------------
ZerOne ~ # l2ping 00:12:D2:91:34:C8
Ping: 00:12:D2:91:34:C8 from
00:15:83:F0:F0:5F (data size 44) ...
96 bytes from 00:12:D2:91:34:C8 id 0
time 814.88ms
96 bytes from 00:12:D2:91:34:C8 id 1
time 77.67ms
96 bytes from 00:12:D2:91:34:C8 id 2
time 69.61ms
96 bytes from 00:12:D2:91:34:C8 id 3
time 69.55ms
96 bytes from 00:12:D2:91:34:C8 id 4
time 71.49ms
96 bytes from 00:12:D2:91:34:C8 id 5
time 78.44ms
96 bytes from 00:12:D2:91:34:C8 id 6
time 76.38ms
96 bytes from 00:12:D2:91:34:C8 id 7
time 79.31ms
8 sent, 8 received, 0% loss
----------------------------------------------------------------------------
默认情况下,Linux下和Windows下的ping命令不同,使用上述命令会持续发包,直到按下Ctrl+C组合键来终止,默认发包的大小为44个字节,如下图所示。

与在传统有线网络中使用ping命令一样,由于发送数据量很少,所以上面的操作及命令只能算是蓝牙连通性测试,而不能算是蓝牙DoS攻击。那么,想要对目标蓝牙设备造成DoS攻击,则应该增大蓝牙数据流。
具体命令如下:
l2ping -s num 目标MAC
参数解释:
-snum:这里是定制发送数据包的大小,而num处则是输入具体的数值;
目标MAC:此处输入之前扫描得到的目标蓝牙设备的MAC地址。
这里注意一下,返回的数据报文的延时,如下图所示,当设置包大小为2000时,延时达到了160ms左右,而之前在默认情况应为40ms左右,可见随着单包容量的增大,目标设备的响应也开始变得缓慢。

作为对比,如下图所示,当数据包变为5000时,延时增长到2000ms左右,可见由于数据包的增大,确实使得目标耗费了大量的资源进行处理,也就造成了响应的缓慢。

类似地,当数据包变为40000时,延时也增长到7500ms左右,目标的蓝牙模块或适配器耗费了大量的运算性能进行处理,从而响应也变得愈发缓慢。

步骤4 检查攻击效果。如下图所示,可以看到,在攻击前,使用hcitool还能探测到开启蓝牙的PDA设备,而在遭到攻击后,则无法探测到,或者出现时而能够探测到时而不能的情况。

要注意的是,包的大小也不能设置得太大,对于不同的蓝牙适配器,能够承受的程度也不一样,比如当设置为10 000的时候,直接就提示连接被中断了。而比较上图所示,那款Broadcom芯片的蓝牙适配器是可以达到40 000的。

三、安全防护
在了解了有关黑客蓝牙攻击的相关技术后,下面给出比较有效的几种改进现有蓝牙设备安全性的方法,供大家参考。
1、关闭蓝牙功能
关闭蓝牙功能是提高设备安全性最有效的方法。看到这一项估计有很多读者会显得颇不以为然,但是事实证明,目前有很多用户在购买了全新手机后,由于对很多手机默认设置蓝牙开启的不了解,所以导致自己手机的蓝牙功能长期处于开启状态但却毫不知情,增加了自身隐私泄露的机会,如下图所示为设置手机的蓝牙为关闭状态。

2、设置蓝牙设备不可见
其实避免蓝牙安全漏洞隐患一个很简单的办法就是将蓝牙功能设置为不可见,所谓不可见就是不能够被其他蓝牙设备直接搜索到,只有之前连接过的蓝牙设备才可以直接连接此设备。在手机中单击【蓝牙设置】选项,取消【可检测】的选中状态,这样就会使手机上的蓝牙设备处于不可见的状态,也就是说别人扫描的时候是扫描不到我的蓝牙设备的,即可实现蓝牙功能不可见的目的。

3、限制蓝牙可见时长
直接关闭可见模式可能对于一些用户而言,反而会造成一些麻烦。那么,也可以通过限制可见模式的时长,来达到加强安全性的目的。进入到蓝牙配置页面下,可以将蓝牙的可见时间设置为5分钟,即5分钟后该智能手机的蓝牙功能将自动转为“不可见”模式。这样,就有效地防止了可能的蓝牙扫描及攻击隐患。

4、升级操作系统至最新版本
及时将智能手机的操作系统或者固件升级到最新的版本也是提高蓝牙设备安全性的方法。尤其是那些既需要蓝牙功能,又需要不时使用蓝牙与朋友分享桌面、音乐、铃声、图片或者传送文件的朋友,避免蓝牙安全漏洞隐患最好的办法就是升级手机的操作系统。
5、设置高复杂度的PIN码
通常情况下,蓝牙耳机等便携式外设默认PIN码长度均为4位数,且一般为纯数字的简单组合,如1234、0000、1111等。即使个别产品支持额外配置PIN码,但很多人为了方便起见,仍然会使用3~4位纯数字这样简单的密码。
同样地,在具备蓝牙功能的智能手机与笔记本电脑之间通过蓝牙连接时,一样需要配置PIN码,若想提高其安全性,可以将PIN码设置为比较长的数值,如6位,也就是说,尽可能地使用高复杂度的PIN码。
6、拒绝陌生蓝牙连接请求
对于手机或者PDA上突然出现的蓝牙连接提示,应明确其来源。若无法确定来源,应拒绝接受蓝牙连接请求,这样可最大可能地避免蓝牙攻击及病毒的侵扰。
7、拒绝可疑蓝牙匿名信件
同样地,当自己的手机上显示为一个蓝牙信息收取,而来源是并不熟悉的其他设备,应拒绝接收,这样同样对避免蓝牙攻击及病毒的侵扰有所帮助。
8、启用蓝牙连接验证
对于智能手机或者使用外置蓝牙适配器的笔记本电脑而言,开启强制安全验证将有效地确保通过蓝牙信道传输的安全性。在开启验证后,所有的蓝牙连接操作都将经过对方的同意,比如通过蓝牙发送文件,则接收方的设备上会出现连接提示,只有接收方选择同意后,文件才能够通过蓝牙发出。
如下图所示,应确保在蓝牙配置中无线发送验证页面的【需要验证】复选项是处于选中状态的。

ID:Computer-network返回搜狐,查看更多