在最近的一次合作中,我们发现Plantronics Hub(与视频会议相关的软件)安装在一系列客户端系统上。它带有自己的以系统权限运行的 Windows 服务,这使其成为寻找潜在权限升级漏洞的有希望的目标。
我们发现了一个允许升级到系统的任意文件删除漏洞和一个允许从非特权用户上下文读取计算机上的任何文件的任意文件读取漏洞。<= 3.25.1 的版本容易受到攻击。
概述
安装软件后,我们看到一个新服务以 SYSTEM 身份运行:
Get-Service PlantronicsUpdateService | Select-Object DisplayName, @{Name="UserName";Expression={(Get-WmiObject -Class Win32_Service -Filter "Name = '$($_.Name)'").StartName}}, @{Name="BinaryPath";Expression={(Get-WmiObject -Class Win32_Service -Filter "Name = '$($_.Name)'").PathName}}
DisplayName UserName BinaryPath
----------- -------- ----------
Plantronics Update Service LocalSystem "C:Program Files (x86)PlantronicsSpokes3GSpokesUpdateService.exe" install
顾名思义,此服务用于在有新版本可用时更新程序。该软件面向用户的部分在低特权用户上下文中运行,当用户单击“检查更新”按钮时,它必须以某种方式与特权服务进行通信。
在这里,这种通信是通过文件系统进行的 – 应用程序的非特权部分将名为“MajorUpgrade.config”的文件放入“C:ProgramDataPlantronicsSpokes3G”中。该文件随后由服务处理并随后删除。通过制作特殊的“MajorUpgrade.config”文件可以实现任意文件读取,同时可以通过利用特权文件删除来升级权限。
任意文件读取
第一个问题出现在该升级文件本身的文件内容上。Markus Krell从 2020 年开始就有一个现有的漏洞,允许运行任意二进制文件作为更新程序,而不是预期的二进制文件:
%username%|advertise|C:WindowsSystem32cmd.exe
这个问题最终得到了解决,服务现在正在检查执行的程序是否由供应商签名并具有特定的产品名称字符串(包含在签名部分中)。然而,这仍然容易受到上述文件读取漏洞的影响,因为指定的更新文件被复制到“C:Program Files (x86)PlantronicsSpokes3GUpdateServiceTemp”,独立于这些检查。
任何经过身份验证的用户都可以读取此目标位置,并且复制的文件也将共享这些权限。这意味着可以复制管理员桌面上的文件,然后从低特权用户上下文中读取该文件。
我们将“MajorUpgrade.config”设置为以下内容:
user|advertise|C:usersadministratordesktopsecret.txt
片刻之后,我们就可以以低权限用户的身份从“UpdateServiceTemp”目录中读取目标文件:
dir "Program Files (x86)PlantronicsSpokes3GUpdateServiceTemp"
Volume in drive C has no label.
Volume Serial Number is F6F0-B8BC
Directory of C:Program Files (x86)PlantronicsSpokes3GUpdateServiceTemp
30/01/2024 08:28 <DIR> .
30/01/2024 08:24 <DIR> ..
30/01/2024 08:27 56 secret.txt
1 File(s) 56 bytes
2 Dir(s) 34.224.492.544 bytes free
任意文件删除到系统
使用 ProcMon 我们可以看到定期检查此更新文件是否存在:
您可以看到以 SYSTEM 身份运行的“SpokesUpdateService.exe”正在尝试打开文件。如果成功,它将读取它,然后使用“SetDispositionInformationEx”将其删除。
之后该文件就会从文件系统中消失。众所周知,像这样的特权文件删除场景是可以利用的,Andrew Oliveau 在他的博客文章“删除进入系统”中演示了这一点。
我们在 Windows Installer 的回滚功能中滥用了竞争条件。在 MSI 安装过程中,以 SYSTEM 身份运行的 Windows Installer 服务将创建“C:Config.Msi”,其中包含一个 .rbs 文件,其中包含有关在发生错误时如何回滚安装的信息。默认情况下不可访问此文件夹 – 但是,我们可以使用对象管理器符号链接将我们的特权文件删除重定向到此文件夹。我们删除“Config.Msi”文件夹,然后使用有利的权限重新创建它。此时,我们可以修改 .rbs 文件,并让 Windows Installer 服务在回滚发生时以 SYSTEM 权限执行我们想要的任何操作 – 这里打开一个新的提升的 cmd 窗口。
可以在此处找到 PoC:CVE-2024-27460
https://github.com/xct/CVE-2024-27460
时间线
-
2024 年 1 月 30 日(已报告)
-
2024 年 5 月 10 日(已修复)
链接
-
https://github.com/xct/CVE-2024-27460
-
https://support.hp.com/us-en/document/ish_9869257-9869285-16/hpsbpy03895
-
https://www.zerodayinitiative.com/blog/2022/3/16/abusing- Arbitration -file-deletes-to- escalate-privilege-and-other-great-tricks
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里
原文始发于微信公众号(Ots安全):CVE-2024-27460 – Plantronics Hub LPE