【0-day】通过 iTunes 入侵 Windows - 本地权限提升

admin 2024年10月7日18:09:07评论14 views字数 4053阅读13分30秒阅读模式

【0-day】通过 iTunes 入侵 Windows - 本地权限提升

CVE-2024-44193 简介

这是有关 CVE-2024–44193 的一篇文章,它是 iTunes 版本 12.13.2.3 中的本地权限提升漏洞。

Apple 已于 2024 年 9 月 12 日修复此漏洞。Apple 安全公告链接:Apple 安全公告

iTunes 版本 12.13.2.3 安装了 Apple 设备发现服务:C:Program FilesCommon FilesAppleMobile Device SupportAppleMobileDeviceService.exe该服务容易受到本地权限提升漏洞的攻击。

总结

出于对那些不关心另一篇写得不好而且可能太长的文章的人的尊重和理解,这里是简短版本:

此漏洞是由于C:ProgramDataApple*路径中用户权限管理不善而导致的。这允许本地组“用户”的成员在该路径中写入任意文件。当服务AppleMobileDeviceService.exe重新启动时(可由非特权用户触发),可以启用任意文件夹/文件删除原语,从而以 SYSTEM 权限在系统上执行任意代码。

实际写作

存在漏洞的服务介绍AppleMobileDeviceService.exe

安装 iTunes 后,它还会安装一个AppleMobileDeviceService.exe以 SYSTEM 权限运行的服务:。当我使用 Windows Sysinternals Process Monitor (Procmon) 调查该服务时,我立即发现了一些令人担忧的行为。

该服务将递归遍历 C:ProgramDataAppleLockdown*路径内的所有文件,并删除所有不属于该路径的文件夹和文件。

对于本地测试,我使用 ProcessHacker2 强制重启服务以检查程序行为。观察到的行为是,以 SYSTEM 身份运行的服务将查询目录及其中的所有子目录,然后它将运行启用选项CreateFile的操作,Delete On Close这意味着 SYSTEM 服务将查询 C:ProgramDataAppleLockdown*路径并递归查询该目录中的子文件夹和文件并删除它们。

【0-day】通过 iTunes 入侵 Windows - 本地权限提升

路径中存在问题的用户权限:C:ProgramDataApple*

Windows Sysinternals https://learn.microsoft.com/en-us/sysinternals/ accesschk64.exe 可用于检查特定文件夹的访问权限。本地组“用户”的成员在C:ProgramDataAppleLockdown文件夹中拥有写入权限,这使得低权限用户能够写入文件夹中的任意文件。

【0-day】通过 iTunes 入侵 Windows - 本地权限提升

任意文件/文件夹删除原语

因为我们可以在 Lockdown 路径中写入任意文件,并且 SYSTEM 进程会在服务重新启动时删除这些文件,所以可以创建任意文件/文件夹删除原语。为了说明这一点,我在 Lockdown 文件夹中创建了两个子文件夹。子文件夹 a 和子文件夹 a 内的子文件夹 b。如下所示:C:ProgramDataAppleLockdownab  

在子文件夹中a有一个名为的文本文件aa.txt,在子文件夹中b有一个名为的文本文件bb.txt

C:ProgramDataAppleLockdownaaa.txt

C:ProgramDataAppleLockdownabbb.txt
【0-day】通过 iTunes 入侵 Windows - 本地权限提升

从上面的截图可以看出,“CreateFile”操作正在运行,并使用“关闭时删除”选项删除 aa.txt。

CreateFile当 SYSTEM 进程对文件运行操作aa.txt并bb.txt使用选项时, Delete On CloseSYSTEM 进程AppleMobileDeviceService.exe将删除文件。现在我们可以在 Lockdown 文件夹中创建任意文件,然后删除它们,这引出了下一个巧妙的技巧。

NTFS 连接

在 Windows 中,可以使用 NTFS 连接将文件夹定向到其他位置。在某种程度上,这类似于 Linux 中的符号链接。为了说明这一点,可以在文件 C:ProgramDataAppleLockdown夹中创建指向桌面上文件夹的 NTFS 连接(符号链接)。您可以使用 PowerShell 自行实现此操作New-Item -Type Junction -Path whatever -Target "C:UsersuserDesktopAAyes",或者只需使用 ZDI 提供的工具集:

文件系统EoP:https://github.com/thezdi/PoC/tree/main/FilesystemEoPs

运行以下命令将 Lockdown 文件夹内的 NTFS 连接指向桌面上的“目标”。

.FolderContentsDeleteToFolderDelete.exe /target "C:UsersuserDesktopAAyes" /initial "C:ProgramDataAppleLockdown"

