微软7号发布PrintNightmare补丁安全漏洞,PrintNightmare漏洞的CVE编号为CVE-2021-1675和CVE-2021-34527。这是Windows微软将打印假脱机程序中的一个严重漏洞评为关键漏洞。Microsoft在发布补丁之前,公共领域已经泄露了漏洞代码。微软建议系统管理员在补丁使用前禁止使用Print Spooler服务。当Windows Print Spooler当服务错误地执行特权文件时,远程代码执行的漏洞就会出现。Windows Print Spooler 服务在Windows微软必须默认操作 Windows Server 2019、Windows Server 2012 R2、Windows Server 2008、Windows 8.1、Windows RT 8.1 以及 Windows 10 各种支持版本发布补丁。
微软表示:
- 20217月6日及之后发布的安全更新包括对Windows Print Spooler服务中名为PrintNightmare远程代码保护漏洞,记录在CVE-2021-34527以及CVE-2021-1675中。建议用户立即安装这些更新。
这个漏洞是微软近年来面临的一个严重问题,因为微软甚至更严重Windows 7也发布了补丁,早在2020年1月14日,微软就终止了对的Windows 7技术支持。漏洞虽然发布了,但是PrintNightmare由于某些版本,漏洞的影响尚未完全结束Windows补丁尚未发布。据了解,Windows 10版本1607、Windows Server 2016和Windows Server 2012年更新不可用。Windows最近可能会发布版本的安全更新。
CVE-2021-1675和CVE-2021-34527(也称为PrintNightmare)的技术分析
拥有普通用户账户的攻击者可以利用这两个漏洞来控制运行Windows Print Spooler易受攻击的服务器或客户端机器。所有服务Windows默认启用客户机和服务器(包括域控制器)。
HEUR:Exploit.Win32.CVE-2021-1675.*
HEUR:Exploit.Win32.CVE-2021-34527.*
HEUR:Exploit.MSIL.CVE-2021-34527.*
HEUR:Exploit.Script.CVE-2021-34527.*
HEUR:Trojan-Dropper.Win32.Pegazus.gen
PDM:Exploit.Win32.Generic
PDM:Trojan.Win32.Generic
Exploit.Win32.CVE-2021-1675.*
Exploit.Win64.CVE-2021-1675.*
卡巴斯基Mimikatz 框架 v. 2.2.0-20210707 攻击技术。
目前,卡巴斯基正在密切监控这些情况,并利用行为检测和漏洞利用保护组件改进这些漏洞的一般检测。卡巴斯基 作为托管检测和响应服务的一部分SOC 专家可以检测和调查这些漏洞的利用情况,并向客户报告。
CVE-2021-34527
当使用 RPC 协议添加新打印机(RpcAsyncAddPrinterDriver [MS-PAR] 或 RpcAddPrinterDriverEx [MS-RPRN])客户端必须向 Print Spooler 服务提供多个参数:
pDataFile——该打印机数据文件的路径;
pConfigFile—— 本打印机配置文件的路径;
pDriverPath——本打印机工作时使用的驱动程序文件路径;
多次检查服务,确保 pDataFile 和 pDriverPath 不是 UNC 路径,但没有 pConfigFile 进行相应的检查,这意味着该服务将配置 DLL 把它复制到文件夹SYSTEMROOT%\system32\spool\drivers\x64\3\ (在 x64 操作系统版本)。
现在,如果 Windows Print Spooler 服务尝试再次添加打印机,但这次会 pDataFile 设置为复制 DLL 路径(从上一步)将加载打印服务DLL,因为它的路径不是 UNC 路径,检查将成功通过。这些方法可用于低权限账户, DLL 由 NT AUTHORITY\SYSTEM 组进程加载。
CVE-2021-1675
PrintNightmare使用 的本地版本CVE-2021-34527 使用漏洞的方法相同,但入口点函数(AddPrinterDriverEx)不同意味着攻击者可以恶意 DLL 放在任何本地可访问的目录中以运行漏洞利用。
缓解措施
卡巴斯基专家预计,越来越多的黑客攻击将试图获得公司的内部资源,并且存在感染勒索软件和窃取数据的高风险。
因此,强烈建议你遵循微软的指导方针,应用最新的Windows安全更新。

