监听蓝牙对话的BlueSpy技术复现

图片

本文是之前文章的BlueSpy技术的复现过程:https://mp.weixin.qq.com/s/iCeImLLPAwwKH1avLmqEpA

2个月前,网络安全和情报公司Tarlogic在西班牙安全大会RootedCon 2024上提出了一项利用蓝牙漏洞的BlueSpy技术,并在之后发布了一个名为BlueSpy的概念验证工具。

这个蓝牙安全漏洞能够允许攻击者在蓝牙扬声器(比如耳机)已经与另一个设备配对并连接的情况下,劫持或监听蓝牙扬声器的输出内容,这也意味着,如果攻击目标是蓝牙耳机,那么可以通过这个漏洞进行目标用户蓝牙耳机通话的劫持,即偷听目标对象的通话内容。

同时Tarlogic也发布了BlueSpy 的PoC项目https://github.com/TarlogicSecurity/BlueSpy,该项目可以验证此漏洞的概念。

环境准备

Python 3.11.8

PoC 使用以下工具:

▪️ bluetoothctl

▪️ btmgmt

▪️ pactl

▪️ parecord

▪️ paplay

测试设备使用Kali虚拟机+蓝牙适配器或者原生Kali系统均可复现。其中,使用虚拟机时需要注意关闭USB控制器的与虚拟机共享蓝牙设备,这个蓝牙设备虽然会显示在蓝牙适配器列表,但是并不能使用,直接使用连接到虚拟机的外置蓝牙适配器即可。

图片

测试准备

在BlueSpy脚本执行时非常容易出现错误,比如:

图片

这时可以使用sudo btmgmt pair -c 3 -t 0命令直接运行btmgmt进行测试,并根据给出的提示解决报错。

图片

确保btmgmt可以正常运行之后,再通过hciconfig命令来检查蓝牙适配器的信息。

hciconfig命令可以查看蓝牙适配器信息,和ifconfig命令可以查看网络适配器一样,遇到适配器DOWN的状态,可以使用hciconfig hci0 up来启动。

图片

另外,sudo systemctl start bluetooth命令用于启动蓝牙服务。

图片

sudo rfkill list命令可以用来检查蓝牙设备是否禁用。

图片

如果蓝牙已被禁用,可以使用以下命令解除禁用:sudo rfkill unblock bluetooth

图片

测试场景

确保btmgmt可以正常运行后,通过bluetoothctl工具扫描周边的蓝牙设备,在工具启动后执行scan on命令来开启扫描,获取蓝牙的地址,这里以网易的云音乐蓝牙耳机为例。

图片

倘若此时周边有其他人已经连接该蓝牙耳机听音乐(这里以耳机连接Windows系统为例)。

图片

图片

测试执行

回到Kali系统开始执行BlueSpy程序,示例如下:

$ python BlueSpy.py -a 蓝牙地址(上文示例为F5:0E:FD:00:01:B8)

图片

上图可以看到Kali系统已经连接到正在播放的云音乐蓝牙耳机,并且开启了麦克风开始录音。

图片

这时在项目目录下会有一个recording.wav的文件生成,这个文件正是录音的文件,随着录音时间的增加,该文件的大小也会增加。

图片

 使用Ctrl+C停止录音后,可以选择是否向连接的蓝牙设备播放媒体文件。选择Y的话会播放刚刚录音的文件,不选择的话,设备会恢复之前的状态继续播放音乐。

这里也可以用单独的命令进行相同操作:

actl set-card-profile bluez_card.04_FE_A1_40_EB_31 headset-head-unit-msbc parecord -d bluez_input.04_FE_A1_40_EB_31.0 recording.wav paplay -d bluez_output.04_FE_A1_40_EB_31.1 recording.wav

使用上述命令可以单独进行录音或者发送指定的音频到目标蓝牙设备播放音乐,假设播放的音乐是空白,则会产生蓝牙耳机或音箱无声的假象。

作者:马云卓
2024年7月1日
洞源实验室 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 提交代码忽略eslint代码检测

在暂存代码的时候会出现以上情况因为在提交代码的时候会默认运行代码进行检测,如果不符合代码规范就会进行报错 解决: 使用 git commit --no-verify -m xxx 忽略eslint的检测

Laravel 谨慎使用Storage::append()

在 driver 为 local 时,Storage::append()在高并发下,会存在丢失数据问题,文件被覆写,而非尾部添加,如果明确是本地文件操作,像日志写入,建议使用 Illuminate\Filesystem\Filesystem或者php原生…

邀请函 | 极限科技全新搜索引擎 INFINI Pizza 亮相 2024 可信数据库发展大会!

过去一年,在全球 AI 浪潮和国家数据局成立的推动下,数据库产业变革不断、热闹非凡。2024 年,站在中国数字经济产业升级和数据要素市场化建设的时代交汇点上,“2024 可信数据库发展大会” 将于 2024 年 7 月 16-17 日在北京悠唐皇冠…

肆拾玖坊的商业模式,49坊新零售奖金制度体系,众筹众创+会员制

肆拾玖坊之所以能够在短时间内成为白酒行业的“现象级”企业,,不仅是依靠独特商业模式,同时也依靠的是坚持用户为核心,围绕用户需求,让用户与产品直接产生连接理念。 坐标:厦门,我是易创客肖琳 深耕社交新零售行业10年,主要提供新零售系统工…

前端技术(二)——javasctipt 介绍

一、javascript基础 1. javascript简介 ⑴ javascript的起源 ⑵ javascript 简史 ⑶ javascript发展的时间线 ⑷ javascript的实现 ⑸ js第一个代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>…

Vue中的axios深度探索:从基础安装到高级功能应用的全面指南

