- A+
详解蓝牙Bluebugging攻击技术
目前流行的蓝牙协议版本应该是2.0和2.1,但作为2005年以前生产的手机、PDA等便 携式设备,普遍使用的是1.1版本。而无论是早期的蓝牙1.1还是现在的蓝牙2.0,都已经被 公布出是存在漏洞和潜在攻击隐患的。至于这些漏洞的具体内容是什么,又如何表现,本节 就来讲述较为有名的Bluebugging攻击。 13.3.1 基本概念
1.关于Bluebugging攻击
Bluebugging允许恶意攻击者利用蓝牙无线技术通过连接手机隐藏且未经保护的频道, 在事先不通知或提示手机用户的情况下访问手机命令。此缺陷可以使恶意的攻击者通过手机 拨打电话、发送和接收短信、阅读和编写电话簿联系人、偷听电话内容以及连接至互联网。 虽然现在很多智能手机已基本不受其影响,但是仍旧有大量的手机面临此类攻击的威胁,比 如一些采用MTK解决方案的国产手机。
2.何谓MTK
目前市场上主流的平台有TI、摩托罗拉、飞利浦、MTK、ADI、展讯、英飞凌、凯明 等。一般来说,在服务方面所有手机平台没有特别大的差别。MTK公司的产品因为集成较 多的多媒体功能、容易开发的特点及较低的价格在手机公司和手机设计公司待到广泛的应 用。MTK全名MediaTek,是我国台湾联发科技多媒体芯片提供商研制的一种高度集成的多 媒体基带芯片方案,是一个主要应用于手机的廉价解决方案。
对消费者来说买MTK方案的手机主要是因为功能多价格便宜。虽然MTK曾一度被戏 称为黑手机,但很多手机厂商都是用MTK的方案,因为其缩短了产品研发周期,使得手机 厂商能够更加灵活地应对市场多变的需求。虽然MTK有很多缺点,但是该解决方案的实际 表现证明了其强大的生命力,庞大的市场占有率和销量都是其他平台所无法企及的。MTK 并不像很多人认为的那样仅仅是黑手机的标志,即使是MTK手机也是有区别的。品牌手机 无论是在做工还是保修上肯定要比一些低端手机生产厂商拼装的黑手机强得多。而这些厂家 生产的MTK手机其外观常与某些大品牌的手机产品类似,甚至在名称上也使用了Nokai、 Anycoll等相似名称来迷惑消费者,图13-55所示为某MINI手机。而图13-56为所示的手机 是D899,外观上与时下流行的iPhone相似。
本节中的内容适用对象也包含了使用MTK芯片的部分手机,这一点请大家注意,
13.3.2工具准备
大多数的蓝牙工具在Linux下默认已安装,如hciconfig、hcitool等,主要需要安装的是 minicom这款Linux下的终端工具。
Linux下的minicom的功能与Windows下的超级终端功能相似,可以通过串口控制外部 的硬件设备。适于在Linux通过超级终端对嵌入式设备进行管理。同样也可以使用minicom 对外置Modem等进行控制。对于BackTrack4 Linux的用户来说,minicom已经内置安装完 毕无须再下载。
对于Linux下的用户,可以从http://alioth.debian.org/projects/minicom/下载minicom的安 装包至本地再安装。
至于Linux下的具体安装命令,参考如下:
13.3.3攻击步骤
下面以目前在国内广泛流行的低端手机为例来演示Bluebugging 攻击。如图13-57所示,作为本节演示用的低端手机名为Anycoll, 与三星Anycall品牌中的某一款型极其相近。这款用于测试的低端手 机采用的就是MTK芯片。
关于Bluebugging攻击的具体步骤如下:
扫描蓝牙设备。
在载入蓝牙适配器后,就可以对周边开启篮牙的移动设备进行 图13-57 扫描了,具体命令如下:
按IEnter]键后即可看到图13-58所示的内容,可以看到发现一个名为MTKBTDEVICE 的设备,该设备即为测试用的低端手机,这个名称是其内置的蓝牙芯片名称,其中,MTK 表示出其芯片厂商,而BT即Bluetooth的缩写,DEVICE就是设备的缩写。
一般在搜索到开启蓝牙功能的设备后,会使用L2ping测试与该设备的蓝牙模块之间是 否数据可达,具体命令如下:
按【Enter]键后即可看见图13-58所示的内容,会显示出类似于“6 sent,6 received, 0% loss”的提示,即“发送6个包,收到6个包,没有丢失”的意思。
查找串行端口服务。
为了获取手机的控制权,需要连接目标设备的串行端口。所以需要通过蓝牙来搜索关于 串行端口的服务。这里需要使用到sdptool工具,这里使用的具体命令如下:
其中,browse用于浏览所有可用服务,主要是列出所有隐藏的服务内容、工作频道等。 按IEnter]键后可以看到出现了详细的服务列表,这些都是该手机设备支持的服务内容, 如图13-59所示。
对于攻击者而言,需要找到串行端口即Serial Port的信息,在sdptool命令返回的内容 中查看,即可看到名为Serial Port的内容,其中,主要需留意的是Channel即频道的数值。 如图13-60所示,这里的Channel为10,即串口使用的隐藏频道是10。
配置蓝牙连接设置。
接下来需要对Ubuntu下的蓝牙配置文件进行修改和设置,具体命令如下:
在上述命令中,nano是Linux下一款工作在Shell下的编辑工具,rfcomm.conf别是蓝牙 连接的配置文件。按IEnterl键后即可看到图13-61所示的内容,当然,对于之前很少在 Linux下使用蓝牙的读者,实际看到的内容可能与图13-61所示的稍有偏差,请将原始的配 置文件内容修改成与图13-61所示的一致。其中,在device后面输入需要连接的目标蓝牙设 备MAC,这里就是上面使用hcitool搜索到的蓝牙设备MACo然后在channle后面输入Serial Port的频道数值,这里就是上面使用sdptool 列出的内容,即10频道。
配置完毕后,按ICtrl+X】组合键退 出,注意选择Y保存。然后开始配置设备的 映射:
其中,bind绑定在某一个设备上,这里 指与目标蓝牙设备之间建立映射关系,也就 是rfcomm0指代目标设备。 按LEnterl键后就可以开始配置终端工具 nurucom。 图13-61
配置minicom。
◇在使用minicom连接之前,需要先对串口进行设置,具体命令如下:
其中,-s用于进入setup模式,即配置模式。
@按【Enterl键后即可看到图13-62所示的配置菜单,使用方向键在菜单中选择Serial
port setup选项并按【Enter]键,该选项主要设置串口。
在打开的设置框中,确保Serial Device选项设置为/dev/rfcomm0,与前面绑定的一 样,具体如图13-63所示。然后在配置菜单中选择Save setup as dfl保存【一定要 记得这一步),提示成功后再选择Exit from Minicom退出菜单。
实施Bluebugging攻击。
④一切配置无误后,就可以开始进行Bluebugging攻击了,先确定目标手机设备在蓝
牙适配器的工作范围内,然后输入如下命令:
④按【Enter]键后即可看到图13-64所示的内容,成功连接至该手机设备。此时,受害者手机上会出现“串口已连接”的提示,不过该提示会一闪而过,不需要对方的确定。这时,攻击者就已经成功地获取了该手机的控制权。 ◇现在攻击者已经可以对该手机进行任意操作了,包括命令该手机向外拔打电话、读
取手机短信、编写短信向外发送、读取通话记录等。比如输入参数如下:
其中,atdt num参数用于拔打电话,后面的num为具体的电话号码,需要注意的是,由 于机型的不同,有时在拨打手机时需要加入086这样的国际区号。
按【Enter】键后如图13-64所示,此时受害人的手机会自动拔打该号码。 作为攻击者而言,当然不会简单地拨 号那么简单,输入参数如下:
参数解释:
at+cpbr=<indexl>[,<index2>] 参数 用于查询手机中电话薄的内容。其中,在 indexl处输入序号,即可查询该顺序号码 下的电话号码。若需要查询某一段号码, 则在indexl处输入起始位,在index2处输入结束位即可。
该命令的意思是列举出手机电话号码薄中l~ 100住的内容。按IEnterl键后就可看到图 13-65所示的内容,自动将读取的前100位号码全部列举出来。此时,受害者的手机是没有任何 提示和反应的。
从图13-66可以看出,由于该手机中只存了70个号码,所以经过数秒后,就成功地将 全部号码读取完毕了。
图13-65 图13-66
由此可见Bluebugging攻击的危害性,而由于攻击者已经获得了该手机的全部控制权, 更可以以此做出更多严重的危害,比如拨打恶意声讯台诈取高额话费、骚扰他人、伪造短信 骗取钱财、伪造身份等,由于本节仅为研究和探讨Bluebugging攻击的存在形式,所以更进 一步的操作就不再演示了。不过为方便安全及渗透测试人员进行深一步的安全测试,下面给 出几个常用的手机测试参数,具体如表13-2所示。
13.3.4小结
关闭蓝牙是最简单且有效的方法。若是确实需要蓝牙功能,那么应当设置为不可见。升 级固件也是个好方法,只是对于一般用户来说稍有难度。
13.4 蓝牙D,O.S
前面说到了针对目前Wi-Fi无线网络的D.O.S攻击的原理、工具及方法,本章主要讲解 关于蓝牙D.O.S的知识。 13.4.1 关于蓝牙D.O.S
在传统的有线网络中,早期的D.O.S攻击方式中有一种被称为“死亡之Ping”的攻击方 式,这种攻击是以向目标主机发送大量畸形的ICMP数据包的方式,使得目标计算机忙于响 应从而达到资源耗尽死机的目的。这种攻击在以前对于Windows 98之类的系统很有效,但 随着系统内核的升级等原因,对于现在的Windows系统都已经失效了。不过,若能集合足 够数量的机器,还是可以造成庞大的D.O.S数据流。
L2ping是一款用于测试蓝牙链路连通性的工具,主要在Linux下使用。这款工具 类似于平时使用的Ping俞令,能够对蓝牙连通情况做出回馈。不过这款工具并不需要 先使用PIN码建立连接,而是对蓝牙适配器探测范围内的蓝牙设备都可以进行连通性 测试。
在蓝牙安全测试中,该工具也可用于进行基础的蓝牙D.O.S攻击,通过对指定设备 发送大量连通数据包来进行淹没式攻击。而使用L2ping进行蓝牙D.O.S的原理与Ping of Death类似,只不过传输手段换成了蓝牙协议,而对象则换成了蓝牙设备。关于L2ping的资 料大家可以在http://linuxcommand.org/man_page s/12pingl .html网站中查看。
13.4.2 蓝牙D.O.S实战
下面就来讲解如何操作,作为本书中一直在推崇的BackTrack4 Linux同样也内置了 L2ping,所以就不需要再次安装了。具体操作步骤如下:
载入蓝牙适配器。
在开始实战前需要先载入笔记本电脑内置的或者外置蓝牙适配器,具体命令如下:
参数解释:
●hci0:此为蓝牙适配器名称,一般都为hci0,若同时使用多个蓝牙适配器,则第二个 就是hcil,以此类推。
●up:与ifconfig类似,up就是载入该设备,若是不再使用适配器,此处应当使用down来卸载该设备。
一般都会先输入hciconfig来查看是否有蓝牙设备插入,若有hci0存在,再执行hciconfig up来激活,若没有任何回应,则应该重新插入蓝牙适配器,具体如图13-67所示。
扫描蓝牙设备。
接下来确认攻击目标,需要扫描周边的蓝牙设备,具体命令如下:
由于之前的小节已经详细讲解了该命令,这里就不再解释了。执行效果如图13-68所示, 可以看到扫描出一个开启蓝牙的设备,MAC地址为“00:12:D2:91:34:C8”,设备名称为 Christopher Yang。
对蓝牙设备进行D.O.s攻击。
既然目标已确认,那么就可以直接开始连通性测试了,L2ping的基本命令很简单,具 体如下:
其中,目标MAC用于此处输入之前扫描得到的目标蓝牙设备的MAC地址。
按LEnterl键后,将看到类似于如下所示的内容:
在默认情况下,Linux下和Windows下的Ping命令不同,使用上述命令会持续发包, 直到按【Ctrl+C】组合键来终止。默认发包的大小为44字节,如图13-69所示。
图13-69
就好比在传统有线网络中使用Ping命令一样,由于发送数据量很少,所以上面的操作 及命令只能算是蓝牙连通性测试,而不能算是蓝牙D.O.S。那么,想要对目标蓝牙设备造成 D.O.S攻击,则应该增大蓝牙数据流,具体命令如下:
参数解释:
●-s num:定制发送数据包的大小,而num处则是输入具体的数值。
●目标MAC:此处输入之前扫描得到的目标蓝牙设备的MAC地址。 大家需要注意返回的数据报文的延时,如图13-70所示,当设置包大小为2000字节时, 延时达到了160ms左右,而之前在默认情况下应为40ms左右,可见随着单包容量的增大, 目标设备的响应也开始变得缓慢了
图13-70
如图13-71所示,当数据包变为5000字节时,延时增长到2000ms左右,可见由于数据 包的增大,确实使得目标耗费了大量的资源进行处理,也就造成了响应的缓慢。
图13-71
类似地,如图13-72所示,当数据包变为40000字节时,延时增长到7500ms左右,目 标的蓝牙模块或适配器耗费了大量的运算性能进行处理,从而响应也变得愈发缓慢。
检查攻击效果。
由图13-73可以看到,在攻击前,使用hcitool还能探测到开启蓝牙的PDA设备,而在 遭到攻击后,则无法探测到,或者出现时而能够探测到,时而不能探测到的情况。
图13-73
需要注意的是,包的大小也不能设置得太大,对于不同的蓝牙适配器,能够承受的程度 也不一样,比如当设置为10000字节时,如图13-74所示,直接就提示连接被中断了。而比 较图13-72,那款Broadcom芯片的蓝牙适配器是可以达到40000字节的。
13.4.3 蓝牙D.O.S测试问题
为了解决初次学习蓝牙攻击可能遇到的几种情况,本节也给出了对应的解释。
1.目标蓝牙芯片不支持
当发送的蓝牙通信数据包大小过于庞大,超过目标设备蓝牙芯片默认所能接受时,会失 去响应或者直接拒绝响应,具体如图13-75所示。
2.程序出错
若长时间用于进行大数据流的蓝牙D.O.S攻击,L2ping也会出现一些莫名的错误,如图 13-76所示,会显示当前程序已经在执行中,这往往是程序在缓存上出现问题所导致的。
3.远程蓝牙设备关闭,或者关机、重启
当突然无法探测到蓝牙设备时,比如对方关闭蓝牙功能、关机或重启等,也会现如 图13-77所示的提示Host is down,即目标已关闭。
具体的安全防护及改进方法请看接下来的内容。
13.5 安全防护及改进
下面给出比较有效的几种改进现有蓝牙设备安全性的方法,供大家参考。
13.5.1 关闭蓝牙功能
最简单的方法也是最有效的方法即关闭蓝牙功能,看到这一项估计有很多读者会显得颇 不以为然。但是事实证明,目前有很多用户在购买了全新手机后,由于对很多手机默认设置 蓝牙开启的不了解,所以导致自己手机蓝牙功能长期处午开启状态但却毫不知情,增加了自 身隐私泄露的隐患。 经过实际检查证明,绝大多数朋友开启蓝牙都并非本意,但自己却毫不知情,无形中增加 了风险。例如,可能是与朋友聚会时,偶尔用蓝牙传输一两张照片或者文件,但用完忘了关; 或者有家人玩手机,无意中打开蓝牙,但归还后自己却未发现等。根据笔者的经验,这类情况 时常会出现。由此可见,定期检查及关闭智能手机的蓝牙功能将有必要成为一种习惯。
13.5.2设置蓝牙设备不可见
其实有一个很简单的办法就是将蓝牙功能设置为不可见,所谓不可见就是不能够被其他 蓝牙设备直接搜索到,只有之前连接过的蓝牙设备才可以直接连接此设备。具体如图13-78 所示,在安装了Windows Mobile 6系统的智能手机上,进入蓝牙配置页面,取消勾选“使此 设备对其他设备可见”复选框即可实现蓝牙功能不可见。
13.5.3 限制蓝牙可见时长
直接关闭可见模式可能对于一些用户而言,反而会造成一些麻烦。那么,也可以通过限 制可见模式的时长来达到加强安全性的目的。如图13-79所示,对于使用Windows Mobile 系统的智能手机而言,进入到蓝牙配置页面下,可以将蓝牙昀可见时间设置为5分钟,即5 分钟后该智能手机的蓝牙功能将自动转为“不可见”模式。这样,就有效地防止了可能的蓝 牙扫描及攻击隐患。
13.5.4升级操作系统至最新版本
应及时将镯氍手机的操作系统或者固件升级到最新的版本。尤其是那些既需要蓝牙功 能,又需要不时使用蓝牙与朋友分享桌面、音乐、铃声以及图片或者传送文件的朋友,避免 蓝牙安全漏洞隐患最好的办法就是升级手机的操作系统,比如将智能手机默认的Windows Mobile 5.0/6.1版系统升级为官方最新的6.5版本系统。
13.5.5设置高复杂度的PIN码
通常情况下,蓝牙耳机等便携式外设默认PIN码长度均为4位数,且一般为纯数字的简 单组合,如1234、0000、1111等。即使个别产品支持额外配置PrN码,但很多人为了方便 起见,仍然会使用三四位纯数字这样简单的密码。
同样地,在具备蓝牙功能的智能手机与笔记本电目崮艺间通过蓝牙连接时,一样需要配置 PIN码,在这里就需要注意使用在本章前面讲述的长度达6位的随机PIN码进行连接,尽可 能地不要使用弱PIN码。
13.5.6 拒绝陌生蓝牙连接请求
对于手机或者PDA上突然出现的蓝牙连接提示,应明确来源。若无法确定来源,应拒 绝接受蓝牙连接请求,这样可最大可能地避免蓝牙攻击及病毒的侵扰。
13.5.7拒绝可疑蓝牙匿名信件
同样地,当自己的手机上显示为一个蓝牙信息收取,而来源是并不熟悉的其他设备时, 应拒绝接收,这样同样对避免蓝牙攻击及病毒的侵扰有所帮助。
13.5.8启用蓝牙连接验证
对于智能手机或者使用外置蓝牙适配器的笔记本电脑而言,开 启强制安全验证将有效地确保通过蓝牙信道传输的安全性。在开启 验证后,所有的蓝牙连接操作都将经过对方的同意,比如通过蓝牙 发送文件,则接收方的设备上会出现连接提示,只有接收方选择同 意后,文件才能够通过蓝牙发出。
如图13-80所示,应确保在蓝牙配置中无线发送验证页面的“需 要验证”选项是开启的。
详解蓝牙Bluebugging攻击技术来自:http://www.woaidiannao.com/html/wlgz/wxwljs/10922.html
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