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

CVE-2021-47945 Argus DVR未引用服务路径漏洞

披露日期: 2026-05-10

漏洞信息

漏洞编号
CVE-2021-47945
漏洞类型
权限提升
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Argus Surveillance DVR

相关标签

权限提升本地攻击未引用服务路径Argus Surveillance DVRCVE-2021-47945

漏洞概述

Argus Surveillance DVR 4.0中的DVRWatchdog服务存在未引用服务路径漏洞。由于服务路径未使用引号包裹且包含空格,本地攻击者可在特定目录放置恶意可执行文件。当服务启动时,该文件将以LocalSystem权限运行,导致本地权限提升。

技术细节

该漏洞源于Windows系统对未加引号的服务路径的解析机制。在Argus Surveillance DVR 4.0中,DVRWatchdog服务的ImagePath未包含引号,且路径包含空格(如Program Files)。当服务启动时,Windows会尝试在空格处分割路径并执行文件。例如,若路径为C:\Program Files\Argus\service.exe,系统会依次尝试执行C:\Program.exe和C:\Program Files.exe。攻击者若拥有本地低权限,可利用此机制在C盘根目录或Program Files目录下放置名为Program.exe的恶意程序。由于DVRWatchdog服务以LocalSystem权限运行,恶意程序将继承SYSTEM权限,从而完全控制系统。

攻击链分析

STEP 1
侦察
攻击者枚举系统服务,发现DVRWatchdog服务的ImagePath未加引号且路径包含空格。
STEP 2
武器化
攻击者编写恶意可执行文件(如Program.exe),旨在执行提权操作。
STEP 3
投递
攻击者利用低权限账户,将恶意文件放置在服务路径解析的优先位置(如C:\Program.exe)。
STEP 4
利用
等待服务重启或手动触发服务重启(如通过系统重启)。
STEP 5
安装与执行
服务启动时,Windows系统错误加载攻击者的恶意文件,并以LocalSystem权限执行。
STEP 6
达成目标
攻击者成功获取SYSTEM权限,完全控制受害主机。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os import win32service import win32con # Proof of Concept: Check for Unquoted Service Path # This script simulates checking the DVRWatchdog service def check_unquoted_service_path(service_name): try: # In a real scenario, this would query the registry # hkey = win32service.OpenSCManager(None, None, win32service.SC_MANAGER_CONNECT) # service = win32service.OpenService(hkey, service_name, win32service.SERVICE_QUERY_CONFIG) # config = win32service.QueryServiceConfig(service) # Simulated vulnerable path image_path = "C:\\Program Files\\Argus\\DVRWatchdog.exe" if not image_path.startswith('"') and " " in image_path: print(f"[+] Vulnerable Service Found: {service_name}") print(f"[+] Unquoted Path: {image_path}") # Check for write access in the path segments parts = image_path.split('\\') current_path = "" for part in parts[:-1]: current_path += part + "\\" # Check if directory is writable (simplified logic) if os.path.exists(current_path): print(f"[*] Checking write access for: {current_path}") # If writable, an attacker could drop 'Program.exe' here else: print("[-] Service path is quoted or contains no spaces.") except Exception as e: print(f"Error: {e}") if __name__ == "__main__": check_unquoted_service_path("DVRWatchdog")

影响范围

Argus Surveillance DVR 4.0

防御指南

临时缓解措施
临时缓解方案是在Windows注册表编辑器中找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DVRWatchdog,将ImagePath的值修改为包含双引号的完整路径(例如"C:\Program Files\Argus\DVRWatchdog.exe"),然后重启服务。

参考链接

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