CVE-2024-27460 HP Plantronics Hub 本地提权及任意文件读取漏洞分析
字数 1389 2025-08-20 18:18:17
HP Plantronics Hub 本地提权及任意文件读取漏洞分析 (CVE-2024-27460)
漏洞概述
HP Plantronics Hub 3.25.1版本存在两个严重漏洞:
- 本地提权漏洞:允许低权限用户提升至SYSTEM权限
- 任意文件读取漏洞:允许低权限用户读取系统上的任意文件
受影响版本
- HP Plantronics Hub 3.25.1
漏洞分析
1. 本地提权漏洞分析
漏洞原理
-
服务行为分析:
- PlantronicsUpdateService服务以SYSTEM权限运行
- 服务会尝试创建并操作
C:\ProgramData\Plantronics\Spokes3G\MajorUpgrade.config文件 - 该目录(
C:\ProgramData\Plantronics\Spokes3G)权限设置不当,普通用户可读写
-
关键操作:
- 服务会强制删除
MajorUpgrade.config文件(使用SetDispositionInformationFile操作) - 攻击者可利用此特性实现任意文件删除
- 服务会强制删除
-
提权路径:
- 利用任意文件删除漏洞干扰Windows Installer服务的回滚机制
- 通过删除并替换
C:\Config.Msi目录中的回滚脚本(.rbs文件)实现权限提升
技术细节
-
Windows Installer回滚机制:
- 安装过程中会创建
C:\Config.Msi目录存储回滚信息 - 包含.rbs(回滚脚本)和.rbf(回滚文件)文件
- 正常情况下有强DACL保护
- 安装过程中会创建
-
漏洞利用步骤:
- 删除
C:\Config.Msi目录 - 以弱权限重新创建该目录
- 等待Windows Installer创建回滚文件
- 替换回滚脚本执行恶意操作
- 删除
利用代码关键部分
// 创建连接点(符号链接)
BOOL CreateJunction(LPCWSTR dir, LPCWSTR target) {
// 实现细节...
}
// 删除连接点
BOOL DeleteJunction(LPCWSTR path) {
// 实现细节...
}
// 创建对象管理器符号链接
BOOL DosDeviceSymLink(LPCWSTR object, LPCWSTR target) {
// 实现细节...
}
// 触发漏洞的核心函数
void Trigger() {
_swprintf(dir, L"C:\\ProgramData\\Plantronics\\Spokes3G");
_swprintf(file, L"%s\\MajorUpgrade.config", dir);
DeleteContentsRecursively(dir);
// 创建目标文件并设置机会锁
hFile2 = CreateFile(file, GENERIC_READ | DELETE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_FLAG_OVERLAPPED, NULL);
oplock = FileOpLock::CreateLock(hFile2, cb0);
oplock->WaitForLock(INFINITE);
}
// 机会锁回调函数
VOID cb0() {
printf("[+] Oplock 1 triggered!\n");
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Fail, NULL, 0, NULL);
// 移动文件并创建符号链接
if (!Move(hFile2)) exit(1);
if (!CreateJunction(BuildPath(dir), L"\\RPC Control")) exit(1);
if (!DosDeviceSymLink(L"GLOBAL\\GLOBALROOT\\RPC Control\\MajorUpgrade.config", L"\\??\\C:\\Config.msi::$INDEX_ALLOCATION")) exit(1);
}
2. 任意文件读取漏洞分析
漏洞原理
-
服务行为:
- 服务会读取
MajorUpgrade.config文件内容 - 将文件内容备份到
C:\Program Files (x86)\Plantronics\Spokes3G\UpdateServiceTemp目录 - 备份操作以SYSTEM权限执行
- 服务会读取
-
利用方法:
- 在
MajorUpgrade.config中指定目标文件路径 - 服务会读取指定文件并创建可被普通用户访问的备份
- 在
利用步骤
- 创建受保护文件(如
111.txt),设置权限禁止普通用户读取 - 在
MajorUpgrade.config中写入:%username%|advertise|C:\Users\root\Downloads\111.txt - 等待服务扫描并备份文件
- 从备份位置读取原本无法访问的文件内容
环境搭建
-
软件下载:
- HP Plantronics Hub 3.25.1 (需自行寻找下载链接)
-
测试环境:
- VMware虚拟机
- Windows 10系统
漏洞修复建议
- 升级到最新版本
- 严格限制
C:\ProgramData\Plantronics\Spokes3G目录权限 - 对服务操作的文件进行严格的路径验证
参考链接
- 原始漏洞分析文章
- Windows Installer服务相关文档
- 符号链接攻击相关研究论文
总结
该漏洞利用链展示了如何将看似简单的文件删除漏洞升级为完整的权限提升漏洞,关键在于:
- 发现服务的不安全文件操作行为
- 结合Windows Installer服务的特性
- 通过符号链接和机会锁精确控制操作时机
- 最终实现从任意文件删除到完整权限提升的转换