CVE-2024-34331:Parallels Repack 权限提升

admin 2024年7月4日14:33:05评论13 views字数 3247阅读10分49秒阅读模式

CVE-2024-34331:Parallels Repack 权限提升

漏洞发现

在使用Parallels 的 Mass Deployment 包时,我针对 2018 Intel Mac mini 和 macOS 虚拟机进行了测试。我在测试期间注意到一件奇怪的事情,即在创建我的 macOS VM 时从未出现过密码提示。

这很奇怪,因为我相当确定 Parallels 在内部使用了 Apple 的权限,这需要 root 权限。经过进一步检查,我通过位于 下的createinstallmedia脚本确认了这一点:repack_osx_install_app.shParallels Desktop.app/Contents/Resources

CVE-2024-34331:Parallels Repack 权限提升

看看这个,没有签名验证!这看起来是一个很容易被利用的漏洞🤔。

但问题仍然存在,Parallels 如何在createinstallmedia没有管理员凭据的情况下以 root 身份运行?

设置 UID 位的魔力

最初我以为 Parallels 安装了某种 XPC 服务来以 root 身份传递命令,但是搜索后我找不到任何与 Parallels 相关的启动服务……

在发现 Reno Robert 的惊人报告《Parallels Desktop 中的 Bash 特权模式漏洞和 macOS 中的 CDPATH 处理》后,我了解到文件可以拥有一种名为“设置 UID 位”的 Unix 技巧。

此 S-Bit 的作用是允许可执行文件将其 UID(用户 ID)更改为文件所有者的 UID。如果文件所有者是 root,那么现在您就可以以 root 身份运行!

# Find all files with S-Bit set/usr/bin/find . -perm -u=

CVE-2024-34331:Parallels Repack 权限提升

  • 请注意,基于 AppKit 的应用程序明确禁止在普通的 macOS 安装上使用此功能,而需要另一个进程来运行它们(例如Parallels Services

  • 参考:Cocoa Dev:不允许使用 setuid/setgid 应用程序

等一下,VMware Fusion 是否也容易受到恶意 createinstallmedia 的攻击?

有趣的事实:令人惊讶的是并非如此!

这是因为他们开发了一个名为Create macOS Installer.toollocated under 的奇怪脚本VMware Fusion.app/Contents/Library/,该脚本会尝试手动创建有效的安装程序并绕过 的createinstallmedia使用。然而,这意味着它无法用于现代 macOS 安装程序。但是,嘿,没有本地特权升级 🎉

仅限 Intel 的 Parallels 漏洞

需要注意的是,此漏洞仅影响 macOS 中基于 x86_64 的主机。这是因为基于 的安装程序与Apple Silicon 上的createinstallmediaApple Virtualization.framework 堆栈不兼容,而是需要IPSW 恢复映像。因此,存在漏洞的代码路径永远不会在 Apple Silicon Mac 上执行。

没有检查 Apple Silicon 支持的 Parallels 版本怎么办?

此特定边缘情况与 Apple Silicon 推出的时间线有关。如果应用程序是在 Apple Silicon 之前发布的,它只会假设 M 系列 Mac 与任何其他 Intel Mac 一样。

查看 Parallels Desktop 15.1.5 (47309) 时,我们发现createinstallmedia实际上并未在 内部调用repack_osx_install_app.sh。相反,它用于hdiutil创建类似于 VMware Fusion 的磁盘映像。只有在 Parallels Desktop 16 中,Parallels 才添加了对createinstallmedia基于 的 VM 的支持,同时检查主机是否可以使用它。从而防止在 Apple Silicon Mac 上触发漏洞。

ParallelsVirtualizationSDK.framework尝试在 Apple Silicon Mac 上使用 

CVE-2024-34331:Parallels Repack 权限提升

概念验证

总体来说相当简单:

  1. 创建一个 macOS 安装程序应用程序,并在其下放置恶意负载Contents/Resources/createinstallmedia

  2. 让 Parallels Desktop 打开所述应用程序并准备安装。

i.prl_client_app获取恶意 macOS 安装程序应用程序

ii.prl_client_app跑步Parallels Service

iii.Parallels Service运行setuid提升权限至 root

iv.Parallels Service运行repack_osx_install_app.sh

v.以 root 身份repack_osx_install_app.sh运行createinstallmedia

CVE-2024-34331:Parallels Repack 权限提升

我已通过 自动执行此过程parallels_exploit.py,它会创建一个通用的 AppleScript 有效负载来演示 root 权限并让 Parallels 加载它。

当我们运行该脚本时,我们就获得了本地权限提升!

CVE-2024-34331:Parallels Repack 权限提升

报告流程

通过 Parallels 的负责任披露系统提交,我们建议 Parallels 在执行之前实施代码签名验证createinstallmedia

  • 请注意,上述网站要求提供有效的许可证或购买证明,这很不幸……

  • 有趣的事实:我的漏洞甚至在注册产品密钥之前就已经起作用了!

CVE-2024-34331:Parallels Repack 权限提升

验证 Parallels 的工作

完全是偶然,我们注意到 Parallels Desktop 19.3.1 已于 2024 年 4 月 30 日的一个早晨发布。我们知道 19.3.0 不包含我们的修复程序,因此很好奇 19.3.1 是否包含。

在检查时repack_osx_install_app.sh,我们注意到了里面的其他逻辑。具体来说,针对二进制文件do_repack_createinstallmedia()的代码签名检查:anchor applecreateinstallmedia

# verify createinstallmedia is Apple-signed/usr/bin/codesign -v -R="anchor apple" "$source_app/Contents/Resources/createinstallmedia"if [ $? -ne 0 ]; then  echo "'$source_app' is not signed."  return $ERR_UNEXPECTEDfi
  • anchor apple用于验证 Apple 签名的二进制文件,例如createinstallmedia

  • 参考:代码签名要求语言

CVE-2024-34331:Parallels Repack 权限提升

现在,当我们parallels_exploit.py再次运行时,它会正确拒绝我们的有效载荷!

  • 这种模糊的错误信息和苹果自己的信息太吻合了……

CVE-2024-34331:Parallels Repack 权限提升

结论

这是一个简单但有趣的漏洞,了解文件上的 Set UID 位也很有趣。将密切关注 S-Bit 以了解未来的漏洞。

不过遗憾的是,Parallels 并没有提供漏洞赏金,尤其是它是自 Apple Silicon 以来 macOS 上最突出的虚拟化解决方案之一。这只会激励研究人员出售漏洞以谋生,而不是负责任地披露漏洞。我确实与 Parallels 讨论过这个问题,但不知道是否会做出任何改变。

除了这些之外,我还强烈建议其他人阅读 Reno Robert 关于 Parallels Exploit 的报告,里面有很多有趣的东西:

  • Parallels Desktop 中的 Bash 特权模式漏洞以及 macOS 中的 CDPATH 处理https://www.zerodayinitiative.com/blog/2023/4/5/bash-privileged-mode-vulnerabilities-in-parallels-desktop-and-cdpath-handling-in-macos

CVE-2024-34331: Parallels Repack Privilege Escalationhttps://khronokernel.com/macos/2024/05/30/CVE-2024-34331.html

原文始发于微信公众号(Ots安全):CVE-2024-34331:Parallels Repack 权限提升

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月4日14:33:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-34331:Parallels Repack 权限提升https://cn-sec.com/archives/2800583.html

发表评论

匿名网友 填写信息