尽管漏洞已经发布,但是PrintNightmare漏洞的影响尚未完全结束,PrintNightmare是Windows打印假脱机程序中的一个漏洞是由AddPrinterDriverEx()、RpcAddPrinterDriver()和RpcAsyncAddPrinterDriver()安装本地或远程打印机驱动程序Windows API函数中缺少ACL检查引起的(访问控制列表)。
这些函数可以通过不同的函数使用Windows API 使用如下:
AddPrinterDriverEx (SDK)
RpcAddPrinterDriver (MS-RPRN)
RpcAsyncAddPrinterDriver (MS-PAR)
使用 PrintNightmare,恶意 DLL 安装到 C:\Windows\System32\spool\drivers 文件夹中加载漏洞作为打印驱动程序,实现远程代码执行或本地权限升级。
当测试允许安装文件时SYSTEM在权限文件夹中,API将用户提供的参数作为权限检查的一部分。
这与文件夹有关ACL没关系,是软件SDK内部检查可以通过API为函数提供额外的参数。
攻击者可以通过 使用这个漏洞RPC 或 LRPC 直接向当地服务发送请求。虽然微软 OOB 补丁专注于防止远程利用漏洞,但 Hickey 说他们没有解决底层 ACL 检查问题,允许使用修改后的漏洞。微软最近发布的补丁专注于解决 RCE 漏洞利用向量似乎解决了常见的 PoC,但也可以通过 LRPC 和本地 API 这取决于主机和环境。补丁似乎没有正确解决 ACL 检查中的潜在问题允许在完全修复的主机上使用 LPE。
另外,更新发布后,CERT/CC 漏洞分析师 Will Dormann 警告说,补丁似乎只解决了 PrintNightmare 远程代码执行(通过 SMB 和 RPC 的 RCE)变体而不是本地提权(LPE)变体允许攻击者滥用后者获得易受攻击系统 SYSTEM 权限。
现在,更新补丁的进一步测试表明,漏洞的使用可以完全绕过补救措施,从而获得当地权限升级和远程代码执行。然而,为了实现这一点,必须使用它“Point and Print限制”的 Windows 策略(计算机配置\策略\管理模板\打印机:Point and Print限制),该策略可能用于安装恶意打印机驱动程序。请注意,针对 CVE-2021-34527 的 Microsoft 更新不能有效防止 Point and Print NoWarningNoElevationOnInstall 设置为 1 系统的使用。就微软而言,它在其公告中解释说,Point and Print 与此漏洞没有直接关系,但该技术削弱了本地安全态势,从而使漏洞利用成为可能。
虽然 Microsoft 建议停止和禁止 Print Spooler 服务的核心选项,但另一种解决方案是启用Point and Print安全提示,通过配置“RestrictDriverInstallationToAdministrators”将打印机驱动程序的安装权限限驱动程序,防止普通用户在打印服务器上安装打印机驱动程序。
如何安装这些带外安全更新的详细步骤,请参阅以下链接的支持文件:
Windows 10,版本21H1 (KB5004945)
Windows 10,版本20H1 (KB5004945)
Windows 10,版本2004 (KB5004945)
Windows 10 1909版本(KB5004946)
Windows 10,版本1809和Windows Server 2019 (KB5004947)
Windows 10,版本1803 (KB5004949)
Windows 10,版本1607和Windows Server 2016 (KB5004948)
Windows 10,版本1507 (KB5004950)
Windows Server 2012 (Monthly Rollup KB5004956 / Security only KB5004960)
Windows 8.1和Windows Server 2012 R2 (Monthly Rollup KB5004954 / Security only KB5004958)
Windows 7 SP1、Windows Server 2008 R2 SP1 (Monthly Rollup KB5004953 / Security only KB5004951)
Windows Server 2008 SP2 (Monthly Rollup KB5004955 / Security only KB5004959)
除了立即在所有受支持的 Windows此更新安装在客户端和服务器操作系统上,您也可以选择配置 RestrictDriverInstallationToAdministrators 注册表设置,以防止非管理员在打印服务器上安装已签名的打印机驱动程序。有关详细信息,请参阅 KB5005010。
根据 Mimikatz 的创建者 Benjamin Delpy 说法,当启用时Point and Print远程代码执行可以绕过补丁进行策略。
要绕过 PrintNightmare 补丁并实现 RCE 和 LPE,名称必须启用“Point and Print限制”的 Windows 战略,并将“安装新连接的驱动程序”设置配置为“提示时不显示警告”。

Point and Print限制政策
该策略位于计算机配置 > 管理模板 > 打印机 > Point and Print限制下。
启用后,“NoWarningNoElevationOnInstall”值将在 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint 项下设置为 1。
Benjamin Delpy 仍然建议管理员和用户暂时禁止 Print Spooler 为了保护他们的 服务Windows 服务器和工作站,直到新补丁发布。0patch 还为 PrintNightmare 发布免费微补丁https://www.bleepingcomputer.com/news/security/actively-exploited-printnightmare-zero-day-gets-unofficial-patch到目前为止,所有的尝试都可以阻止使用这个漏洞。
但是,Benjamin Delpy警告不要安装微软 7 6 日补丁,因为它不仅不能防止漏洞,还会修改“localspl.dll”因此 文件0Patch 补丁不再有效。
建议 Windows 用户和管理员执行以下操作之一:
1.在微软发布工作补丁之前,不要安装 7月 6 日的补丁,而是安装 0Patch 微补丁。
2.使用此处后台处理程序。
微软表示,如果调查显示他们的补丁有问题,他们将采取适当措施保护客户。
本文翻译自:https://www.bleepingcomputer.com/news/microsoft/microsofts-incomplete-printnightmare-patch-fails-to-fix-vulnerability/如果转载,请注明原始地址。