CVEID:CVE-2024-33352
Bluestacks 咨询 ID:待定
受影响产品的名称和版本:BlueStacks for Windows(10.40.1000.502 之前的版本)
漏洞类型:CWE-552:外部方可访问的文件或目录
概括
BlueStacks 是一款 Android 模拟器,可在虚拟机中运行客户 Android 系统。由于 BlueStacks 将虚拟机配置文件存储在全球可写的目录中,并在不同的操作系统用户之间共享这些文件,因此非特权用户可以对映像进行后门操作,然后获得特权用户的代码执行能力。
描述
BlueStacks 配置全局存储在 ProgramData 目录中,具有以下 ACL
NT AUTHORITYSYSTEM:(I)(OI)(CI)(F)
BUILTINAdministrators:(I)(OI)(CI)(F)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
BUILTINUsers:(I)(OI)(CI)(RX)
BUILTINUsers:(I)(CI)(WD,AD,WEA,WA)
Successfully processed 1 files; Failed processing 0 files
分配给每个人的 (F) 权限意味着所有用户都可以完全访问和修改内容。这允许修改虚拟驱动器(模拟器使用的存储)及其 Virtual Box 配置文件。编辑前者使攻击者有机会将自动执行的代码添加到底层虚拟机,从而创建一个后门,该后门将在合法用户启动模拟器时运行。编辑后者允许重新配置共享目录设置以包含整个 C 盘,从而使代码从 Virtual Box 逃逸到主机操作系统。
为了实现虚拟机逃逸,攻击者会修改该文件 C:ProgramDataBlueStacks_nxtEngineNougat32Nougat32.bstk(或受害者 Bluestacks 版本使用的特定虚拟机的类似文件;不同的 BlueStacks 版本可以使用其他 Android VM),并对其进行修改以更改行
<SharedFolder name="BstSharedFolder" hostPath="C:ProgramDataBlueStacks_nxtEngineUserDataSharedFolder" writable="true" autoMount="false"/>
到
<SharedFolder name="BstSharedFolder" hostPath="C:" writable="true" autoMount="false"/>
这将允许通过 完全访问 Windows 文件系统(限制取决于运行 BlueStacks 的用户的访问级别)/mnt/windows/BstSharedFolder。
配置共享文件夹以启用虚拟机逃逸后,攻击者需要修改虚拟驱动器的文件系统以添加特权用户运行时将执行的代码。有多种方法可以做到这一点,但 PoC 中演示的最直接的方法是安装一个通过使用BOOT_COMPLETED广播接收器自动启动的应用程序。
漏洞利用的最后一步是执行逃逸。通过访问主机操作系统文件系统,可以通过将可执行文件添加到当前用户的目录中来实现AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup。虽然应用程序无法知道当前用户是谁,但它可以简单地枚举子目录C:Users并尝试写入所有子目录。
再生产
-
设置攻击者和受害者的账户,最好让攻击者失去特权,受害者成为管理员
-
受害者:安装有漏洞的 BlueStacks 版本
-
攻击者:修改Nougat32.bstk,让Android可以访问C盘
-
攻击者:运行Android系统并安装恶意应用程序
-
受害者:运行 BlueStacks,导致恶意应用程序将有效载荷投放到你的启动目录中
-
受害者:重启机器并再次登录你的账户
-
启动有效负载应以你的权限执行
补救
安装较新版本的 BlueStacks。
https:
//github.com/mmiszczyk/CVE-2024-33352
原文始发于微信公众号(Ots安全):CVE-2024-33352:BlueStacks 通过虚拟机后门提升权限
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论