加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 安全 > 正文

CVE-2022-22583和CVE-2022-32800技术解析 你明白了吗

发布时间:2023-09-04 11:24:06 所属栏目:安全 来源:
导读:我们会在本文详细介绍如何使用不同的方法利用CVE-2022-22583的技术细节。我们还在本报告中讨论了CVE-2022-32800的技术细节。苹果公司修复了PackageKit框架中的系统完整性保护(SIP)绕过漏洞,该漏洞被识别为CVE-2022-

我们会在本文详细介绍如何使用不同的方法利用CVE-2022-22583的技术细节。我们还在本报告中讨论了CVE-2022-32800的技术细节。

苹果公司修复了PackageKit框架中的系统完整性保护(SIP)绕过漏洞,该漏洞被识别为CVE-2022-22583。

我们通过进程监控发现了这个漏洞。当我们将apple签名的软件安装包(PKG)文件安装到root volume时,我们注意到以下脚本是由特权“system_install”服务生成的:

因为“system_installd”服务具有特殊的“com.apple.rootless.install.heritable”权限,所以这两个脚本将在SIP绕过上下文中执行。

在看到这两个脚本位于“/tmp/PKInstallSandbox.l57ygT”目录后,我想到了以下问题:

我们可以修改临时位置内的脚本吗?

谁创建了带有随机后缀的临时文件夹“PKInstallSandbox”?

新创建的文件夹是否受SIP保护?

在这些问题的启发下,我们开始了调查。

通过反转和调试,我们发现临时文件夹是由" -[PKInstallSandbox prepareForCommitReturningError:] "函数创建的:

“prepareForCommitXXX”函数的实现

在第16行,它调用另一个函数“-[PKInstallSandbox _createDirectory:uniquifying:error:]”,该函数在内部调用API“mkdtemp”来不受任何限制地创建文件夹。

“_createDirectory:uniquifying:”函数的实现

在看到“PKInstallSandbox.XXXXXXX”文件夹未受保护后,我们最初认为它可以被利用和操纵。然而,我们未能直接修改文件夹中的脚本。这是因为子文件夹“Scripts”受到限制,它从受限制的沙盒路径中移动,如上第25行所示。

至少有两种不同的方法来克服这个特殊的挑战并利用这个安全漏洞。

漏洞1:使用挂载技巧

第一个漏洞使用挂载技巧。Perception Point在其文章中对此进行了详细讨论。根据调查,挂载技巧可以通过以下步骤完成:

创建虚拟映像文件并将其装载到“/private/tmp”上;

使用安装后脚本安装Apple签名的软件包;

等待安装程序完成脚本目录的提取,并收集提取路径的随机部分;

卸载映像文件,这将恢复到提取前的“/private/tmp”内容;

创建脚本目录(使用我们之前获得的随机路径),并将我们想要的任何脚本放入其中。

Perception Point的文章还指出,这里讨论的漏洞取决于时间,可能不会一直成功。

漏洞2:使用符号链接

我们的漏洞使用了另一种方法:符号链接。此漏洞可通过以下步骤实现:

监视“/tmp/PKInstallSandbox.XXXXXXX”目录的创建,并将其替换为指向另一个“/tmp/fakebox”位置的符号链接,以将受限制的脚本重定向到那里;

一旦脚本位于“/tmp/fakebox”中,请删除符号链接并重新创建相同的“/tmp/PKInstallSandbox.XXXXXXX”目录,然后将有效负载脚本放在“/tmp/pKInstallSandox.XXXXXXX/scripts/pkgid.XXXXXX/”目录中;

等待有效负载脚本执行;

此漏洞的完整概念证明已上传到了GitHub上。

即使我们是root用户,也无法在受限目录“/Library/Apple”中创建文件,因为SIP状态已启用。但是在利用程序的帮助下,我们可以在SIP绕过上下文中执行任意命令,并在受限目录中成功创建文件。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章