长亭百川云 - 文章详情

CVE-2021-1675 打印机漏洞沦陷域控的补充 07/02/21

甲方安全建设

41

2024-07-13

0x00 漏洞影响面

危害:这个漏洞级别属于稍次于Zerologon的打域利器之一. 和以往的打印机协议中继/委派系列,危害度和利用条件基本在同一维度,
没全量打补丁且重启生效的甲方/网管朋友们,得抓紧时间了.
笔者测试线上,全补丁机器依然可打。网管朋友们可以阻断+感知同步操作了.

影响版本

Windows Server 2019  
Windows Server 2016  
Windows Server 2012 R2  
Windows Server 2012  
Windows Server 2008 R2  
Windows Server 2008  

0x01 漏洞利用条件

  • pDriverPath 知道一个驱动的绝对路径,和系统版本有关 新版exp,有enum驱动绝对路径的接口,成功率更高

  • 讲道理: 一个普通域账号/或者机器账号权限

  • 如果条件合适, 只需要进入你的办公网. 网络权限

  • 获取机器账号或中继,可能的操作: mitm6 NBT-NS LLMNR wpad等

0x02 前文QA环节

  • 6月的补丁安装且重启了,为啥还是被打了?

  • 6月的补丁生效的是本地提权, 远程条件合适还是可以打,比如DC.

  • 你确定你所有的DC/Exchange大几十台,都打了补丁?都重启生效了?有无正反向的测试验证 ?

  • dll已经看到过来下载了,为啥没上线?

  • 请用64位的dll, 本地确保调试OK

  • windows defender或其他杀软,确认绕过了?本地/测试环境确保调试OK 

  • win server 2012 DC不能打?

    

  • 笔者多个环境测试成功, 但不保证都可以打.

  • 保持怀疑和审慎态度,github开源的一定就没问题么? 测试前 smbclient.py先测试, 如果rpc_s_access_denied, 账号密码hash没有问题, 有没有可能poc实现的有些许问题?

  • 前面一切正常,就是无法下载dll, 是不是不受影响了?回显: ERROR_BAD_NET_RESP - The specified server cannot perform the requested operation.

  • 这是由于win 10/server 2016 某小版本后安全性提升的结果, 可本地测试 dir \\vnc_host\share,查看回显, 如下图即为该情况. 

  • 如图只可以抵御一些攻击的,但不完全免疫此次漏洞。笔者测试了2种方法可以直接bypass, 另有几种可能的绕过思路未实践测试。

0x03 止损措施

DC/exchange/域管常登机器/重要资产机器,不需要打印机协议的, 直接下掉.

//cmd:   
net stop spooler && sc config spooler start=disabled   
//PowerShell:  
Stop-Service -Name Spooler -Force;   
Set-Service -Name Spooler -StartupType Disabled  

ACL规则

//通过 PowerShell 部署(手动或通过 RMM)创建 ACL  
$Path = "C:\Windows\System32\spool\drivers"  
$Acl = Get-Acl $Path  
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("System", "Modify", "ContainerInherit, ObjectInherit", "None", "Deny")  
$Acl.AddAccessRule($Ar)  
Set-Acl $Path $Acl  
//通过 PowerShell 部署删除 ACL (thx u/bclimer !)  
$Path = "C:\Windows\System32\spool\drivers"  
$Acl = Get-Acl $Path  
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("System", "Modify", "ContainerInherit, ObjectInherit", "None", "Deny")  
$Acl.RemoveAccessRule($Ar)  
Set-Acl $Path $Acl  

组策略封禁

  • 域下发组策略 gpmc.msc

  • //gpedit.msc  
    计算机配置/管理模板/打印机  
    //选择禁用
    
  • 本地组策略 gpedit.msc

  • Policies/Windows Settings/Security Settings/System Services/Print Spooler  
    //选择禁用
    
  • 组策略生效后, 服务自动关闭, 无法继续攻击

0x04 检测和防御

  • 已有事件日志分析

  • 安全日志分析:

  • Microsoft-Windows-Security-Auditing 分析 RelativeTargetName注意bypass的情况.

  • 出口smb日志Microsoft-Windows-SmbClient/安全

  • 出去的链接分析异常 

  • webdav尝试等 

  • Sysmon日志: 通过 spoolsv.exe 进程寻找 ImageLoad(事件 ID 7)的使用

  • 非标事件日志采集和监控(特异性好) 开启记录

    $logDeets = Get-LogProperties 'Microsoft-Windows-PrintService/Operational'  
    $logDeets.Enabled = $true  
    Set-LogProperties -LogDetails $logDeets  
    
    
  • 事件 ID 316

  • Microsoft-Windows-PrintService/Operational

  • Microsoft-Windows-PrintService/Admin

  • 注册表变动监控

  • 驱动相关:HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\

  • 文件变动监控(注意bypass的情况/目录穿透):

  • 目录路径 C:\Windows\System32\spool\drivers\x64\* 

  • 特定目录C:\Windows\System32\spool\drivers\x64\*.dll新增;

  • 特定目录子目录创建 C:\Windows\System32\spool\drivers\x64\, 如old;

  • spoolsv.exe 写入 (Sysmon 事件id 11) 和删除 (Sysmon 事件id 23) .dll 文件

  • 其他弱特征规则

  • rpcdump等的探测规则

  • 进程的出网日志

  • impacket的协议特征检测

  • nids的相关规则

0x05 参考链接

0x06 申明

  • 以上部分操作,实验室测试环境执行可以阻断和检测部分攻击,但不保证对生产环境无任何不良影响,请确认和充分测试你的所有变更操作.

  • 由于个人时间和知识有限,如有错误和遗漏的,请私聊我.

  • 最后祝大家周末加班快乐. 😄

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2