0x00 前言


近日,有安全研究员在github上公开了"CVE-2021-1675"的exp PrintNightmare,后经验证公开的exp是一个与CVE-2021-1675不同的漏洞,微软为其分配了新的编号CVE-2021-34527。这篇文章记录了CVE-2021-34527的复现过程,并对漏洞成因进行了简单的分析。

0x01 漏洞复现


这里记录域控环境下使用普通权限域账户实现RCE反弹nt authority\system shell的过程。下面的漏洞复现和漏洞分析都是基于Windows server 2019,2021-6补丁的,winver=17763.1999。经笔者测试在无任何补丁的Windows server 2019,winver=17763.107环境下使用以下步骤也可以复现RCE。

0x01.1 环境配置


实现RCE的条件如下:

1.一个普通权限的域账户,用另一台计算机使用该域账户登录加入域环境。其中域账户权限如下

2.域控主机需要能够访问到使用上述配置登录的计算机的一个共享目录,在Windows下可以使用smb实现,用管理员权限的powershell运行以下命令即可

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
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

运行完命令重启生效。

0x01.2 复现


GitHub上有2个公开的exp,python版本的https://github.com/cube0x0/CVE-2021-1675 和C++版本的https://github.com/afwu/PrintNightmare ,其中C++版本的是从Zhiniang Peng (@edwardzpeng) & Xuefeng Li (@lxf02942370)公开的exp fork来的。

这两个版本的exp原理都是一样的,也都是可用的,其中python版本的exp需要按照说明文档安装exp作者的impacket库,其余不需要修改任何东西。

pip3 uninstall impacket

git clone https://github.com/cube0x0/impacket

cd impacket

python3 ./setup.py install

c++版本的exp需要把第112行UNIDRV.DLL的路径修改为域控主机对应的路径,如笔者这里对应的路径应修改为:

//info.pDriverPath = (LPWSTR)L"C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_19a3fe50fa9a21b6\Amd64\UNIDRV.DLL";

info.pDriverPath = (LPWSTR)L"C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_83aa9aebf5dffc96\Amd64\UNIDRV.DLL";

其余不需要修改任何东西,使用vs编译即可。

python版本exp命令及RCE截图:

c++版本exp命令及RCE截图:

0x02 漏洞分析


0x02.1 漏洞根原


漏洞的关键在于localspl!SplAddPrinterDriverEx中调用InternalAddPrinterDriverEx加载驱动前的验证ValidateObjectAccess是可以被跳过的。如下localspl!SplAddPrinterDriverEx中的汇编代码为存在漏洞可以导致ValidateObjectAccess被绕过的代码。

.text:0000000180085F25 loc_180085F25:                         ; CODE XREF: SplAddPrinterDriverEx+3F↑j
.text:0000000180085F25                 bt     esi, 0Fh       ; esi=dwFileCopyFlags
.text:0000000180085F29                 mov     ebx, 0
.text:0000000180085F2E                 cmovnb ebx, [rsp+58h+arg_30] ; [rsp+0x90]=1
.text:0000000180085F2E                                         ; CF=1,不进行移位
.text:0000000180085F36                 test   ebx, ebx
.text:0000000180085F38                 jz     short loc_180085F64
.text:0000000180085F3A                 mov     rax, cs:pLocalIniSpooler
.text:0000000180085F41                 xor     r9d, r9d
.text:0000000180085F44                 and     [rsp+58h+var_30], 0
.text:0000000180085F49                 xor     r8d, r8d
.text:0000000180085F4C                 xor     ecx, ecx
.text:0000000180085F4E                 mov     [rsp+58h+var_38], rax
.text:0000000180085F53                 lea     edx, [r9+1]
.text:0000000180085F57                 call   ?ValidateObjectAccess@@YAHKKPEAXPEAKPEAU_INISPOOLER@@W4SERVER_MANAGEMENT_ACCESS_REQUEST@@@Z ; ValidateObjectAccess(ulong,ulong,void *,ulong *,_INISPOOLER *,SERVER_MANAGEMENT_ACCESS_REQUEST)
...


http://www.taodudu.cc/news/show-1427798.html

