Loading
0

OWA和Offic365双因子认证绕过

前言
全面公布:BLACK HILLS信息安全非常赞成负责任地公布漏洞。2016年9月28日我向微软报告了这个漏洞,可一直到这篇文章发布(2016.11.2)期间,微软对于此漏洞始终没有任何的反应,除了这句"目前还未有进展"。漏洞发布整个过程的时间表,可以在文章末看到。
漏洞分析
美国时间下午3点更新:这篇文章讲述了如何绕过微软网页版Outlook的双因子认证(它由第三方DUO Security公司提供)。首先说明一点:这次的漏洞不是DUO Security公司的产品引起的。而是由于双因子认证没有起到对微软的Exchange服务器的保护作用,进而导致Exchange服务器的Web接口暴露。
在第六届的DerbyCon会议上,我公开了一个叫做MailSniper的工具,它可以用来爬取微软的Exchange服务器上有关邮箱的敏感信息。MailSniper的工作原理是当连接到Exchange Web serveices(EWS)服务器上的时候,会尝试获取用户的收件箱。EWS是一个Web接口,当用户在部署客户端的时候,微软建议使用EWS来和Exchange服务器交互。当使用EWS之后,应用就可以从用户的收件箱获取的邮箱信息,联系人,日历等。
在DerbyCon的会议上,我听了Nick Landers的对于Hacker,Outlook和Exchange可以做什么的演讲。这是一个超级棒的演讲,并且我推荐你去听一下。在他的演讲中,Nick收到一个观众的提问:双因子验证(2FA)是否就可以防止黑客攻击?Nick由此讲述了一个非常有趣的观点,他说:“我曾经看到过某些公司在OWA(Outlook网页版)上关闭了双因子验证,所以在OWA上面登录的时候,你必须提供一个令牌。但是这样就有被攻击的危险:因为双因子验证实际并没有起到应有的作用。
所以我猜想如果EWS没有使用双因子验证,那么利用它,使用MailSniper就有可能读取到用户的邮件,完全绕过双因子安全验证。
我来验证这个想法,我设置了网页登录OWA,并且安装了DUO security公司的双因子验证软件--Duo for Outlook。我在手机上设置了DUO的移动应用,并且登录OWA使用测试用户账户"vladi@eldershogun.com"。

在使用我的手机同步了DUO之后,如果我登录账户认证,我的手机就可以收到的确认通知。这一步完成之后,如果我是黑客,同时没有手机同步DUO软件的双因子验证,在登录OWA之后我就不可能有其他进展了。

在此之前,MailSniper只有在设置了主机域名之后才可以工作。我修改了部分代码,添加了"-Remote"选项,这样Invoke-Selfsearch函数就可以远程工作。另外还需要修改才可以获取收件箱。首先,需要确定公司使用的外部邮箱服务器。一般情况来说,可以使用Autodiscover搜索,或者爆破子域名比如:mail.domain.com,owa.domain.com,webmail.domain.com等。邮箱服务器需要使用'-ExechHostname'参数来指定。如果这个参数没有指定,Invoke-selfSearch就会自动尝试获取邮箱服务器。其次,用户的密码凭证需要先收集起来。更多需要注意的地方可以看这篇博客。
一旦Exchange服务器和用户的密码凭证收集之后,下面的命令可以用来在网络上寻找邮箱。
1
Invoke-SelfSearch -Mailbox email@domain.com -ExchHostname mail.domain.com -Remote
上面的命令运行之后,授权凭证窗口就会出现,要求输入目标用户的登陆凭证。这里是输入内部邮箱地址还是输入域帐号取决于该组织的设定。
在用户凭证输入之后,MailSniper会尝试连接EWS的这个URL:https://mail.domain.com/EWS/Exchange.asmx。并且在用户的收件箱搜索相关关键词内容(默认是密码,凭证,证书)。
我使用这种方法在设置了DUO双因子验证的账户上尝试攻击。MailSniper可以成功绕过双因子验证并且搜索到相关邮件。

为了更深入证明这个不是DUO双因子验证的问题,BHIS公司设置了Office365并且利用微软自己的工具Azure Multi-Factor Autoentication(MFA)来保护用户从Office365登录到Outlook邮箱。
演示如下:我首先在网页端登录到测试用户的Office 365账户。

在输入了正确的账户密码之后,微软的MFA验证是必须的。在这种情况下,我让他给我的手机发送一条短信验证码。

在MFA确认了验证码之后,测试用户账户可以查看Outlook.Office.com上面的收件箱。

使用先前描述的方法使用EWS绕过双因子验证仍然有效。在MailSniper验证了outlook.office365.com密码之后,攻击者仍然可以绕过双因子验证来读取用户的收件箱。

演示视频
建议
我想最简单的解决方法就是废掉Exchange Web Services, 但这也会毁掉很多东西。比如,Mac上的Outlook只能通过Exchange Web Service连接到Exchange,这种情况废掉EWS可能不是一个好办法。任何客户端APP利用EWS也是这样的情况。所以,短期来讲,限定OWA只能从内网访问,同时允许用户VPN访问。对于某个用户帐户或整个团体手动限定EWS是可能的。但是,要记得任何使用app的用户,通过EWS连接到Exchange的可能会连接失败。

分页阅读: 1 2
【声明】:8090安全小组门户(http://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。