文章目录 前言一、axios 请求1. axios的概念2. axios的安装3. axiso请求方式介绍4. axios请求本地数据5. axios跨域6. axios全局注册7. axios支持的请求类型1&#xff09;get请求2&#xff09;post请求3&#xff09;put请求4&#xff09;patch请求5&#xff09;delete请求 二、…

MyBatis操作数据库(入门)

本节目标 使用MyBatis完成简单的增删改查操作&#xff0c;参数传递掌握MyBatis的两种写法&#xff1a;注解和XML方式掌握MyBatis相关的日志配置 前言 在应用分层学习中&#xff0c;我们了解web应用程序一般分为三层&#xff0c;即Controller、Service、Dao。在之前的案例中&a…

化学SCI期刊,中科院4区,易录用,几乎不退稿

一、期刊名称 Chemical Papers 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;化学 影响因子&#xff1a;2.1 中科院分区&#xff1a;4区 三、期刊征稿范围 该杂志致力于基础和应用化学和化学工程研究。它的范围很广&#xff0c;涵盖了所有化学科学&…

2024年江苏智能制造工厂名单:我看出了未来择业和跳槽方向

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 在当今这个飞速发展的时代&#xff0c;智能制造已成为推动工业进步的强大引擎。随着技术革新的浪潮一波接一波地涌来&#xff0c;我们不禁要问&a…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-49风格迁移

49风格迁移 读入内容图像&#xff1a; import torch import torchvision from torch import nn import matplotlib.pylab as plt import liliPytorch as lp from d2l import torch as d2l# 读取内容图像 content_img d2l.Image.open(../limuPytorch/images/rainier.jpg) plt.…

使用 Swift 递归搜索目录中文件的内容,同时支持 Glob 模式和正则表达式

文章目录 前言项目设置查找文件读取CODEOWNERS文件解析规则搜索匹配的文件确定文件所有者输出结果总结前言 如果你新加入一个团队,想要快速的了解团队的领域和团队中拥有的代码库的详细信息。 如果新团队中的代码库在 GitHub / GitLab 中并且你不熟悉代码所有权模型的概念或…

Unity开箱即用的UGUI面板的拖拽移动功能

文章目录 &#x1f449;一、背景&#x1f449;二、效果图&#x1f449;三、原理&#x1f449;四、核心代码&#x1f449;五&#xff0c;总结 &#x1f449;一、背景 之前做PC项目时常常有面板拖拽移动的需求&#xff0c;今天总结封装一下&#xff0c;做成一个随时随地可复用的…

Linux 安装 Redis 教程

优质博文&#xff1a;IT-BLOG-CN 一、准备工作 配置gcc&#xff1a;安装Redis前需要配置gcc&#xff1a; yum install gcc如果配置gcc出现依赖包问题&#xff0c;在安装时提示需要的依赖包版本和本地版本不一致&#xff0c;本地版本过高&#xff0c;出现如下问题&#xff1a…

Windows 11 安装 安卓子系统 (WSA)

How to Install Windows Subsystem for Android (WSA) on Windows 11 新手教程&#xff1a;如何安装Windows 11 安卓子系统 说明 Windows Subsystem for Android 或 WSA 是由 Hyper-V 提供支持的虚拟机&#xff0c;可在 Windows 11 操作系统上运行 Android 应用程序。虽然它需…

python基础_类

在Python中&#xff0c;类&#xff08;Class&#xff09;是面向对象编程&#xff08;OOP&#xff09;的核心概念之一。类提供了一种创建新对象的模板&#xff0c;这些对象通常被称为类的实例或对象。以下是关于Python类的一些关键点和特性&#xff1a; 定义类 类通过class关键…

ctfshow-web入门-命令执行(web71-web74)

目录 1、web71 2、web72 3、web73 4、web74 1、web71 像上一题那样扫描但是输出全是问号 查看提示&#xff1a;我们可以结合 exit() 函数执行php代码让后面的匹配缓冲区不执行直接退出。 payload&#xff1a; cvar_export(scandir(/));exit(); 同理读取 flag.txt cinclud…

文华财经博易大师盘立方多空波段止损画线指标公式

TT:PERIOD7; EMA120:EMA(C,120); RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:SMA(RSV,3,1); D:SMA(K,3,1); J:3*K-2*D; DRAWTEXT(TT&&J<0,L,多),VALIGN0; DRAWTEXT(TT&&J>100,H,空),VALIGN2; IF(TT,EMA(C,60),NULL),RGB(255,255,2…

JavaScript数组对象 , 正则对象 , String对象以及自定义对象介绍

1. Array数组对象 数组对象是使用单独的变量名来存储一系列的值。 1.1创建一个数组 创建一个数组&#xff0c;有三种方法。 【1】常规方式: let 数组名 new Array();【2】简洁方式: 推荐使用 let 数组名 new Array(数值1,数值2,...);【3】字面:在js中创建数组使用中括号…

试用笔记之-收钱吧安卓版演示源代码,收钱吧手机版感受

首先下载&#xff1a; https://download.csdn.net/download/tjsoft/89499105 安卓手机安装 如果有收钱吧帐号输入收钱吧帐号和密码。 如果没有收钱吧帐号点我的注册 登录收钱吧帐号后就可以把手机当成收钱吧POS机用了&#xff0c;还可以扫客服的付款码哦 源代码技术交流QQ:42…

U盘数据恢复实战指南:原因、方案与预防措施

一、引言&#xff1a;U盘数据恢复概述 在数字化时代&#xff0c;U盘作为一种便携式存储设备&#xff0c;广泛应用于个人和企业中。然而&#xff0c;由于各种原因&#xff0c;U盘数据丢失的问题时有发生。U盘数据恢复技术便是在这种情况下应运而生&#xff0c;它帮助用户在数据…