如何缓解Microsoft Print Spooler漏洞 PrintNightmare

本周,PrintNightmare – Microsoft 的打印后台处理程序漏洞 (CVE-2021-34527) 从“低”严重程度升级为“严重”严重程度。

这是由于在 GitHub 上发布的概念证明,攻击者可能会利用它来获得对域控制器的访问权限。

正如我们之前报道的那样,微软已经在 2021 年 6 月发布了一个补丁,但这还不足以阻止漏洞利用。远程连接时,攻击者仍然可以使用 Print Spooler。您可以在本文中找到有关此漏洞的所有信息以及如何缓解它(您可以)。

Print Spooler 简而言之: Print Spooler 是 Microsoft 用于管理和监控文件打印的服务。这项服务是微软最古老的服务之一,自发布以来,维护更新最少。

默认情况下,每台 Microsoft 机器(服务器和端点)都启用了此功能。

PrintNightmare 漏洞:一旦攻击者获得对网络的有限用户访问权限,他就能够(直接或远程)连接到 Print Spooler。由于 Print Spooler 可以直接访问内核,攻击者可以使用它来访问操作系统,以系统权限运行远程代码,并最终攻击域控制器。

缓解 PrintNightmare 漏洞的最佳选择是禁用每台服务器和/或敏感工作站(例如管理员工作站、直接面向 Internet 的工作站和非打印工作站)上的打印后台处理程序。

这就是CalCom Software Solutions 的强化专家和 CTO Dvir Goren建议的,作为您迈向缓解的第一步。

按照以下步骤在 Windows 10 上禁用 Print Spooler 服务:

  1. 打开开始。
  2. 搜索 PowerShell,右键单击它并选择以管理员身份运行。
  3. 键入命令并按 Enter:Stop-Service -Name Spooler -Force
  4. 使用此命令防止服务在重新启动期间再次启动备份:Set-Service -Name Spooler -StartupType Disabled

根据 Dvir 的经验,90% 的服务器不需要 Print Spooler。它是大多数的默认配置,所以通常是启用的。因此,禁用它可以解决 90% 的问题并且对生产几乎没有影响。

在大型复杂的基础设施中,找到使用 Print Spooler 的位置可能具有挑战性。

以下是一些需要 Print Spooler 的示例:

  1. 使用 Citrix 服务时,
  2. 传真服务器,
  3. 任何需要虚拟或物理打印 PDF、XPS 等的应用程序。例如,计费服务和工资应用程序。

以下是一些不需要 Print Spooler 但默认启用的示例:

  1. 域控制器和 Active Directory – 通过练习基本的网络卫生可以消除此漏洞的主要风险。在 DC 和 AD 服务器中启用 Print Spooler 毫无意义。
  2. 成员服务器,例如 SQL、文件系统和 Exchange 服务器。
  3. 不需要打印的机器。

Dvir 为依赖 Print Spooler 的机器建议的其他一些强化步骤包括:

  1. 使用非 Microsoft 服务替换易受攻击的 Print Spooler 协议。
  2. 通过更改“允许打印后台处理程序接受客户端连接”,您可以将用户和驱动程序对打印后台处理程序的访问限制为必须使用它的组。
  3. 在 Pre-Windows 2000 兼容组中禁用打印后台处理程序调用程序。
  4. 确保 Point and Print 未配置为 No Warning – 检查注册表项 SOFTWARE/Policies/Microsoft/Windows NT/Printers/PointAndPrint/NoElevationOnInstall 的 DWORD 值 1 并将其更改为 0。
  5. 关闭 EnableLUA – 检查注册表项 SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System/EnableLUA 的 DWORD 值 0 并将其更改为 1。

以下是您接下来需要执行的操作,以确保您的组织安全:

  1. 确定在您的网络上使用 Print Spooler 的位置。
  2. 映射您的网络以查找必须使用 Print Spooler 的机器。
  3. 在不使用它的机器上禁用 Print Spooler。
  4. 对于需要 Print Spooler 的机器 – 以最小化其攻击面的方式配置它们。

除此之外,要找到潜在的漏洞利用证据,您还应该监视 Microsoft-Windows-PrintService/Admin 日志条目。可能存在带有错误消息的条目,表明 Print Spooler 无法加载插件模块 DLL,但如果攻击者打包了 Print Spooler 要求的合法 DLL,也会发生这种情况。

Dvir 的最终建议是通过强化自动化工具来实施这些建议。如果没有自动化,您将花费无数时间尝试手动加固,最终可能会受到攻击或导致系统崩溃

选择您的行动方案后,强化自动化工具将发现启用 Print Spooler 的位置、实际使用的位置,并自动禁用或重新配置它们。