Exchange爆ProxyToken漏洞,攻击者可窃取用户邮件。
近日,研究人员发现Microsoft Exchange服务器中存在ProxyToken漏洞——CVE-2021-33766。攻击者只需要伪造一个到Exchange Control Panel (ECP)应用中的web服务器的请求就可以在无需认证从受害者收件箱中窃取邮件信息。
CVE-2021-33766漏洞细节
Microsoft Exchange会在IIS中创建两个站点。一个是默认网站,会HTTP 80端口和HTTPS 4443端口。所有客户端都会连接该站点来进行web访问和外web服务。这也就是所说的前端,另一个网站是Exchange Back End,会HTTP 81端口和HTTPS 444端口。
前端网站是后端的一个代理。为允许需要表单验证的访问,前端会有/owa/auth/logon.aspx 这样的页面。对所有后任职请求,前端的主要作用是重新打包请求并代理到Exchange Back End网站的对应端点。然后从后端收集响应,并转发到客户端。
Exchange还支持一个名为Delegated Authentication的特征。在这种署中,前端无法执行认证决策,但前端会直接传递请求给后端,后端来最终确定该请求是否经过认证。这些要使用后端逻辑来进行认证的请求会被SecurityToken cookie来识别出来:
在Microsoft.Exchange.HttpProxy.ProxyModule.SelectHandlerForUnauthenticatedRequest中:
对于/ecp中的请求,如果前端找到一个名为SecurityToken的非空cookie,就代表后端认证。
后端代码会检查和验证class Microsoft.Exchange.Configuration.DelegatedAuthentication.DelegatedAuthenticationModule 中的SecurityToken cookie。
但是后端的/ecp/web.config 文件默认配置中有一个 元素,所以DelegatedAuthModule 模块并不会被所有后端ECP网站加载。
总结一下就是,如果前端看到SecurityToken cookie,就表示后端会负责认证该请求。但是因为后端并未加载DelegatedAuthModule,所以后端并不知道需要根据SecurityToken cookie来认证请求。所以可以完全绕过前端和后端认证。
ECP canary
每个到/ecp的请求都要求有一个ticket——“ECP canary”。如果没有canary,请求就会返回HTTP 500错误。但是500错误响应同时会伴随一个有效的canary:
最终的请求如下所示:
漏洞利用
该漏洞成功利用的前提是攻击者在受害者所在的Exchange服务器上有一个账号。该首付为的转发规则允许攻击者读取受害者的收件箱。在一些exchange安装中,管理员可能设置了允许一怒徐转发规则是任意互联网目的地,这种情况下攻击者无需任何exchange凭证。此外,因为整个/ecp网址是受影响的,所以可能还会有其他的漏洞利用方式。
未经过认证的攻击者利用该漏洞可以对任意用户的收件箱执行配置操作,复制所有邮件内容并转发到攻击者控制的账户中。
触发该漏洞的HTTP流量如下所示:
NCC研究人员Rich Warren称已经发现了量的漏洞利用尝试。
漏洞补丁
该漏洞是今年3月发现的,微软已于7月修复了该漏洞。由于该漏洞是ProxyShell漏洞,如果Exchange服务器管理员未安装ProxyToken漏洞补丁,那么建议尽快安装。
参考及来源:https://www.bleepingcomputer.com/news/security/microsoft-exchange-proxytoken-bug-can-let-hackers-steal-user-email/
标签: