基于树莓派的蓝牙调试环境搭建

VSole2023-04-10 09:33:29

从nazo✌那里借来一块树莓派,准备在上面搭建一个蓝牙嗅探/扫描环境以供蓝牙的研究。

通过SD卡烧录镜像

官方网站:https://www.raspberrypi.com/

下载并使用烧录软件

官网->firmware:然后选择符合你系统型号(windows/linux/mac)的烧录软件

运行起来是这个效果:

镜像版本我选择的是官方的镜像:

按shift+ctrl+x有镜像的一些初始化配置:

烧录完成过后将SD卡插入树莓派然后连上typec供电开机即可:

开机后的操作

上图左边的那根线是micro HDMI线,另一头连接的是一块便携屏,开机过后便携屏上就有画面了:

当然如果没有便携屏的话,也可以在烧录的时候(按ctrl+shift+x)添加ssh和wifi的选项,然后开机后默认会连上你选择的wifi(默认是你电脑连的wifi)。

然后进入路由器的管理页面查看树莓派的ip(当然也可以扫一下自己的路由ip),然后就能ssh连上去了:

但是像wireshark这种需要图形化显示的软件,直接ssh没办法做到

这个时候可以使用VNC Viewer等软件进行一个远程桌面的显示

不过可能有延迟,笔者还没有试过,大家如果有需要可以试试看,这里就不赘述。

安装蓝牙嗅探的依赖

换源

这里我选择的是中科大源

在中科大的开源镜像站里搜索

点进去按它的教程执行如下指令:

sudo sed -i 's|//archive.raspberrypi.org|//mirrors.ustc.edu.cn/archive.raspberrypi.org|g' /etc/apt/sources.list.d/raspi.listsudo apt-get updatesudo apt upgrade

(ps:在用sudo之前需要通过sudo passwd root来设定root密码)

按装蓝牙依赖

sudo apt-get install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev \pkg-config libpcap-dev python-numpy python-pyside python-qt4

安装ubertooth one蓝牙嗅探软件

笔者使用的嗅探设备为ubertooth one:

比较好的就是它有配套的软件,并且可以通过wireshark直接抓包。

官方文档:https://ubertooth.readthedocs.io/en/latest/index.html

按照"Build guide"、"firmware"、"wireshark"一栏慢慢安装。

首先安装libbtbb:

wget https://github.com/greatscottgadgets/libbtbb/archive/2020-12-R1.tar.gz -O libbtbb-2020-12-R1.tar.gztar -xf libbtbb-2020-12-R1.tar.gzcd libbtbb-2020-12-R1mkdir buildcd buildcmake ..makesudo make installsudo ldconfig

然后安装ubertooth tools:

wget https://github.com/greatscottgadgets/ubertooth/releases/download/2020-12-R1/ubertooth-2020-12-R1.tar.xztar -xf ubertooth-2020-12-R1.tar.xzcd ubertooth-2020-12-R1/hostmkdir buildcd buildcmake ..makesudo make installsudo ldconfig

安装wireshark以及ubertooth插件:

sudo apt-get install wireshark wireshark-dev libwireshark-dev cmakecd libbtbb-2020-12-R1/wireshark/plugins/btbmkdir buildcd buildcmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/arm-linux-gnueabihf/wireshark/plugins/ ..makesudo make install

安装经典蓝牙插件:

sudo apt-get install wireshark wireshark-dev libwireshark-dev cmakecd libbtbb-2020-12-R1/wireshark/plugins/btbredrmkdir buildcd buildcmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/arm-linux-gnueabihf/wireshark/plugins/ ..makesudo make install

添加wireshark权限:

sudo groupadd wiresharksudo chgrp wireshark /usr/bin/dumpcapsudo chmod 4755 /usr/bin/dumpcapsudo gpasswd -a 你的用户名 wireshark

嗅探

使用"mkfifo file_name"或者"mknod file_name p"创建管道文件

然后在wireshark里按如下方式点击配置:

然后点击OK->start即可到达一个空白页面

(ps:在browser里可能会出现查找不到/tmp/pipe的情况,直接回车然后OK->start即可)

然后在命令行里输入:

ubertooth-btle -f -c /tmp/pipe

即可看到wireshark里的蓝牙抓包信息:

