00:00
哈喽,大家好,欢迎来到这个视频,这个视频我们来看一下ble空口抓包的方案,然后以及通过空口抓包来捕获一下手表与手机的一个通讯过程,然后尝试一下b Le充放攻击。那在讲空口抓包之前呢,我们先来说一下b Le它进行空口抓包的一个原理,大家应该还记得之前我们看过bre心跳的图片,对吧?B呢,它除了在广播的时候会在373839这三个心道来回跳之外呢,它在正常通信的时候,也会在剩余的这些通信的信道里面来回去跳,啊这叫做跳频通信,那它进行跳频通信呢,其实是为了避免一些干扰的,那但是呢,你既然通信的时候要来回跳,那两端的设备其实肯定是要协商好下一步是在哪一个信道进行通信的,那这个斜上的算法呢,就叫做表一的这个跳频算法,那两个设备它去建立连接的时候,这个数据包里面呢,就会包含一些跳频算法的一些。
01:01
参数,让双方根据这些参数呢去计算后面要走哪一个信道进行通信,所以呢,这也就要求你的这一个蓝牙空口抓包工具,你是需要跟着目标去同步进行跳频的,你只有跟着它同步跳频,才能捕获完整的后续的一个通信流程。因此呢,这些抓播工具它就有区分了啊,就分这个三六九等,那有的抓包工具呢,它可以支持同时捕获三个广播信道,那它可以捕获到建立连接的数据包,从中呢解析出跳频算法参数啊,然后跟着目标设备进行同步的跳频,那这种你用,如果你用这种工具的话,那你大概率可以一次性的成功捕获完整的这个蓝牙通讯流程,但是呢,有的抓播方案啊,它只能抓取一个广播新的啊,纯碰运气,那如果你的抓播工具在嗅探的这个信道正好啊是这个主从设备建立连接啊,交换参数的这一个信道,那你是可以跟着进行同步跳频的,那如果人家是在另外的其他的信道建立连接的话,那你的抓包工具就不空了啊。
02:08
那目前呢,我试过下面这么几种方案啊,呃,最喜欢的现在是前两种啊,我们。简单的介绍一下。首先是用ti的开发版,然后加上NCC集团的这个sniffer这个工具啊,我们来看一下。这个工具大概开发版的话,其实你可以选好一点的开发版,也可以选差一点的,然后价格大概在100~400元左右啊,我觉得它的这个优点呢,首先肯定是它支持三个信道的,然后其实它是纯煤电航操作啊,另外呢,NCC去进行B中距工具的时候,其实也是用的sner这个项目去做的一些修改,所以你可以拿整个这个项目来做B的中距攻击。那这个项目的使用呢,也非常简单,在给ATE up上进行了开源,然后你也可以看到他这边说它支持的一些啊优势吧,然后它支持的各种的开发版啊,如果你去搜一下的话,你会发现有的很便宜啊,你可以搜一下。
03:17
啊,像这个,那你可能100多块钱你就可以买到了,但是呢,如果你去买这种的啊,这种稍微贵一点的。啊,你看哦啊,这有点太贵了。呃,我现在用的是这个。大概在400左右啊,然后。它的这个固件呢,人家已经给你编译好了,可以直接下载啊,这个X文件直接下载,然后我用这个。Ti的这个生路工具啊,待会儿我们就实际演示一下,烧录也非常简单,纯图形化界面啊。
04:02
然后烧录完以后呢,你可以配合他的这个Python c的这个脚本啊,去进行一个抓包啊,各种功能的一些操作啊。然后的话是not他们出的这个NF的芯片啊。这个方案可以,我觉得是性价比最高的了啊,它你如果去淘宝去搜它的这个芯片的话,可能。三四十块钱就可以买到,而且呢,官方是可以给你二二号,是可以提前给你刷好这个SN的固件的,你可以看一下啊这个。B你可以选择让他给你提前刷好什么样的固件啊,比如B1抓包的话43块钱,然后还有一些可能有些更便宜的。这这我觉得不太可能,十几块钱。啊,这是2540是后面要说的啊,你看这二三十块钱啊,还是比较划算的,然后它的一个优点也是啊,它能够支持三个广播频道,而且它是在VR shark里面去操作的。
05:09
呃,而且可以看一下啊。它有一个小的插件,就是你可以在这边选择不同的设备去进行抓包啊。但是呢,缺点就是配置起来还是比较麻烦的啊,你需要去安装一些Python的库,然后去把这些插件拷贝到VR sharp的这个文件夹里面去啊。那还有一个呢,是这个工具啊,这是一个国产的工具吧。这个啊,大概700多块钱吧,然后它的一个优点呢,就是你纯图形化界面操作啊,他给你同时抓三个广播信道,然后呢,它它自己会给你提供一个这个应用程序,你可以在这上面打开,然后勾选要抓哪一个设备啊,然后它就会打开VR上去自动的帮你抓取啊,勾上哪个抓哪个啊。
06:06
但缺点就是比较贵,确实比较贵,然后呢,还有是这个方案,这个方案我觉得非常麻烦配起来,我这是222年左右去尝试着去配的啊,整个东西要安特别多东西,然后而且现在它好像也不怎么更新了,我们可以去给他好好看一下。啊,这个工具啊,这就是出哈开F的那个组织,他们出的一个工具。可以看到是去年更新的,然后呢,这个工具有一个优势是什么呢?它是开源的嘛,然后另外呢,它还有一个。啊,就是刚好刚才看到的这个人,就这个人。我们可以看一下他的主页,他给这个工具做了一个。
07:02
类似bad USB的一个功能。就是说你可以把这个改造成一个由蓝牙触发的一个bad USB的设备啊这个项目。啊,基于和兔子构造的USB啊,这个什么键盘注入啊。嗯,但是呢,它的一个缺点就是它只能同时抓一个网络心道啊,你有失败的概率,就是我们前面说的,你可能抓不到他那个跳屏参数啊,还有呢,就是ti的这个开发板啊,同样是ti的开发版了,这个就功能就比较弱了,这个我们可以去淘宝看一下,还是非常便宜,就刚才看到的十几块钱这种。CC2540啊,这个实际8000。那它的优点就是非常便宜啊。它而且呢,它有一个专用的一个图形界面啊,界面大概是长。
08:03
你看一下。他还是长这个样子啊,你可以看到他给你划分的这个还是比较清晰的。但是呢,缺点就是它它也是只能同时抓取一个网络新的,而且它这个数据包导出来这个格式啊,是它自己的一个专有的格式,那你需要去把它的这个格式进行一下转换,才能用VR Sha查看啊,当然这个转换的脚本在get上是有的。那还有一个呢,就是。ICE9的这个blue兔th sniffer啊,我们可以找一下这个在在那个给号上也是开源的,那这一个是纯粹的一个。呃,软件定义无线电的一个方案。啊,也是这个大佬。那他说的是用VRF,当然我没有用过啊,我只用IKF试过啊,它是一个全通道的蓝牙生传器啊这个,但是这东西确实比较贵啊,也就算了,也也不体验了,当然还有一些更商用的,可能几十万那种什么就这种东西,这种就就完全不在我们考虑范围了啊,这就太就普通人根本摸不着对吧啊然后呢,我我这一次使用的呢,就是第一种方案啊,然后我们来看一下。
09:28
怎么去操作啊。我我在这个文档里面呢,就是诶。这边已经也也有放这些项目的地址,然后这个工具的链接呢,大家可以自己去下载,然后安装一下,那我这边已经下好了。那下载完这个软件以后呢,就需要去下载它对应的固件,我这个开发版呢,是CC2562RB啊这个,然后我就下载这个固件,然后下到我的桌面上。
10:09
然后呢,我把这个开发板通过USB直接插到电脑上。这个软件它就会自动识别说,呃,有一个CC2562RB的一个开发版插进去了,我可以点击这个start,然后呢,把这个固件给放进来。然后嗯,点这个load,它就会去往里面烧这个固件。整个过程还是非常简单的。那也可以验证一下。啊,验证成功了,他说我们这个固件是成功烧进去了,然后就可以关掉它了。然后呢?他的这一个操作的。
11:01
呃,脚本呢,是在Python写的,然后你可以我这边就用虚拟机来操作了,因为我之前用我Windows电脑出了一点小问题,没有找到什么好的解决方案。啊,可以给它下载下来。然后把你的这个设备。加载到这里面。啊,进入到Python cri这个文件夹下面啊,你们可以看到啊,一些广播呀,一些用来连接的呀,一些呃,数据解码的什么扫描的,然后这这个是那个抓包的啊。
12:05
我们可以先reset一下啊,可以看到比赛的成功了,那说明我们这个开发板已经能够正常的去和这个Python的脚本就已经通信了啊,然后呢啊,它的这个。扫描的工具也比较简单,我们可以先扫一下。也不用加什么参数,你直接扫就完事儿了,然后也可以看到在扫描的结果里边就有我们的手表。找一下在哪儿。啊,这里。这就是我们的这个手表,那它的麦克地址呢,是这个我们记下来。然后我们就可以用sniffer receive啊。这个脚本,然后杠M指定一下我们的Mac地址,杠O指定一下我们呃嗅探的这些数据保存在哪一个文件上,然后就可以开始去进行抓包了。
13:14
那现在呢,你可以看到,因为我没有用手机去跟他进行连接啊,所以我整个的这个流量都是一些广播网,然后我现在把手机放上。我们来看一下啊。现在呢,我这个手表已经恢复出厂设置了啊,又回到了英文的界面,然后我们打开那个APP。
14:04
给他进行一下连接。那这时候你可以看到后面已经在闪烁一些这个。通信的数据了。但此时呢,它只是一个空的的数据包,有时候你会看到闪过一些很长的啊,这是我们实际通讯的数据。OK, 那现在呢,我们就来到了这个。设备的界面啊,我们的目的呢是。能够抓取到我们下发查找设备,或者说下发通知的,下发消息通知的一些数据,然后进行重放,看一下生不生效,所以我们接下来点击一下这个查找设备。
15:00
啊,现在设备已经开始响了,然后我们点确定,那你可以看到,在这边可以看到我每次检查到设备的时候,这里都会有一条比较长的消息窜上去,我们来看一下。诶,有一个对吧,然后点去掉又有一条,然后有一条又有一条对吧,有一条有一条。那这个就是我们刚才发送的蓝牙的一个数据,已经被我们的找包L工具给完整的抓取下来了,那接下来我们CTRLC给它停掉。然后呢,我们把这个一点PCPG给它复制出来,在桌面上看一下。首先呢,是它的一些广播数据啊,这些我们就不看了,我们直接往下滑。
16:01
呃,然后的话在这边有一个connect啊,这个就是我们去建立连接的数据包了,我们可以展开看一下。比如说他这边会显示出来你的这个麦克地址是什么,对吧,然后呢,会有一些校频参数的一些。展示啊,就是他抓取到的一些跳频参数,然后我们的工具就会根据这些参数去进行同步的跳频,然后抓取后面的数据包,然后建立连接,以后呢,其实就进入到主从设备的这个概念了,另外我们的master就是我的手机,然后从设备呢是这个手表。然后他们会去交换一些参数啊,这些部门可以不用关心,那里面的这些empty这些空的这些包呢,我们可以过滤一下,作为非选中,那所有的这些空的包呢,就会给。去除掉。然后你会发现啊,这里有特别多的一些东西啊,但是没关系,我们要找的是什么,我们要找的是查找设备,是我们的手机去发给我们的手表的一个数据,一个指令,对吧?所以我们要找write,找写的,那我们来简单看一下这些数据。
17:11
像这种啊。像这种right command啊,可以看到下面有一些实际的这种值对吧,那这里面就是我们的手机写给手表的,但是呢,这有点太靠前了,说实话我们是在最后面才按了3次吧,那个查找手表的一个功能,所以我们可以倒着去找一下。啊,这边有一个right对吧,它的值是这个短的一小串,然后上面还有一个right。啊是997啊,再往上是857的right,然后是997的right,然后是857的right,然后是997的啊这一段就比较符合我们刚才点击的啊查找。然后它会响,然后我们点击确定以后呢,它就不响了,说明这里面呢,一个是查找设备,一个是确定啊,我们在网上看一下,应该857啊,可能点了四次我不太记得了。
18:10
那我们可以直接来试一下。怎么试呢?呃,我们可以直接用这个工具啊,嗯,现在还是连接的,可以给他取消一下。我们可以直接把这条值给复制出来啊,作为X X string.对,还有啊,这一条呢,就是。看一下啊,这一条是查找手表啊,然后呢,还有一条是停止查找。就是XP。OK, 然后我们复制一下。
19:06
对不对。然后在这边呢,我们可以去连接一下。连接上啊,但还有一个问题对吧,这么多的服务和特性,我们要写哪一个呢?其实你可以在这边看到啊,这有一个handlele对吧,这是句柄,那它展开以后呢,就可以告诉你,它这个句柄对应的哪一个符下面的哪一个特性,你可以看到是6E40002对吧,那这边呢,就找UE40002就是它,那如果我们往它去写。哎,我看这能不能直接复制啊。紫茶不入。哎,可以可以。那么如果写这个值,那它就会。响,然后震动啊,这是我们查找手表的一个功能,我们试一下发送啊,可以看一下效果。
20:09
我现在没有动他,还在斟酌,还在想。然后呢,我们发送一下停止查找。哎,这是错了,不好意思。哎呦喂,手枪吧,手枪吧,手枪吧,1187。啊,现在已经停止震动了,然后。也不行了啊,这是我们刚才进行重放的一个效果。
21:00
那所以说我们找的是正确的,而且呢,它这个也是可以重放的。
我来说两句