相关文章:

  • WordPress ProfilePress插件多个严重漏洞
  • CVE-2020-3580: Cisco ASA安全软件XSS漏洞
  • CVE-2021-30116: Kaseya VSA 远程代码执行漏洞
  • CVE-2021-34527: Windows Print Spooler 蠕虫级远程代码执行漏洞
  • Windows Print Spooler 远程代码执行漏洞(CVE-2021-34527)
  • CVE-2021-21871: PowerISO 内存越界写漏洞
  • CVE-2021-35464: ForgeRock AM远程代码执行漏洞
  • Trend Micro Password Manager 多个高危漏洞
  • Windows Print Spooler 远程代码执行漏洞(CVE-2021-1675)
  • CVE-2021-1675: Windows Print Spooler远程代码执行漏洞
  • Python实现恋爱AA公式
  • 如何科学的使用华为云
  • 《计算机组成原理》BCD码 8421编码原理剖析
  • Python 列表 append()函数使用详解
  • python 列表 remove()函数使用详解
  • 《Python入门到精通》Python基础语法
  • Python列表常用函数使用详解(内附详细案例)
  • Python集合常用函数使用详解(内附详细案例)
  • Python字典常用函数使用详解(内附详细案例)
  • Python数据类型转换详解(内附详细案例)
  • 《Python入门到精通》运算符
  • 《Python入门到精通》流程控制语句
  • 《Python入门到精通》函数
  • 《计算机网络入门到精通》网络体系结构
  • 《Python入门到精通》文件操作
  • ARP协议详解,ARP协议执行原理、ARP协议如何根据IP地址寻找Mac地址?
  • DHCP协议执详解,DHCP协议执行流程、配置方式
  • Typora如何设置图片的默认保存路径
  • MySQL安装时Download界面为空,不显示需要下载的组件,MySQL Installer 8.0.28.0 Download界面为空解决方案
  • SQLi LABS Less-8 布尔盲注

Windows Print Spooler服务最新漏洞CVE-2021-34527详解相关推荐

  1. Windows Print Spooler服务最新漏洞CVE-2021-34527详细分析

    近日,有安全研究员在github上公开了"CVE-2021-1675"的exp PrintNightmare,后经验证公开的exp是一个与CVE-2021-1675不同的漏洞,微软 ...

  2. android 服务端 漏洞,安卓漏洞 CVE 2017-13287 复现详解-

    2018年4月,Android安全公告公布了CVE-2017-13287漏洞. 与同期披露的其他漏洞一起,同属于框架中Parcelable对象的写入(序列化)与读出(反序列化)的不一致所造成的漏洞. ...

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

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

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

    漏洞详情 Microsoft Windows Print Spooler 服务未能限制对RpcAddPrinterDriverEx()函数的访问,该函数可能允许远程身份验证的攻击者以系统权限在易受攻击 ...

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

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

  6. CVE-2021-34527: Windows Print Spooler 蠕虫级远程代码执行漏洞

    报告编号:B6-2021-062902 报告来源:360CERT 报告作者:360CERT 更新日期:2021-07-02 1 更新概览 1.漏洞简述新增360CERT对CVE-2021-34527( ...

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

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

  8. Windows Print Spooler CVE-2021-1675 漏洞复现

    Windows Print Spooler CVE-2021-1675 漏洞复现 Created: July 7, 2021 5:25 PM 漏洞描述 Windows Print Spooler是Wi ...

  9. Windows Print Spooler新漏洞尚无补丁可用,360产品率先免疫

    今年6月8日,微软在安全更新中修复了一个长时间存在的打印机服务Windows Print Spooler本地提权漏洞,漏洞编号为:CVE-2021-1675,普通用户可以利用此漏洞以管理员身份在运行打 ...

最新文章

  1. 5.1软件升级的小阳春
  2. 双轴机械臂中的闭环步进电机平顺控制算法: 42HS48EIS,57HS
  3. 如何在不停止程序的情况下打印完整的回溯?
  4. java中的几种对话框_Java中弹出对话框中的几种方式
  5. 机器学习(二)Logistic回归(Logistic regression)算法
  6. android给后台传递json,将服务中的JSON数据发送到Android中的UI
  7. php5.6 mongo 扩展,PHP5.6的安装及redis、memcache、mongo扩展
  8. 精确的数据访问冲突_每个程序员都必须知道的8种通用数据结构
  9. MariaDB:在Linux下修改编码
  10. IOS-设置NavigationBar的背景及字体颜色
  11. java架构实践_Java架构实践-关于IO流
  12. 软考数据库考试有题库吗_软考数据库系统工程师考试心得
  13. 调戏木马病毒的正确姿势-基础篇
  14. 国内坐标转换常用投影EPSG
  15. 双系统卸载Linux,重装Deepin
  16. winpe读取linux硬盘数据恢复,如何在WinPE环境下完成文件恢复
  17. 基于maven自动构建和部署工具-JDeploy
  18. 一键合并多个Excel文档
  19. Qt + libVlc
  20. 微信小程序聊天功能PHP,微信小程序实现聊天室

热门文章

  1. Flask-login 原理
  2. UISearchController的使用
  3. CentOS+Subversion
  4. CSS3 Transform变形理解与应用
  5. Visual C++ 运行库合集
  6. Linux下两种TCP网络服务器实现方式:循环服务并发服务
  7. DIP(依赖倒置原则),IoC(控制反转),DI(依赖注入)复习总结
  8. 增值税发票的种类_以及税率---财务知识工作笔记001
  9. 即时通讯学习笔记004---即时通讯服务器种类认知
  10. HTML5学习笔记---Html5简单理解,发展情况...