关于Windows Print Spooler远程代码执行0 day漏洞
2021-07-28
来源:工控安全漫谈
上个月,一名安全研究人员意外发现了一个名为PrintNightmare的0 day漏洞,利用此漏洞,黑客可以在补丁完善的Windows Print Spooler设备上获得完整的远程代码执行能力,此漏洞被微软追踪为CVE-2021-34527。
在6月补丁星期二活动日中,微软发布的安全累积更新中修复了一个类似的Print Spooler漏洞。但是对于已经打过补丁的Windows Server 2019设备,PrintNightmare漏洞依然有效,并允许攻击者远程执行代码。
由于修复不完整,安全研究人员一直在仔细检查,并发现了影响Windows打印后台处理程序的更多漏洞。
攻击中使用的远程打印服务器
安全研究员和Mimikatz的创建者Benjamin Delpy公开披露了一个新的0 day漏洞,该漏洞允许威胁参与者通过他们控制的远程打印服务器轻松获得Windows机器上的系统权限。
您知道什么比Legit Kiwi打印机更好吗?另一台Legit Kiwi打印机……完全没有先决条件,你甚至不需要签署驱动程序/包pic.twitter.com/oInb5jm3tE—本杰明·德尔佩(@gentilkiwi),2021年7月16日
在与BleepingComputer的交流中,Delpy表示,他的漏洞利用Windows指向和打印功能的“队列特定文件”功能,在客户端连接到攻击者控制下的打印服务器时自动下载并执行恶意DLL。
“在打印机安装时,供应商提供的安装应用程序可以指定一组与特定的打印队列相关联的任何类型的文件,”微软关于“队列特定文件”功能的文档解释说。
“文件被下载到连接到打印服务器的每个客户端。”
为了利用该漏洞,研究人员创建了一个可通过Internet访问的打印服务器,其中包含两台使用队列特定文件功能的共享打印机。
执行恶意DLL时,它将以SYSTEM权限运行,可用于在计算机上运行任何命令。
CERT/CC的漏洞分析师Will Dormann发布了针对此漏洞的公告,提供了更多信息。
“虽然Windows强制驱动程序包本身由受信任的来源签名,但Windows打印机驱动程序可以指定与设备使用相关的队列特定文件。例如,共享打印机可以为任意ICM文件指定CopyFiles指令。”
“这些用数字签名强制打印机驱动程序文件一起复制的文件不受任何签名要求的约束。也就是说,任何文件都可以通过Point and Print打印机驱动程序安装复制到客户端系统,在那里它可以由另一台具有SYSTEM特权的打印机使用。”
“这允许在易受攻击的系统上进行LPE。”
使此漏洞如此危险的原因在于,它会影响所有当前版本的Windows,并允许威胁行为者获得对网络的有限访问权限,同时立即在易受攻击的设备上获得SYSTEM权限。
使用此访问权限,威胁参与者可以通过网络横向传播,直到他们获得对域控制器的访问权限。
Delpy创建了一个可公开访问的远程打印服务器,可用于测试上述漏洞。
缓解新的打印机漏洞
好消息是Delpy和Dormann共享了两种可用于缓解这种新的“Queue-specific文件”漏洞的方法。
CERT咨询中概述了这两种方法。
选项1:在网络边界阻止出站SMB流量
由于Delpy的公开漏洞利用远程打印服务器,您可以阻止出站SMB流量以防止访问远程计算机。
但是,Dormann表示MS-WPRN也可用于在不使用SMB的情况下安装驱动程序,并且威胁行为者仍然可以通过本地打印机服务器使用此技术。
因此,这种缓解措施不是阻止漏洞利用的故障安全方法。
选项2:配置PackagePoint和PrintServerList
防止此漏洞的更好方法是将包点和打印限制到批准的服务器。此策略设置限制到已批准服务器的程序包点和打印连接。此设置仅适用于“打包点”和“打印”连接,并且独立于控制非包点和打印连接的行为的“点”和“打印限制”策略。
如果启用此设置,则用户只能将点和打印到网络管理员批准的打印服务器。使用包点和打印时,客户端计算机将检查从打印服务器下载的所有驱动程序的驱动程序签名。
此策略设置控制客户端Point和Print行为,包括Vista计算机Windows提示。策略设置仅适用于非打印管理员客户端,并且仅适用于作为域成员的计算机。
使用此组策略将针对已知漏洞提供最佳保护。
BleepingComputer已就该问题与Microsoft联系,但尚未收到回复。