深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

admin 2024年10月13日21:47:15评论35 views字数 1705阅读5分41秒阅读模式

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

01
背景

针对近日出现的Windows打印机远程漏洞,由于其具备本地提权和远程代码执行的危害,且域环境下存在远程攻击域控的风险,针对Windows Printer远程漏洞微软已发布漏洞更新补丁,但黑客仍然能找到合理的利用方式。加之,在野利用脚本已广泛传播,未然实验室对该漏洞做了进一步的分析。

02
漏洞成因

CVE-2021-1675漏洞是由于Windows Print Spooler打印机程序中存在权限绕过问题,进而导致远程代码执行。攻击者通过该漏洞可以完成本地权限提升或者远程代码执行。由于 SplAddPrinterDriver中存在鉴权缺陷,攻击者可以实现远程代码执行,如果在域环境中,攻击者可以利用域内已控制的普通用户权限,通过 RPC 触发 RpcAddPrinterDrive 绕过安全检查并在域控植入恶意驱动程序,实现远程代码执行,从而控制整个域环境。

根据微软官方文档,RpcAddPrinterDriver 函数是用于安装打印机驱动的,根据微软官方文档该函数原型如下。

 DWORD RpcAddPrinterDriverEx(

   [in, string, unique] STRING_HANDLE pName,

   [in] DRIVER_CONTAINER* pDriverContainer,

   [in] DWORD dwFileCopyFlags

 );

其中最关键的是dwFileCopyFlags参数,根据微软的描述,dwFileCopyFlags 字段作用如下:

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

上图中的关键是APD_INSTALL_WARNED_DRIVER(0x8000)标志位,这个标志位是用于指示加载打印机驱动。而漏洞的利用过程恰恰通过设置APD_INSTALL_WARNED_DRIVER(0x8000)标志位,绕过了系统的权限检测,并加载打印机驱动,进而获得代码执行权限。

关键的漏洞利用代码见下图。

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

针对这个漏洞的补丁主要修复了RpcAddPrinterDriver函数,具体做法是限制了APD_INSTALL_WARNED_DRIVER(0x8000)标志位。补丁的关键修补位置见下图。

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

从以上分析可以看出该漏洞是在添加打印机驱动的时候触发的,通过特殊标志位绕过打印机权限验证,从而触发漏洞,完成攻击。

03
漏洞攻击过程

根据下图的进程行为监控截图可以看到,漏洞触发之后远程被攻击的机器的spoolsv.exe进程会从远程加载指定的恶意dll文件(artifact.dll),从而实现远程代码执行。

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

04
漏洞复现

通过构造攻击数据报文,可以通过该漏洞实现远程攻击,可成功利用该漏洞获取域控SYSTEM权限,从而接管整个域环境。

攻击环境:Windows Server 2019

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

运行如下攻击脚本:

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

漏洞利用成功如图所示,域控机器成功通过木马上线。

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

05
漏洞防御建议

目前微软官方已经针对该漏洞发布补丁,下载链接:

https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2021-1675,请及时更新补丁保持系统处于最新版本。

由于该漏洞风险较高,且仍存在变种攻击的风险,如无必要建议关闭打印机服务。

可以通过impacket中的rpcdump工具脚本检测网络中相关打印机服务是否开放


rpcdump.py 目标机器 | grep MS-RPRN

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

在系统服务应用中找到Print Spooler打印机服务,然后选择暂停打印机服务,如下图所示。

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

华为安全解决方案已支持对该漏洞的检测和防御,请及时更新最新版本。

06
关于未然实验室
深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

华为未然实验室成立于2016年,由华为300多位顶尖安全技术专家组成,聚焦于安全行业漏洞挖掘、渗透测试、恶意流量检测与分析、威胁防御和威胁情报、人工智能安全技术以及攻防对抗演练技术研究,目前已拥有2000余项安全专利、万级漏洞库和亿级病毒库。未然实验室将持续跟踪Windows Printer Spooler漏洞,分析该漏洞更多细节。

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

2021年
让我一直保护你
↓↓↓
深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析
点击阅读原文,更新微软官方补丁

原文始发于微信公众号(华为安全):深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月13日21:47:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   深度丨Windows Printer Spooler远程代码执行漏洞跟踪分析https://cn-sec.com/archives/1117031.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息