macOS Office Sandbox Bypasses

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

通过启动代理绕过Word沙箱

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

因此,绕过很容易,只需在~/Library/LaunchAgents/~$escape.plist中编写一个plist启动代理。

查看原始报告

通过登录项和zip绕过Word沙箱

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

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

从先前的沙箱绕过中,Microsoft禁用了在~/Library/LaunchAgents中写入文件的选项。但是,发现如果将zip文件作为登录项Archive Utility将只是在当前位置解压缩它。因此,由于默认情况下~/Library中的LaunchAgents文件夹未创建,可以~/Library中压缩一个plist文件LaunchAgents/~$escape.plist,并将zip文件放在**~/Library**中,因此在解压缩时将到达持久性目的地。

查看原始报告

通过登录项和.zshenv绕过Word沙箱

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

然而,先前的技术有一个限制,如果文件夹**~/Library/LaunchAgents**存在,因为其他软件创建了它,它将失败。因此,为此发现了不同的登录项链。

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

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

查看原始报告

使用Open和环境变量绕过Word沙箱

从沙箱化进程仍然可以使用**open**实用程序调用其他进程。此外,这些进程将在其自己的沙箱中运行。

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

查看原始报告

使用Open和stdin绕过Word沙箱

**open实用程序还支持--stdin**参数(在先前的绕过之后,无法再使用--env)。

问题在于,即使**python由Apple签名,它也不会执行带有quarantine**属性的脚本。但是,可以将脚本从stdin传递给它,因此它不会检查它是否被隔离:

  1. 放置一个带有任意Python命令的**~$exploit.py**文件。

  2. 运行_open_ –stdin='~$exploit.py' -a Python,这将使用我们放置的文件作为其标准输入运行Python应用程序。Python愉快地运行我们的代码,并且由于它是_launchd_的子进程,它不受Word沙箱规则的约束。

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

最后更新于