【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

参宿四今天还好吗 2023-12-15 1,380 12/15

前言

本项目基于GitHub开源项目AppleJuice(GitHub)制作,欢迎前往原项目star支持作者.

如果不愿意自己操作,可以在文章末尾购置成品(不建议)或使用有偿远程烧录服务哦!

注意:本文内容仅供学习参考及处置建议,文章内容不涉及任何以破坏为目的的犯罪行为,敏感信息已经过脱敏处理,请勿将本文内容用于违法犯罪活动!使用前请先了解您当地法律法规要求,使用本文POC及EXP造成的一切后果由使用者自行承担!

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

Apple BLE邻近消息欺骗漏洞概要

漏洞描述:iPhone、iPad等都是苹果(Apple)公司的移动终端产品,通过Apple BLE邻近消息欺骗,向附近Apple设备发送邻近配对请求,实现附近设备弹窗,通过密集广播使附近Apple设备不断弹窗,有概率造成设备死机热重启.

利用条件:不需要
交互要求:0-click
公开程度:有公开poc详情

厂商:Apple

受影响的产品:

iPhone14(16.6.1)
iPhone13(17.3)
iPhone12 Pro(17.1)
iPhone11(16.6.1)
iPhoneX(14.8)-效果不理想,因无法识别新设备
iPad 2021(17.1:17.1.1)等设备

未受影响的产品:

iPhone4S(10.3)

固件更新日志


-----v2.3 BETA3(2024.2.19)-----
1.新增了使用须知
2.新增了合宙串口补丁

 

-----v2.3 BETA2(2024.2.4)-----

