分析CVE-2018-8581:在Microsoft Exchange上冒充用户

栏目: 编程工具 · 发布时间: 5年前

内容简介:这是我们2018年Top 5趣案系列中的第三个案例。这些漏洞都有一些因素使它们从今年发布的大约1,400个报告中脱颖而出。今天我们将分析一个Exchange漏洞,它允许任何经过身份验证的用户冒充Exchange Server上的其他用户。在ZDI的Dustin Childs 12月的

分析CVE-2018-8581:在Microsoft Exchange上冒充用户

前言

这是我们2018年Top 5趣案系列中的第三个案例。这些漏洞都有一些因素使它们从今年发布的大约1,400个报告中脱颖而出。今天我们将分析一个Exchange漏洞,它允许任何经过身份验证的用户冒充Exchange Server上的其他用户。

在ZDI的Dustin Childs 12月的 文章 中,他提到了一个Exchange漏洞,允许Exchange服务器上的任何用户冒充该Exchange服务器上的任何人。虽然这个漏洞可以用于一些内网的劫持,但这个漏洞更有可能被用于钓鱼活动、窃取数据或其他恶意软件操作。作为2018年Top 5趣案系列的一部分,本文深入研究了这个SSRF(服务器端请求伪造)漏洞的细节,并展示了冒充过程是如何实现的。

漏洞

该漏洞是由SSRF漏洞和其他漏洞相结合造成的。Exchange允许任何用户为推送订阅指定所需的URL,服务器将尝试向这个URL发送通知。问题出在Exchange服务器使用 CredentialCache.DefaultCredentials 进行连接:

分析CVE-2018-8581:在Microsoft Exchange上冒充用户

在Exchange Web服务中,CredentialCache.DefaultCredentials在NT AUTHORITYSYSTEM上运行。这将导致Exchange Server向攻击者的服务器发送NTLM散列。Exchange服务器还默认设置了以下注册表项:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaDisableLoopbackCheck = 1

这允许我们使用这些NTLM散列来进行HTTP身份验证。例如,可以使用这些散列来访问Exchange Web服务(EWS)。由于它在NT AUTHORITYSYSTEM级别运行,攻击者可以获得TokenSerializationRight的“特权”会话,然后可以使用SOAP请求头来冒充任何用户。

下面是这样一个SOAP请求头的例子,它用SID S-1-5-21-4187549019-2363330540-1546371449-500 冒充管理员。

分析CVE-2018-8581:在Microsoft Exchange上冒充用户

Exploit

为了演示,我们将使用几个 Python 脚本:

serverHTTP_relayNTLM.py – 通过入站连接获取NTLM散列并用于EWS身份验证

exch_EWS_pushSubscribe.py – 导致PushSubscription EWS调用serverHTTP_relayNTLM.py

你可以在 这里 下载这些脚本。你还需要python-NTLM模块。

