Windows Print Spooler服务最新漏洞CVE-2021-34527详细分析

本文详细分析了Windows Print Spooler服务的最新漏洞CVE-2021-34527,包括漏洞复现、环境配置和漏洞成因。通过复现过程,展示了如何在Windows Server 2019上利用该漏洞实现远程代码执行。文章指出,此漏洞源于localspl!SplAddPrinterDriverEx函数中验证机制的可绕过,允许攻击者加载恶意驱动。微软已发布紧急补丁以修复此问题。
摘要由CSDN通过智能技术生成

在这里插入图片描述

近日,有安全研究员在github上公开了”CVE-2021-1675”的exp PrintNightmare,后经验证公开的exp是一个与CVE-2021-1675不同的漏洞,微软为其分配了新的编号CVE-2021-34527。这篇文章记录了CVE-2021-34527的复现过程,并对漏洞成因进行了简单的分析。

漏洞复现

学习网络安全但不知道怎么开始的来call me

​ 这里记录域控环境下使用普通权限域账户实现RCE反弹nt authority\system shell的过程。下面的漏洞复现和漏洞分析都是基于Windows server 2019,2021-6补丁的,winver=17763.1999。经笔者测试在无任何补丁的Windows server 2019,winver=17763.107环境下使用以下步骤也可以复现RCE。

环境配置

学习网络安全但不知道怎么开始的来call me

实现RCE的条件如下:

1.一个普通权限的域账户,用另一台计算机使用该域账户登录加入域环境。其中域账户权限如下

在这里插入图片描述

2.域控主机需要能够访问到使用上述配置登录的计算机的一个共享目录,在Windows下可以使用smb实现,用管理员权限的powershell运行以下命令即可

mkdir C:\share
icacls C:\share\ /T /grant Anonymous` logon:r
icacls C:\share\ /T /grant Everyone:r
New-SmbShare -Path C:\share -Name share -ReadAccess 'ANONYMOUS LOGON','Everyone'
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionPipes /t REG_MULTI_SZ /d srvsvc /f
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d share /f
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v RestrictAnonymous /t REG_DWORD /d 0 /f

运行完命令重启生效。

复现

学习网络安全但不知道怎么开始的来call me

​ GitHub上有2个公开的exp,python版本的https://github.com/cube0x0/CVE-2021-1675 和C++版本的https://github.com/afwu/PrintNightmare ,其中C++版本的是从Zhiniang Peng (@edwardzpeng) & Xuefeng Li (@lxf02942370)公开的exp fork来的。

​ 这两个版本的exp原理都是一样的,也都是可用的,其中python版本的exp需要按照说明文档安装exp作者的impacket库,其余不需要修改任何东西。

pip3 uninstall impacket
git clone https://github.com/cube0x0/impacket
cd impacket
python3 ./setup.py install

​ c++版本的exp需要把第112行UNIDRV.DLL的路径修改为域控主机对应的路径,如笔者这里对应的路径应修改为:

//info.pDriverPath = (LPWSTR)L"C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_19a3fe50fa9a21b6\Amd64\UNIDRV.DLL";
info.pDriverPath = (LPWSTR)L"C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_83aa9aebf5dffc96\Amd64\UNIDRV.DLL";

其余不需要修改任何东西,使用vs编译即可。

​ python版本exp命令及RCE截图:

在这里插入图片描述

​ c++版本exp命令及RCE截图:
在这里插入图片描述

漏洞分析

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值