1.修复了哈希编码错误(BETA1用户更新此版本需要重写校验

2.新增了Apple Vision Pro弹窗内容

3.新增了IOS17部分系统内容弹窗
4.加入了多核调度器(未启用)

5.更新了QB版本,修复了特殊情况下无限重启的问题

 

-----v2.3 BETA1-----

1.修复了一个编码错误问题

2.修复了其他细节问题

已知该版本问题:

1.哈希编码位数错误,强烈建议其他版本用户不要更新此版本,否则会造成参数失效需要重写,已经位于此版本的用户可无视

2.S3芯片分区表错误,强烈建议其他版本用户不要更新此版本,否则会造成A/B分区失效或无法启动,已经位于此版本的用户可无视

 

-----v2.3 BETA0-----

1.支持QuickBoot引导程序,支持A/B分区,掉固件后自动切换(此功能为成品独占,自行烧录固件不支持此功能)

2.支持QuickBoot任务调度器,将部分任务移动到CPU1执行

3.支持内存管理,修复了因内存溢出导致的死机重启问题

4.修复了S3/C3发射等级的一个小错误(仅存在于20231201以前的v2.2固件中)

5.优化了指令系统功能

 

-----v2.2-----
1.新增支持开关控制启停(GPIO 5接地停止,悬空启动)
2.新增自适应CPU主频选择,默认情况下,S3可提升至240MHz,C3可提升至160MHz(可能会带来严重发热)
3.修复指令系统部分问题
4.正在尝试将部分非必要功能转移到CPU1以提升响应速度

5.从该版本起,放弃ESP32-WROOM32支持,将无限期暂停更新该芯片固件 原因:该芯片API版本过旧,且效果波动较大

 

-----v2.1-----
1.在WROOM-32上完成蓝牙初始化重构(效果待验证)
2.重构了广播程序初始化流程
3.新增随机生成硬件地址,优化多个设备同时运行的效果

 

-----v2.0-----
1.新增指令系统,便于对不同开发板环境进行调参
2.新增完整性验证,开机自动校验固件完整性
3.重构了蓝牙初始化流程,大幅提升蓝牙信号强度(已在S3/C3上完成验证,WROOM-32因API版本较老未成功编译)
已知问题:
S3/C3由于发射功率提升,可能会存在严重发热问题,请注意散热。

 

-----v1.1-----
1.修复了一个因ESP32蓝牙初始化的BUG,由于过早的初始化会导致未达到稳定电压前,被选中为参考电压,导致放大倍率选择错误
2.优化了部分代码

 

-----v1.0-----
1.初步在ESP32S3/C3/WROOM-32/WROOM-32E等芯片上完成验证
2.修正了广播频次以提升广播性能

固件更新计划

3.0版本计划更新:

1.全新的指令系统

2.可调广播功率

3.可调广播速率

 

复现过程

第一步:准备开发板

本文不对任何商家进行推广,此处只做购置建议,不涉及具体链接,具体开发板型号,请自行参考决定。

截止本文发布时,现已支持多款芯片的开发板:ESP32S3系列、ESP32C3系列、ESP32-WROOM32系列

但本项目极其不建议您使用ESP32-WROOM32系列开发板,该芯片已因为API版本过旧问题无限期暂停支持。

其次本项目暂时不建议您使用合宙版ESP32C3开发板,因为未知原因目前存在一定的兼容性问题(可用正常使用,但需要打补丁)

ESP32C3合宙版已出特别版,现已支持(20240101)

下图为已经验证过的开发板,图一为ESP32C3,图二为ESP32S3(可以不必照着买,芯片型号确定,有串口芯片基本都可以用)

 

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

第二步:准备开发板

使用数据线!!!数据线!!!数据线!!!将开发板连接至您的Windows电脑

如果的 单接口 的开发板,直接连接即可

如果是 双接口 的开发板,推荐连接至有COM标识的接口上(一般在开发板底部有标记,如上图所示)

连接成功的话,您的电脑应该会有设备连接的提示音,设备管理器也会如下图所示在“端口”选项出现新设备,拔掉设备后会消失

(设备管理器的设备名称不一定和我一样,您可能是CH34X什么的名字,有这个设备和COM号就可以了)

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

 

有连接提示音但是“端口”选项没出现,有一个感叹号设备“USB Serial”点我查看解决办法

这个问题是由于您的电脑没有自动安装串口芯片驱动导致的,您可以通过手动安装来解决

先查看位于您开发板靠近数据线接口处的一个方形或长方形芯片

如果上面印刷有 CH34XXXX ,请使用这个链接安装驱动:点我进入CH34X驱动下载官网

如果是正方形芯片,上面印刷有 CP210X ,请使用这个链接安装驱动:点我进入CP210X驱动下载官网

 

第三步:准备下载环境

工具链接已经放置在文章末尾,请自行取用或从官网下载

开源固件暂时需要您自行编译(免费!免费!免费!),闭源固件请另行获取或购买

将下载好的 flash_download_tool_x.x.x.zip 压缩包解压会得到如图所示的这些文件

点击底部的 flash_download_tool_x.x.x.exe 可执行文件以运行Flash下载工具

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

运行后会弹出一个命令行黑色框框,稍等片刻会出现参数选择框

此处 ChipType 选择您购买的开发板,笔者此处选择ESP32C3

其他选项保持不变,直接点击OK按钮

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

进入下载参数配置界面后,在右下角选择开发板所在的COM口

如果不知道选哪个COM口,返回第二步,插拔一下开发板看看哪个COM口消失又出现了【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

在配置界面上方点击“...”按钮,选择您的固件文件 ESP32XX-20XXXXXX.bin 文件

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

在固件后方地址栏填入0x0数值,切记不要填错了!!!

最后配置如图所示

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

 

第四步:下载固件

点击面板下方的ERASE按钮,擦除Flash的内容

此时会出现“下载中”字样,底部进度条不会走条,只要不报错,过一会就会变成“完成”

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

再点击面版下方的START按钮,此时会出现“下载中”字样,底部进度条走满后变成“完成”

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

 

第五步:检查运行状态

当Flash下载工具显示“完成”后

打卡串口调试工具,此处以VOFA+为例子演示

解压vofa+_x.x.x_win64.zip压缩包后打开vofa+.exe可执行文件

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

进入软件后

数据接口选择 串口

端口号选择您 开发板COM口

波特率选择 115200

再在左上角点击启动串口连接

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

按下板子上的RST按键 或者是 EN按键,只需要按一下就松开即可,串口助手就会开始输出数据

如果输出是数据为字母数字组成的十六进制,并非文本,请点击图二处的按钮切换为字符串模式

您的文本内容可能与图片不同,但只要正常显示中文文字了就代表您成功烧录了固件并且正常运行了!

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

 

 

第六步:调试程序(部分固件无此步骤可跳过,如果出现了以下内容则不可跳过)

如果您的文本信息显示以下内容:

程序初始化检查失败 exit 1; 原因:未正确配置初始化参数!

则您可能需要注入新的启动参数才能正常启动程序

建议您询问固件下载链接的发布者此固件的哈希参数,并如下图所示注入参数即可运行(不要照抄图片的命令,照抄没用的)

 

写于2023.12.15:由于QB模块要求,使用2.x以后的固件需要有偿哈希解密完成验证,请联系您的固件提供者获取验证参数

其中v2.3以后的固件为QB v2,采用新的验证算法,请注意固件版本选择,以免造成不便

其他版本升级v2.3以后固件需要使用新的哈希参数,请联系固件提供者获取

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

然后输入/777777 或 按下板子上的 RST按钮 完成重启

此时程序应该就会正常运行了

【教程】ESP32S3/C3/WROOM32快速刷入HappyAppleJuice固件实现苹果蓝牙弹窗攻击复现

 

处置建议

截止至本文发表日期(2023.12.15),苹果公司暂未对此漏洞做出任何响应,且考虑到该漏洞影响设备数量较大,修复难度较大,短期内可能无法完全修复,您仍然可以通过以下方式避免影响:

1.在iPhone或iPad的 设置-蓝牙 中关闭蓝牙开关(注意:在控制中心关闭蓝牙无效)

2.远离不可信设备将减少甚至解除弹窗影响

3.启动相机或键盘可以暂停弹窗

 

 

资料下载

温馨提示:此处内容需要评论本文后才能查看。(评论无需注册)

 

如果觉得有帮助就打赏一下小破站吧ヾ(≧▽≦*)o

 

成品购买

 

- THE END -

参宿四今天还好吗

3月29日23:14

最后修改:2024年3月29日
4

本文未经允许,禁止转载,如需转载可联系作者免费申请

共有 32 条评论

  1. LaoDong

    我来试试

  2. comm

    我来试试

  3. 去玩

    我去恶趣味请问

  4. 1

    我来试试

  5. 1233432

    我要

  6. fghfghfg

    体育交通费

  7. qiaowqe

    试试吧 哈

  8. qiaoLDKD

    试试吧 哈哈哈

  9. 复方石韦

    试一下

  10. AAAAAREBNNG

    SHISHI

  11. 观后感

    牛逼

  12. 虎小飞

    ok了

  13. 虎小飞

  14. 虎小飞

    谢谢了

  15. 114514

    试试看

  16. 下北泽仙贝

    114514 😝

  17. Suzumiya Haruhi

    试试 😉

  18. Suzumiya Haruhi

    试试

  19. 林檎

  20. 屑耗子

    成了,感谢

  21. 屑耗子

    试试看

  22. 123

    nb

  23. hunix

    nb

  24. 11111

    爱你

  25. 参宿四今天还好吗

    参宿四今天还好吗博主

    测试评论

  26. 11111

    🤔 🤔 🤔 🤔

  27. sam

    111

  28. ws

    nb

  29. j

    😀

  30. JIANG

    😧

  31. 南河

    感谢博主

  32. 该用户昵称加载中

    成功了,感谢 😚