CVE-2021-1675 打印机漏洞沦陷域控的补充 07/02/21
2021-7-2 15:31:10 Author: mp.weixin.qq.com(查看原文) 阅读量:10 收藏

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 参考链接

  • https://doublepulsar.com/zero-day-for-every-supported-windows-os-version-in-the-wild-printnightmare-b3fdb82f840c

  • https://www.reddit.com/r/msp/comments/ob6y02/critical_vulnerability_printnightmare_exposes/

  • https://mp.weixin.qq.com/s/k4OwCcJJxm-UHMdVdfBCIw

0x06 申明

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

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

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


文章来源: https://mp.weixin.qq.com/s?__biz=MzU0MDcyMTMxOQ==&mid=2247483687&idx=1&sn=c7b25ff8ebe25ea64fed4566a1e0946c&chksm=fb35a8efcc4221f9f7abdf92505fd799fb3ccb3574b72ec8e20c05466ad5bbc63d182687ba3d&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh