近日安全研究人员Alex Ionescu和Yarden Shafir发布漏洞报告,称在Windows打印服务中发现了一个安全漏洞——PrintDemon,可以用来劫持Printer Spooler机制,影响1996年后发布的所有Windows版本,包括1996年发布的Windows NT4。漏洞CVE编号为CVE-2020-1048。
CVE-2020-1048
漏洞存在于Windows Print Spooler中,Print Spooler是打印后台处理服务,管理所有本地和网络打印队列及控制所有打印工作。该服务会发送要打印的数据给USB/并行端口、位于本地网络或互联网上的打印机的TCP端口、或本地文件。
权限提升
研究人员称PrintDemon是一个本地权限提升漏洞。也就是说攻击者进入app或Windows机器中,即使只有普通用户权限,也可以通过PowerShell命令等方式轻易获取系统的管理员权限。因为任意想要打印文件的app都可以访问该服务,因此所有系统上运行的app都可以访问。攻击者就可以创建一个打印到文件的打印任务,比如通过操作系统或其他应用使用本地DLL文件。
攻击者可以初始化一个打印操作,然后故意使Print Spooler服务奔溃,然后再恢复打印任务,此时打印操作就以SYSTEM权限运行了,可以覆写系统中的任意文件。
研究人员Alex Ionescu发推说,攻击者可以通过下面的简单PowerShell命令来利用CVE-2020-1048:
Add-PrinterPort -Name c:\windows\system32\ualapi.dll
在未安装补丁的系统中,运行上述命令会安装一个永久后门,该后门即使修复后也不会消失。
但是该漏洞无法通过互联网远程利用来入侵Windows客户端,因此无法利用该漏洞在互联网上随机地黑掉Windows系统。
PoC
Alex Ionescu还在GitHub上发布了PoC代码,参见:
https://github.com/ionescu007/PrintDemon
补丁
微软已经在5月的微软补丁日发布了该漏洞的补丁,由于该漏洞非常容易被利用,研究人员建议用户尽快安装补丁。此外,还可以通过PowerShell的Get-PrinterPorts或复制HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports 来扫描基于文件的端口,尤其是那些.DLL或.EXE扩展的文件路径中。
更多技术细节参见:https://windows-internals.com/printdemon-cve-2020-1048/
本文翻译自:https://www.zdnet.com/article/printdemon-vulnerability-impacts-all-windows-versions/如若转载,请注明原文地址: