CVE-2022-21999 Windows 打印机特权提升漏洞
一、学习文章
https://research.ifcr.dk/spoolfool-windows-print-spooler-privilege-escalation-cve-2022-22718-bf7752b68d81
个人理解:
普通用户有权限添加或创建具有 PRINTER_ACCESS_ADMINISTER
访问权限的打印机后,可以使用 SpoolDirectory
对其进行配置,可用来定义打印机的假脱机目录(具有可写权限),目录为 C:UsersTenetAppDataLocalTempa318ed35-1254-46cf-8fd2-7b928dcfc2a3
,打印程序会判断我们是否具有权限,临时目录所以我们具有对应权限,然后在临时目录上创建一个重解析点以指向打印机驱动程序目录 C:Windowssystem32spoolDRIVERSx64
,当打印机进行重启的时候,就会新建一个任意用户都有权限的目录 C:Windowssystem32spoolDRIVERSx644
,此时再将恶意 dll
写到打印机此驱动目录下,当打印机再次重启的时候,就会用高权限来执行恶意 dll
,造成权限提升。
二、Poc下载地址
https://github.com/ly4k/SpoolFool
三、漏洞利用
高权限执行 dll
文件
四、漏洞利用的步骤
1.创建一个临时基目录,用于我们的假脱机目录,稍后将把它变成一个重解析点
[*] Using temporary base directory: C:UsersTenetAppDataLocalTempa318ed35-1254-46cf-8fd2-7b928dcfc2a3
2.创建名为“Microsoft XPS Document Writer v4”的新本地打印机
[+] Created printer: Microsoft XPS Document Writer v4
3.将新打印机的假脱机目录设置为我们的临时基础目录
[*] Setting spool directory to: \localhostC$UsersTenetAppDataLocalTempa318ed35-1254-46cf-8fd2-7b928dcfc2a34
4.在我们的临时基目录上创建一个重解析点以指向打印机驱动程序目录
[*] Creating junction point: C:UsersTenetAppDataLocalTempa318ed35-1254-46cf-8fd2-7b928dcfc2a3 -> C:Windowssystem32spoolDRIVERSx64
关于重解析点
https://docs.microsoft.com/en-us/windows/win32/fileio/reparse-points
5.AppVTerminator.dll 通过加载到 Spooler 中强制 Spooler 重新启动以创建目录
[*] Forcing spooler to restart
[*] Waiting for spooler to restart...
[+] Successfully created driver directory: C:Windowssystem32spoolDRIVERSx644
6.将 DLL 写入打印机驱动程序目录内的新目录
[*] Copying DLL: .AddUser.dll -> C:Windowssystem32spoolDRIVERSx644AddUser.dll
7.将 DLL 加载到 Spooler
原文始发于微信公众号(Nurburgring):CVE-2022-21999 Windows 打印机特权提升漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论