CVE-2021-1675
前言
CVE-2021-1675 是微软 Windows 打印服务(Print Spooler) 中的一个本地权限提升(LPE)漏洞,属于“PrintNightmare”漏洞家族的一部分(与 CVE-2021-34527 同源)。该漏洞于 2021 年 6 月被公开,影响多个 Windows 版本(包括 Windows 7 至 Windows 10 及服务器系统),允许普通用户通过恶意操作将权限提升至系统(SYSTEM)级别。
一、漏洞原理
Print Spooler 是 Windows 系统中负责管理打印任务的核心服务,默认随系统启动并具有高权限(SYSTEM 权限)。CVE-2021-1675 的漏洞核心在于 Print Spooler 服务对打印驱动程序的加载逻辑存在缺陷,具体表现为:
①权限验证缺失:Print Spooler 服务在加载打印驱动程序时,未正确验证驱动文件的权限或路径,允许普通用户将恶意驱动文件放置到系统目录(如
C:\Windows\System32\spool\drivers
)中。②符号链接(Symlink)攻击:攻击者可利用 Windows 的符号链接功能,将恶意文件链接到系统目录的合法位置,当 Print Spooler 服务加载驱动时,实际执行的是攻击者控制的恶意代码。
③权限提升路径:由于 Print Spooler 服务以 SYSTEM 权限运行,恶意驱动被加载后,攻击者可获得与该服务同级的权限(SYSTEM),从而完全控制系统。
二、利用方式
CVE-2021-1675 的利用需要攻击者已在目标系统上拥有普通用户权限(如本地用户或通过其他漏洞获取的有限权限),通过以下步骤完成权限提升:
- 构造恶意打印驱动:攻击者生成一个恶意的打印驱动文件(如
.inf
或.dll
),其中包含用于执行系统命令或加载恶意代码的逻辑。- 绕过权限验证:利用 Print Spooler 服务对驱动文件路径的验证缺陷,将恶意驱动文件复制到系统打印驱动目录(如
C:\Windows\System32\spool\drivers\x64\3
)。- 触发服务加载:通过调用 Windows API(如
AddPrinterDriver
)或命令行工具(如printui.exe
)强制 Print Spooler 服务加载恶意驱动。- 执行恶意代码:Print Spooler 服务以 SYSTEM 权限加载驱动时,执行攻击者注入的代码(如创建新用户、修改注册表、下载恶意软件等)。
- 完成权限提升:攻击者获得 SYSTEM 权限,可进一步执行任意操作(如横向渗透、安装后门等)。
三、防御措施
1. 安装官方安全补丁
微软已于 2021 年 6 月发布安全更新(如 KB5004945 等),覆盖 Windows 7、8.1、10 及 Windows Server 2008/2012/2016/2019/2022 版本。用户需尽快通过 Windows Update 安装补丁,修复 Print Spooler 服务的权限验证缺陷。
2. 禁用 Print Spooler 服务(推荐)
若无需打印功能,最直接的防御是禁用 Print Spooler 服务,彻底消除漏洞利用路径:
命令行禁用:以管理员权限打开命令提示符(CMD),执行以下命令:
sc stop spooler # 停止服务 sc config spooler start= disabled # 禁用开机启动
组策略禁用:通过
gpedit.msc
进入“计算机配置→管理模板→打印机”,启用“不允许使用打印服务器”策略。3. 限制打印驱动安装权限
若需保留打印功能,可通过组策略限制普通用户安装打印驱动的权限:
进入
gpedit.msc
,导航至“计算机配置→Windows 设置→安全设置→本地策略→用户权限分配”,找到“加载和卸载设备驱动程序”策略,删除普通用户组(如 Users)。4. 启用安全工具检测
终端检测与响应(EDR):部署 EDR 工具(如 Microsoft Defender for Endpoint、CrowdStrike),监控 Print Spooler 服务的异常行为(如非授权驱动加载、SYSTEM 权限进程执行可疑命令)。
漏洞扫描:使用 Nessus、OpenVAS 等工具定期扫描系统,确认 CVE-2021-1675 补丁已安装。
5. 最小权限原则与网络隔离
用户权限控制:为普通用户分配最小权限,避免其拥有对系统目录(如
C:\Windows\System32\spool
)的写权限。网络分段:若为域环境,将打印服务器与关键业务服务器分段,限制横向渗透路径。
6. 监控与日志分析
日志审计:启用 Windows 事件日志(如
Microsoft-Windows-PrintService/Operational
),监控 Print Spooler 服务的驱动加载事件(事件 ID 316),识别异常驱动安装行为。异常行为检测:关注 SYSTEM 权限进程(如
spoolsv.exe
)的异常子进程(如非系统路径的.exe
或.dll
加载)。
总结
CVE-2021-1675 是典型的“本地权限提升”漏洞,依赖 Print Spooler 服务对打印驱动的权限验证缺陷。防御关键在于及时更新补丁、禁用非必要服务(Print Spooler)及严格限制驱动安装权限。企业需结合“补丁管理+服务硬化+终端检测”构建纵深防御体系,降低漏洞利用风险。
结语
清风和自由
偏爱与温柔
!!!