一个exchange小实战
一个exchange小实战
这个目标打的有点意思,记录一下
发现
信息收集以后发现目标开了exchange,一看版本,还挺低的。还觉得运气不错,指不定proxyLogon一发入魂。
一
先测了一手poc,dnslog收到了请求,漏洞存在,内心狂喜。
但是后来才发现事情没有那么简单,访问/ecp/proxyLogon.ecp这个接口直接404…
当时在现场并不知道为什么会404,后来才知道是cas与mbx的分离部署。
二
当下有点头疼,只能先换个思路,尝试从ews去读取邮件信息,看看能不能从邮件里发现些什么
然后更诡异的事情发生了,读数量的地方没什么问题,可读取邮件itemid的时候,死活不能识别邮箱地址,明明用<t:EmailAddress></t:EmailAddress>
标签制定了,怎么试都不行,无奈放弃了这个想法,这个问题至今也没搞懂是为什么。
三
邮件也读不到,很难受。于是再换一个思路,去读取GAL(全局地址列表),这次倒是成功的,通过autodiscover接口读到oaburl,然后再通过lzx地址下载lzx,最后通过工具解密,具体步骤见前面的文章。
导出来三千个邮箱账户,就想着说不定爆破进去一个呢,0688直接起飞。于是用ebruster喷了两天,因为担心用户锁定,一天只敢喷三次,从未中奖的我结果当然也没成功。
柳暗花明
就在我已经快要放弃这个点的时候,因为实在是不甘心就又看了看ews的返回包,突然发现了华点
这里显示了一个和之前两台长得完全不一样的机器名,于是我就顺手尝试了一下他
!!!!他居然没有删掉ecp的接口!!!,内心狂喜,感觉上天眷顾了我这个努力的打工人
后来才知道,这是后端处理的端点,mbx后端邮箱服务。
一波三折
但是这台机器在外网是访问不到的,直接写webshell肯定不行,于是我想着通过unc路径,把webshell写到外面能访问的机器上。
\\\x.x.local\c$\Program File\exchange\xxx\v15\http\owa\auth\1.aspx
然而事实又和我开起玩笑,对方把DDI
类给禁掉了。
当场人就傻了,这啥机器啊,也太灵性了。
有志者,事竟成
就在我又一次陷入自闭的时候,我突然想到了他之前的版本号。15.08,这个版本应该连cve-2020-0688也没修掉。而0688的利用条件是有一个普通用户的凭证。虽然我没有用户的凭证,但是我有proxyLogon呀!!!!
通过proxyLogon我可以直接拿到asp.net_session。
说干就干,首先通过/ecp/proxyLogon.ecp接口通过ecp的认证,获得.net的session。
然后通过这个session直接生成0688的payload(前提是generator
的值是默认值),然后通过ssrf直接梭哈。
注意:
- 仍需要添加的
msExchLogonMailbox
的头 - 需要放在请求头的最下方,不知道为啥
- 请求需要用get哦
好家伙,收到请求的时候眼泪都要流出来了。
后面的操作就很常规了,没啥好说的。
这个故事就是 告诉大家不要轻言放弃。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!