当服务重新启动时,新创建的 NTFS 连接将指向AAyes位于桌面上。由于服务CreateFile以 SYSTEM 权限运行操作,Delete On Close因此文件将被删除。由于操作以 SYSTEM 权限运行,因此我们拥有任意文件夹或文件删除原语,这意味着我们可以以 SYSTEM 权限在主机上执行代码。

【0-day】通过 iTunes 入侵 Windows - 本地权限提升

笔记:

由于文件名/文件夹名称限制,必须在 FolderContentsDeleteToFolderDelete 项目中进行某些源代码编辑。文件名/文件夹名称必须非常短才能进行删除。其背后的原因尚不清楚,而且尚未调查,因为短名称可以可靠地解决问题。

FolderContentsDeleteToFolderDelete 源代码编辑:

const wchar_t folder2path[] = L"C:\d";
const wchar_t exploitFileName[] = L"e.txt";

// It was required to shorten the two consstants: “folder2path” and “exploitFileName”
// They where changed to: L"C:\d" and L"e.txt" because it seemed that file and folder name length had a meaningful impact on exploit functionality.

[...]

// We also needed to edit the “folder1path” value to L”c” in order to shorten it.
folder1path += L"c";

EXP

由于该服务将递归跟踪任何连接点(符号链接),因此,论点是,可以使用易受攻击的 Apple 服务(将跟踪 NTFS 连接点)以 SYSTEM 身份任意删除系统上的文件。由于易受攻击的服务方便地允许非特权用户使用 Windows GUI 使用(“应用程序 -> 已安装的应用程序 -> Apple Mobile Device Support -> 修改 -> 修复”)技巧重新启动服务,因此可以随意触发漏洞。服务重新启动后,它将跟踪 NTFS 连接点,并且确定的程序行为指示服务将删除用户选择指向的文件或文件夹。

换句话说,用户决定服务将删除哪些文件或文件夹。由于它以 SYSTEM 身份运行,因此我们可以删除系统上的几乎任何文件(不需要 TrustedInstaller 权限的文件)。

这意味着我们可以精心设计一系列事件来执行以下操作:

  1. 准备 oplock,以便在方便的时候停止进程,以便我们准备利用步骤

  2. 重启服务,oplock 被触发,进程停止

  3. 使用 FolderOrFileDeleteToSystem.exe 准备我们的 MSI 回滚技巧

  4. 准备我们的 NTFS 连接,将文件删除原语指向 Config.MSI,由 MSI 回滚技巧步骤使用 FolderContentsDeleteToFolderDelete.exe 准备

  5. 释放 oplock

概念验证

概念验证包括 5 个步骤。

1.在 C:ProgramDataAppleLockdown 上设置 Oplock

.SetOpLock.exe C:ProgramDataAppleLockdown

【0-day】通过 iTunes 入侵 Windows - 本地权限提升

2.触发服务重启应用程序->已安装的应用程序->Apple Mobile Device Support->修改->修复

3.准备 MSI 回滚技巧

.FolderOrFileDeleteToSystem.exe

4.准备 Windows Junction(符号链接)步骤,将服务任意文件夹/文件删除原语指向 MSI 安装程序

.FolderContentsDeleteToFolderDelete.exe /target 'C:Config.Msi' /initial "C:ProgramDataAppleLockdown"

5.释放 Oplock

当 Oplock 在第五步中被释放时,我们监视 FolderContentsDeleteToFolderDelete 进程以验证是否遵循了 NTFS 连接,以及位于 C: 中的 Config.MSI 是否被正确删除。然后,我们监视 FolderOrFileDeletionToSystem.exe 进程以验证我们是否赢得了竞争条件,以及是否写入了带有修改后的回滚脚本的“恶意”Config.MSI 文件夹。如果一切顺利,我们可以按 CTRL+ALT+DELETE,打开右下角的辅助功能菜单并打开屏幕键盘。由于我们已经使用恶意回滚脚本覆盖了 C:Program FilesCommon Filesmicrosoft sharedinkHID.DLL 中的 HID.DLL,因此 CMD shell 将以 SYSTEM 身份弹出,完成我们的漏洞利用。

【0-day】通过 iTunes 入侵 Windows - 本地权限提升

执行和监视 FolderContentsDeleteToFolderDelete.exe

【0-day】通过 iTunes 入侵 Windows - 本地权限提升

执行和监视 FolderOrFileDeleteToSystem.exe

【0-day】通过 iTunes 入侵 Windows - 本地权限提升

弹出 SYSTEM shell

项目地址:

https://github.com/crisprss/CVE-2024-44193

原文始发于微信公众号(Ots安全):【0-day】通过 iTunes 入侵 Windows - 本地权限提升

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月7日18:09:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【0-day】通过 iTunes 入侵 Windows - 本地权限提升http://cn-sec.com/archives/3237636.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息