扫描和连接

嗅探其实是一个帮助我们分析的过程,实际上与一个设备通信的关键是获取通信设备的MAC地址以及与它建立连接。

这个过程同时也需要一定的硬件支持,不然可能会出现连不上的问题(参考今年西湖的10cm蓝牙2333)。

于是我使用了一个蓝牙适配器,连完过后我的树莓派已经全副武装了hhh:

执行"hciconfig -a"指令:

这个hci1就是我们的蓝牙适配器了。

扫描

通过bluetoothctl进行扫描,就能捕获到周围的蓝牙设备:

当然你也可以使用hcitool lescan,不过效果可能没有那么好:

有些设备是会显示设备名的,而有些设备可能就是unknown,这种情况可能就需要你带着你的蓝牙设备去一个偏僻无人的角落进行抓包获取MAC地址了XD。

连接

可以通过如下命令与设备建立连接:

gatttool -b MAC地址 -I

通过help我们能看出可以选择的命令。

我们比较关心几个东西:

(1)连接/断开:对应着connect和disconnect

(2)发送消息:

char-write-req handle value:将value写到handle句柄

(3)读取消息:

char-read-hnd handle:读取handle句柄中的数值

(4)获取服务和特征值:primary和characteristics

当然命令也不止这几个,但这几个是相对比较常用的,如有其它需求,也可以参考help自行使用。

后续工作

做好准备工作过后,我们就正式开始对一个蓝牙设备的攻击研究了。

首先需要通过嗅探获取蓝牙报文,然后分析达成特定功能的报文处理的格式

然后通过gatttool连接到设备,发送同样格式的报文即可完成中间人攻击

后续会结合相应的例子具体分析,敬请期待。

山莓树莓派
本作品采用《CC 协议》,转载必须注明作者和本文链接
Raspberry Pi(中文名为树莓,简写为 RPi,(或者 RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于 Linux。随着 Windows 10 IoT 的发布,我们也将可以用上运行 Windows 的树莓
Raspberry Pi(中文名为树莓,简写为 RPi,(或者 RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于 Linux。随着 Windows 10 IoT 的发布,我们也将可以用上运行 Windows 的树莓。 自问世以来,受众多计算机发烧友和创客的追捧,曾经一“”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓
随着 Windows 10 IoT 的发布,我们也将可以用上运行 Windows 的树莓。自问世以来,受众多计算机发烧友和创客的追捧,曾经一“”难求。然后进入文件夹可以看到一个 img 的镜像,大小为 1.7GB 左右。把内存卡插入读卡器后,插入电脑。我们进入 boot 分区内,然后新建一个名为 ssh 的文件,注意不要后缀名!!!!
答案也很明了,即开发人员也是要调试的?!GND介绍:GND是电线接地端的简写,代表地线或0线。找到接口之后,就可以拿杜邦线来连接UART,买了下面的针脚和TTL转USB,为什么要用FT232呢
Bluetooth学习之esp32
2022-05-08 18:39:25
Bluetooth学习之esp32旨在寻找IOT设备的攻击面之
据知情者透露,OpenAI最近告诉投资者,预计明年营收将会达到2亿美元,2024年将达到10亿美元。上月,谷歌发布“红色代码”,着手紧急应对ChatGPT的崛起对其搜索引擎业务构成的威胁。背后的主要原因就是ChatGPT的火爆,这款AI聊天机器人走红,并迅速成为推特上轰动一时的话题。视野聚焦到全球不难发现,其他大厂也动作频频,在ChatGPT的火爆助推下,更加关注起AIGC赛道。
很多人把这个原因归结于KB2871997补丁,实际上不然,这个事情的成因实际是UAC在捣乱。RID为500的账户和属于本地administrators组的域用户在通过网络远程链接时,默认就是高权限令牌。
如果找到了某个用户的ntlm hash,就可以拿这个ntlm hash当作凭证进行远程登陆了 其中若hash加密方式是 rc4 ,那么就是pass the hash 若加密方式是aes key,那么就是pass the key 注意NTLM和kerberos协议均存在PTH: NTLM自然不用多说 kerberos协议也是基于用户的client hash开始一步步认证的,自然也会受PTH
VSole
网络安全专家