一个exchange小实战

一个exchange小实战

这个目标打的有点意思,记录一下

发现

信息收集以后发现目标开了exchange,一看版本,还挺低的。还觉得运气不错,指不定proxyLogon一发入魂。

image-20210401191331298

先测了一手poc,dnslog收到了请求,漏洞存在,内心狂喜。

image-20210401192029585

image-20210401192056920

但是后来才发现事情没有那么简单,访问/ecp/proxyLogon.ecp这个接口直接404…

当时在现场并不知道为什么会404,后来才知道是cas与mbx的分离部署。

当下有点头疼,只能先换个思路,尝试从ews去读取邮件信息,看看能不能从邮件里发现些什么

然后更诡异的事情发生了,读数量的地方没什么问题,可读取邮件itemid的时候,死活不能识别邮箱地址,明明用<t:EmailAddress></t:EmailAddress> 标签制定了,怎么试都不行,无奈放弃了这个想法,这个问题至今也没搞懂是为什么。

邮件也读不到,很难受。于是再换一个思路,去读取GAL(全局地址列表),这次倒是成功的,通过autodiscover接口读到oaburl,然后再通过lzx地址下载lzx,最后通过工具解密,具体步骤见前面的文章。

image-20210401192949824

导出来三千个邮箱账户,就想着说不定爆破进去一个呢,0688直接起飞。于是用ebruster喷了两天,因为担心用户锁定,一天只敢喷三次,从未中奖的我结果当然也没成功。

柳暗花明

就在我已经快要放弃这个点的时候,因为实在是不甘心就又看了看ews的返回包,突然发现了华点

image-20210401193347266

这里显示了一个和之前两台长得完全不一样的机器名,于是我就顺手尝试了一下他

image-20210401193423797

!!!!他居然没有删掉ecp的接口!!!,内心狂喜,感觉上天眷顾了我这个努力的打工人

后来才知道,这是后端处理的端点,mbx后端邮箱服务。

一波三折

但是这台机器在外网是访问不到的,直接写webshell肯定不行,于是我想着通过unc路径,把webshell写到外面能访问的机器上。

\\\x.x.local\c$\Program File\exchange\xxx\v15\http\owa\auth\1.aspx

然而事实又和我开起玩笑,对方把DDI 类给禁掉了。

image-20210401193903734

当场人就傻了,这啥机器啊,也太灵性了。

有志者,事竟成

就在我又一次陷入自闭的时候,我突然想到了他之前的版本号。15.08,这个版本应该连cve-2020-0688也没修掉。而0688的利用条件是有一个普通用户的凭证。虽然我没有用户的凭证,但是我有proxyLogon呀!!!!

通过proxyLogon我可以直接拿到asp.net_session。

说干就干,首先通过/ecp/proxyLogon.ecp接口通过ecp的认证,获得.net的session。

image-20210401194405162

然后通过这个session直接生成0688的payload(前提是generator 的值是默认值),然后通过ssrf直接梭哈。

image-20210401194714081

image-20210401195145084

注意:

  • 仍需要添加的 msExchLogonMailbox 的头
  • 需要放在请求头的最下方,不知道为啥
  • 请求需要用get哦

好家伙,收到请求的时候眼泪都要流出来了。

后面的操作就很常规了,没啥好说的。

这个故事就是 告诉大家不要轻言放弃。