栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

CVE-2018-8581 漏洞分析

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CVE-2018-8581 漏洞分析

CVE-2018-8581 漏洞分析
  • 前言
  • 环境搭建
    • 工具
  • 分析
  • 参考文章

前言

这里只是简单分析漏洞产生的代码逻辑,因为不熟悉exchange的业务逻辑,所以分析不会很深入,争取以后慢慢补充

环境搭建
主机机器名ip用户密码版本
域控1ad1.test.com192.168.164.174administratorAa1234win2012r2
exchange2016-cu11mail1.test.com192.168.164.173administratorAa1234win2012r2
域内机器user.test.com192.168.164.129user1Uu1234.win2008r2
kali192.168.152.45192.168.164.128xxxxxxkali
工具

dnspy

https://github.com/0xd4d/dnSpy/releases
分析

首先通过查看exp,找到漏洞的触发点位于/EWS/Exchange.asmx
定位到文件C:Program FilesMicrosoftExchange ServerV15ClientAccessexchwebewsExchange.asmx
对应代码

<%@ServiceHost Service="Microsoft.Exchange.Services.Wcf.EWSService" Factory="Microsoft.Exchange.Services.Wcf.EWSServiceHostFactory" %>

用到的dll文件存储在C:Program FilesMicrosoftExchange ServerV15ClientAccessexchwebewsbin
将dll拖入dnspy反编译
这里如果能够动态调试自然是最好,不过由于我的环境有问题,dnspy打不开,所以选择静态代码分析,
https://github.com/dotnet/wpf/issues/2009
可以看到调用Microsoft.Exchange.Services.Wcf.EWSService方法
这个方法在Microsoft.Exchange.Services.EwsHandler.dll下的Microsoft.Exchange.Services.Wcf.EWSService

dnspy调试参考https://www.cnblogs.com/Bruce_H21/p/12307182.html
附加进程

之后点击下面的模块,双击反编译
由于这里是初始化调用所以在这里下断点

xml解析部分soap格式参考https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/ews-xml-elements-in-exchange
首先解析xml,调用GetXmlSerializer方法

解析版本信息进行对比

解析body
逐层解析methodName

在payload触发是在PushSubscriptionRequest模块
所以在Microsoft.Exchange.Services.Core.Types下PushSubscriptionRequest下断点

由于这个接口是Exchange允许任何用户为推送订阅指定所需的URL,这个url就是推送订阅的url,所以跟踪这个url,发现在如下位置调用,下断点

在这里把url赋值给clienturl,并且配置参数,跟踪一下clienturl,发现这个BeginSendNotification方法和实现功能很像,跟入

下断点

使用payload触发

解析xml之后会会调用set方法设置url,之后等待触发,

这里的身份认证使用的CredentialCache.DefaultCredentials是exchange的机器账户
通过抓包查看

所以使用exchange的机器账户可以用来中继到ldap,由于http默认不需要签名,所以也不需要结合CVE-2019-1040来使用,或者可以中继到ews,这里由于Exchange Server 默认

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaDisableLoopbackCheck=1


这个注册表功能参考https://docs.microsoft.com/en-US/troubleshoot/windows-server/networking/accessing-server-locally-with-fqdn-cname-alias-denied
就可以中继回自身的ews服务进行攻击

参考文章

https://www.freebuf.com/vuls/194083.html
https://daiker.gitbook.io/windows-protocol/ntlm-pian/7#4-cve-2018-8581

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984096.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号