漏洞的第一步是获取我们要冒充的用户的SID。一种可能的使用方法是这样的:

  1. 以授权用户身份登录OWA。在这里,我们以“攻击者”身份登录: 分析CVE-2018-8581:在Microsoft Exchange上冒充用户
  2. 接下来,创建任意新文件夹。在这个例子中,我们使用了temfold。点击context中“Permissions…”选项: 分析CVE-2018-8581:在Microsoft Exchange上冒充用户
  3. 在这里,添加要冒充的人的电子邮件。我们的目标是受害者 victim@contoso.local分析CVE-2018-8581:在Microsoft Exchange上冒充用户
  4. 现在我们需要按F12键并选择Network选项。然后在新文件夹中再次选择context中“Permissions…”选项。 分析CVE-2018-8581:在Microsoft Exchange上冒充用户
  5. 我们需要检查第一个 service.svc?action=GetFolder 请求的响应。查看方法:
    Body->ResponseMessages->Items->0->Folders->0->PermissionSet->Permissions->N->UserId->SID
    在这个例子中,N是2(最新的),但是你可以全部检查一遍以便找到正确的。PrimarySmtpAddress应该是理想的受害者。如果响应不包含PermissionSet项,则需要检查另一个 service.svc?action=GetFolder 请求。 分析CVE-2018-8581:在Microsoft Exchange上冒充用户
  6. 我们将在 serverHTTP_relayNTLM.py 中使用这个SID来冒充受害者。另外,我们还需要选择在攻击者控制的计算机上不太可能被阻止的TCP端口,这些端口将允许Exchange Server上的外部连接。例如,TCP端口8080可能可用。
    现在,让我们用真实信息更改 serverHTTP_relayNTLM.py 中的下一行: 分析CVE-2018-8581:在Microsoft Exchange上冒充用户 一旦脚本有了正确的变量,就可以启动了:
  7. 分析CVE-2018-8581:在Microsoft Exchange上冒充用户
  8. 下一步是在 Exch_EWS_PushSubscribe.py 脚本中设置适当的变量: 分析CVE-2018-8581:在Microsoft Exchange上冒充用户 一旦完成,我们就可以执行以下脚本:
  9. 分析CVE-2018-8581:在Microsoft Exchange上冒充用户
  10. 最后一步。我们需要一些事件触发推送通知。如果可以等待一段时间,或者我们也可以执行一些操作,比如创建和发送新的电子邮件,或者删除我们的新文件夹:
  11. 分析CVE-2018-8581:在Microsoft Exchange上冒充用户 如果成功,我们应该接收从Exchange服务器到 serverHTTP_relayNTLM.py 的入站连接: 分析CVE-2018-8581:在Microsoft Exchange上冒充用户

如果攻击成功,我们将在最后一个响应中看到 UpdateInboxRulesResponse ResponseClass=“Success” 。这意味着入站规则已添加到受害者邮箱中,所有入站电子邮件都将转发给攻击者。

现在一切就绪,是时候测试了。我们需要从任意帐户向受害者发送电子邮件,但与我们新规则中的目的地不相同(在本例是 attacker@contoso.local ),因为如果源和目的地是相同的地址,则该规则不会转发电子邮件。让我们以管理员身份登录并向受害者发送一些“敏感”信息:

分析CVE-2018-8581:在Microsoft Exchange上冒充用户

检查攻击者的收件箱,我们看到消息成功转发:

分析CVE-2018-8581:在Microsoft Exchange上冒充用户

正如我们所看到的,新的邮件被转发给攻击者。类似的结果可以通过其他EWS API实现,比如AddDelegate或将编辑权限分配给目标文件夹。

修补

微软将该漏洞分配为CVE-2018-8581,并在11月份发布时给出 缓解措施 。实际上这个漏洞还没有修补程序。相反,Microsoft强调应该删除注册表项。删除这个键可启用回送检查。回想上面的内容,Exchange服务器默认设置了以下注册表项:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaDisableLoopbackCheck = 1

如果删除 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaDisableLoopbackCheck 键,则漏洞不可以。若要删除注册表项,请在CMD窗口中输入以下命令:

分析CVE-2018-8581:在Microsoft Exchange上冒充用户

删除密钥后不需要重新启动或Exchange Server。公告指出,将来Exchange的更新在默认情况下将不再启用注册表项。

结论

电子邮件已经成为我们商业生活的核心组成部分,Exchange Server多年来一直是一个热门的目标。该漏洞允许冒充用户,通过以前报告的 漏洞 允许任意代码执行。这两种情况都表明,有时最大的安全风险来自内部。这些漏洞还展示了外部攻击者如何从单个入口点在整个企业中扩散。


以上所述就是小编给大家介绍的《分析CVE-2018-8581:在Microsoft Exchange上冒充用户》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

掘金大数据

掘金大数据

程新洲、朱常波、晁昆 / 机械工业出版社 / 2019-1 / 59.00元

在数据横向融合的时代,充分挖掘数据金矿及盘活数据资产,是企业发展和转型的关键所在。电信运营商以其数据特殊性,必将成为大数据领域的领航者、生力军。各行业的大数据从业者要如何从电信业的大数据中挖掘价值呢? 本书彻底揭开电信运营商数据的神秘面纱,系统介绍了大数据的发展历程,主要的数据挖掘方法,电信运营商在网络运行及业务运营方面的数据资源特征,基于用户、业务、网络、终端及内在联系的电信运营商大数据分......一起来看看 《掘金大数据》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具