macOS Office Sandbox Bypasses

Reading time: 6 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

Word Sandbox bypass via Launch Agents

该应用程序使用 custom Sandbox 和权限 com.apple.security.temporary-exception.sbpl,这个自定义沙箱允许在任何地方写入文件,只要文件名以 ~$ 开头:(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))

因此,逃逸的方式就是 编写一个 plist LaunchAgent 在 ~/Library/LaunchAgents/~$escape.plist 中。

查看 原始报告在这里

Word Sandbox bypass via Login Items and zip

请记住,从第一次逃逸开始,Word 可以写入以 ~$ 开头的任意文件,尽管在之前漏洞的补丁后,无法在 /Library/Application Scripts/Library/LaunchAgents 中写入。

发现从沙箱内可以创建一个 Login Item(用户登录时将执行的应用程序)。然而,这些应用程序 不会执行,除非 它们 经过公证,并且 无法添加参数(因此不能仅使用 bash 运行反向 shell)。

在之前的沙箱绕过中,Microsoft 禁用了在 ~/Library/LaunchAgents 中写入文件的选项。然而,发现如果将 zip 文件作为 Login ItemArchive Utility 将会 解压 到其当前位置。因此,由于默认情况下 ~/Library 中的 LaunchAgents 文件夹未创建,可以 将 plist 压缩到 LaunchAgents/~$escape.plist放置 zip 文件到 ~/Library,这样在解压时将到达持久性目标。

查看 原始报告在这里

Word Sandbox bypass via Login Items and .zshenv

(请记住,从第一次逃逸开始,Word 可以写入以 ~$ 开头的任意文件)。

然而,之前的技术有一个限制,如果 ~/Library/LaunchAgents 文件夹存在,因为其他软件创建了它,则会失败。因此发现了一个不同的 Login Items 链。

攻击者可以创建 .bash_profile.zshenv 文件,包含要执行的有效载荷,然后将它们压缩并 写入受害者 的用户文件夹:~/~$escape.zip

然后,将 zip 文件添加到 Login Items 中,然后是 Terminal 应用程序。当用户重新登录时,zip 文件将被解压到用户文件中,覆盖 .bash_profile.zshenv,因此,终端将执行其中一个文件(取决于使用的是 bash 还是 zsh)。

查看 原始报告在这里

Word Sandbox Bypass with Open and env variables

从沙箱进程中,仍然可以使用 open 工具调用其他进程。此外,这些进程将在 它们自己的沙箱 中运行。

发现 open 工具有 --env 选项,可以使用 特定环境 变量运行应用程序。因此,可以在 沙箱内 的文件夹中创建 .zshenv 文件,并使用 open--envHOME 变量 设置为该文件夹,打开 Terminal 应用程序,这将执行 .zshenv 文件(出于某种原因,还需要设置变量 __OSINSTALL_ENVIROMENT)。

查看 原始报告在这里

Word Sandbox Bypass with Open and stdin

open 工具还支持 --stdin 参数(在之前的绕过后,无法再使用 --env)。

问题是,即使 python 是由 Apple 签名的,它 不会执行 带有 quarantine 属性的脚本。然而,可以从 stdin 传递一个脚本,这样它就不会检查是否被隔离:

  1. 放置一个 ~$exploit.py 文件,包含任意 Python 命令。
  2. 运行 open –stdin='~$exploit.py' -a Python,这将使用我们放置的文件作为标准输入运行 Python 应用程序。Python 高兴地运行我们的代码,并且由于它是 launchd 的子进程,因此不受 Word 沙箱规则的限制。

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks