- 此概念验证代码是出于教育目的而发布的。
- 它应该鼓励其他人发现类似的漏洞,负责任地报告并修复它们。
- 2023 年 5 月 23 日,Apple 发布了该漏洞的修复程序。
- 我们鼓励您将 iTunes 更新到最新版本(至少 12.12.9)。
- 我没有找到这个 CVE,我只是做了这个 PoC。阅读“学分”部分。
- 我和这个 repo 都不隶属于 Apple。
- 此 PoC(概念验证)的适用性有限。您可以在问答部分阅读更多相关信息。
长话短说
音乐播放器 Apple iTunes 的 MSI 安装程序包含一个漏洞,允许 Microsoft Windows 计算机上的普通低权限用户在 NT AUTHORITY/SYSTEM 的上下文中获得提升的权限。此存储库包含一个概念证明 (PoC) 以展示如何利用此漏洞,并为希望了解有关此类漏洞的更多信息的安全研究人员和开发人员提供了更多信息。但是,正如您在问答部分中所读到的那样,它的适用性是有限的。
学分
- 来自 Synposys 的 Zeeshan Shaikh 发现了 CVE-2023-32353 并发布了一篇关于它的帖子。此 repo 仅包含详细的概念证明,而不仅仅是存在此漏洞的信息。
- 此 repo 的“CommonUtils”文件夹在许可下使用,您可以在该文件夹中的 LICENSE.txt 中阅读许可。
- 查找最新“amd64_microsoft.windows.common-controls...”文件夹的代码改编自binderlabs/DirCreate2System中的原始代码。
如何运行 PoC
- 安装 12.12.9 之前的 iTunes(例如 12.12.4.1)
- 在 Visual Studio 2019 中打开 .sln 文件。
- 使用“Release x64”配置构建项目。
- 打开./x64/Release/目录
- 将您选择的 DLL 放在该目录中,名称为“comctl32.dll”。(您可以使用与binderlabs/DirCreate2System中使用的类似的一个,只需将“spawn.dll”重命名为“comctl32.dll” - 我不对该回购的内容负责。一如既往,小心并构建你自己的DLL!)
- 从该目录运行 Privilege-Escalation-using-Music-Player.exe
- 当 MSI 安装程序询问您是否要立即重新启动时,选择“否”
- 现在你应该得到一个 SYSTEM shell(如果没有,请阅读问答)
问答
我没有得到 SYSTEM shell。我做错了什么?
由于这是概念验证,因此没有太多关于不可检测的想法。要使用它,您应该在发布“版本 10.0.19041.572”之前运行 Windows 10 家庭版安装,因为在该版本中,此漏洞已得到修补。我使用 Windows 10 1909 进行了测试。此外,您应该导航到“Windows 安全”并禁用与 Microsoft Defender/Windows Defender 相关的所有内容,因为它们似乎阻止了使用实时保护创建到 RPC Control 的符号链接(它被打开每次重新启动时自动打开,记住这一点!)
我现在应该害怕使用 iTunes 吗?
不,只要更新到最新版本的 iTunes 就可以了。
我可以在不需要自己构建的情况下运行 PoC 吗?
虽然我强烈建议大家不要从 Internet 运行任何 .exe 文件,但从虚拟机的 ./x64/Release/ 目录运行 Privilege-Escalation-using-Music-Player.exe 应该可以。如果没有,您应该尝试从Microsoft 提供的链接安装最新的 VC 可再发行组件。
详细了解此 PoC 中使用的技术
“ Windows 上的特权文件操作滥用简介”,作者:Almond
https://offsec.almond.consulting/intro-to-file-operation-abuse-on-Windows.html
“ bugzzzhunter/文件夹删除到系统外壳”
https://github.com/bugzzzhunter/Folder-Deletion-to-System-Shell
“ binderlabs/DirCreate2System ”
https://github.com/binderlabs/DirCreate2System
手动复现步骤:
- 由于这是概念验证,请关闭 Windows Defender/Microsoft Defender(另请阅读问答部分)
- 安装 12.12.9 之前的 iTunes(例如 12.12.4.1)
- 删除C:ProgramDataApple ComputeriTunes的所有内容,但保留iTunes文件夹本身
- 创建一个从“C:ProgramDataApple ComputeriTunes”到“RPC Control”的挂载点,例如使用 James Forshaw 的symboliclink-testing-tools:
- CreateMountPoint.exe "C:ProgramDataApple ComputeriTunes" "RPC Control"
- 创建一个从“RPC ControlSC Info”到“??c:windowssystem32wermgr.exe.local”的符号链接
- CreateDosDeviceSymlink.exe "RPC ControlSC Info" "??c:windowssystem32wermgr.exe.local"
- 使用 iTunes MSI/iTunes 安装程序 EXE,“修复”您的 iTunes 安装
- 导航到 c:windowssystem32wermgr.exe.local
- 创建子文件夹“amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.418_none_e6c6b287130d565d”(这在您的系统上可能有所不同,请使用 C:WindowsWinSxS 中以“amd64_microsoft.windows.common-controls_”开头的最新文件夹目录)
- 将名为“comctl32.dll”的 DLL 文件放入 amd64_microsoft.windows.common-controls_* 文件夹中
- 运行此命令:
schtasks.exe /Run /TN "MicrosoftWindowsWindows 错误报告QueueReporting"
- 您在 comctl32.dll 文件中指定的操作现在将在 NT AUTHORITY/SYSTEM 的上下文中执行,例如打开一个 cmd 窗口
项目地址:https://github.com/86x/CVE-2023-32353-PoC
原文始发于微信公众号(Ots安全):CVE-2023-32353 的概念验证代码:在 Windows 中通过 iTunes 进行本地权限提升
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论