Windows Print Spooler服务最新漏洞CVE-2021-34527详解
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详解相关推荐
- Windows Print Spooler服务最新漏洞CVE-2021-34527详细分析
近日,有安全研究员在github上公开了"CVE-2021-1675"的exp PrintNightmare,后经验证公开的exp是一个与CVE-2021-1675不同的漏洞,微软 ...
- android 服务端 漏洞,安卓漏洞 CVE 2017-13287 复现详解-
2018年4月,Android安全公告公布了CVE-2017-13287漏洞. 与同期披露的其他漏洞一起,同属于框架中Parcelable对象的写入(序列化)与读出(反序列化)的不一致所造成的漏洞. ...
- Windows Print Spooler 远程代码执行漏洞(CVE-2021-34527)
点击上方 订阅话题 第一时间了解漏洞威胁 0x01 漏洞描述 Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中. 360漏洞云监测到微软最新披 ...
- CVE-2021-1675(Windows Print Spooler 远程代码执行漏洞)
漏洞详情 Microsoft Windows Print Spooler 服务未能限制对RpcAddPrinterDriverEx()函数的访问,该函数可能允许远程身份验证的攻击者以系统权限在易受攻击 ...
- CVE-2021-1675: Windows Print Spooler远程代码执行漏洞
** 赶紧点击上方话题进行订阅吧!** 报告编号:B6-2021-062902 报告来源:360CERT 报告作者:360CERT 更新日期:2021-06-29 1 漏洞简述 2021年06月29日 ...
- CVE-2021-34527: Windows Print Spooler 蠕虫级远程代码执行漏洞
报告编号:B6-2021-062902 报告来源:360CERT 报告作者:360CERT 更新日期:2021-07-02 1 更新概览 1.漏洞简述新增360CERT对CVE-2021-34527( ...
- Windows Print Spooler 远程代码执行漏洞(CVE-2021-1675)
点击上方 订阅话题 第一时间了解漏洞威胁 0x01 漏洞描述 Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中. 微软在2021年6月的安全更 ...
- Windows Print Spooler CVE-2021-1675 漏洞复现
Windows Print Spooler CVE-2021-1675 漏洞复现 Created: July 7, 2021 5:25 PM 漏洞描述 Windows Print Spooler是Wi ...
- Windows Print Spooler新漏洞尚无补丁可用,360产品率先免疫
今年6月8日,微软在安全更新中修复了一个长时间存在的打印机服务Windows Print Spooler本地提权漏洞,漏洞编号为:CVE-2021-1675,普通用户可以利用此漏洞以管理员身份在运行打 ...
最新文章
- 5.1软件升级的小阳春
- 双轴机械臂中的闭环步进电机平顺控制算法: 42HS48EIS,57HS
- 如何在不停止程序的情况下打印完整的回溯?
- java中的几种对话框_Java中弹出对话框中的几种方式
- 机器学习(二)Logistic回归(Logistic regression)算法
- android给后台传递json,将服务中的JSON数据发送到Android中的UI
- php5.6 mongo 扩展,PHP5.6的安装及redis、memcache、mongo扩展
- 精确的数据访问冲突_每个程序员都必须知道的8种通用数据结构
- MariaDB:在Linux下修改编码
- IOS-设置NavigationBar的背景及字体颜色
- java架构实践_Java架构实践-关于IO流
- 软考数据库考试有题库吗_软考数据库系统工程师考试心得
- 调戏木马病毒的正确姿势-基础篇
- 国内坐标转换常用投影EPSG
- 双系统卸载Linux,重装Deepin
- winpe读取linux硬盘数据恢复,如何在WinPE环境下完成文件恢复
- 基于maven自动构建和部署工具-JDeploy
- 一键合并多个Excel文档
- Qt + libVlc
- 微信小程序聊天功能PHP,微信小程序实现聊天室