通常Microsoft Exchange使用Autodiscover协议配置客户端(如Microsoft Outlook),但它有一个设计缺陷,可导致web请求泄露至域外。
研究人员在服务器上配置了多个Autodiscover域名,在2021年4月16日至2021年8月25日期间检测到372072个外泄的Windows域凭据,96671个从各种应用程序泄漏的凭据。
这是一个严重的安全问题,如果攻击者能够控制此类域名,或者能够“嗅探”同一网络中的通信流量,则可以捕获域凭据。
漏洞简介
泄漏的凭据是向Microsoft Exchange服务器进行身份验证的Windows域凭据。此问题由微软的Autodiscover协议引发。Microsoft的Autodiscover协议旨在简化Exchange客户端(如Microsoft Outlook)配置,使用户能够仅通过用户名和密码来配置客户端,而用户配置的登录到Exchange的凭证基本上都是域凭证,导致此类漏洞影响巨大。
2017年,Shape Security的研究人员发表了一篇关于手机电子邮件客户端此类漏洞的文章(CVE-2016-9940,CVE-2017-2414)。
Autodiscover
Exchange的Autodiscover为客户提供一种简便配置Exchange客户端的方法。用户必须配置用户名和密码、服务器主机名/IP地址。在某些情况下,还需要其他设置(LDAP设置、WebDAV日历等)。
用户向Outlook添加新的Microsoft Exchange帐户,用户需要输入用户名和密码:
用户填写详细信息后,Outlook将尝试使用Autodiscover来配置客户端。
客户端解析用户提供的电子邮件地址[email protected],尝试根据电子邮件构建Autodiscover URL:
https://Autodiscover.example.com/Autodiscover/Autodiscover.xml
http://Autodiscover.example.com/Autodiscover/Autodiscover.xml
https://example.com/Autodiscover/Autodiscover.xml
http://example.com/Autodiscover/Autodiscover.xml
如果这些URL都没有响应,Autodiscover将启动其“back-off”。“back-off”机制正是这次造成漏洞的罪魁祸首,失败后下一次构建的URL将是:http://Autodiscover.com/Autodiscover/Autodiscover.xml,因此拥有Autodiscover.com的人将收到所有请求。
漏洞复现
研究人员购买了以下域名:
Autodiscover.com.br–巴西
Autodiscover.com.cn–中国
Autodiscover.com.co–哥伦比亚
Autodiscover.es–西班牙
Autodiscover.fr–法国
Autodiscover.in–印度
Autodiscover.it–意大利
Autodiscover.sg–新加坡
Autodiscover.uk–英国
Autodiscover.xyz
Autodiscover.online
将域名指向web端服务器,等待web请求。研究人员收到大量来自不同域、IP地址和客户端的请求。嗅探到的数据中请求了/Autodiscover/Autodiscover.xml的相对路径,头部填充了凭据。
通常,web请求不应盲目地进行预身份验证,而应遵循HTTP身份验证过程:
1、客户端请求访问受保护的资源。
2、web服务器请求用户名和密码。
3、客户端向服务器提交用户名和密码。
4、服务器验证用户并返回请求的资源。
从日志中可以看出,hostname是客户端试图通过身份验证的域名,还包括用户名和密码:
2021–05–18 03:30:45 W3SVC1 instance-2 10.142.0.4 GET /Autodiscover/Autodiscover.xml – 80 –
HTTP/1.1 Microsoft+Office/16.0+(Windows+NT+10.0;+Microsoft+Outlook+16.0.13901;+Pro) – - 404 0 2 1383 301 265 Basic+ = – –
2021–05–18 03:30:52 W3SVC1 instance-2 10.142.0.4 GET /Autodiscover/Autodiscover.xml – 80 –HTTP/1.1 Microsoft+Office/16.0+(Windows+NT+10.0;+Microsoft+Outlook+16.0.13901;+Pro) – – 404 0 2 1383 301 296 Basic+ – –
2021–05–18 03:30:55 W3SVC1 instance-2 10.142.0.4 GET /Autodiscover/Autodiscover.xml – 80 –HTTP/1.1 Microsoft+Office/16.0+(Windows+NT+10.0;+Microsoft+Outlook+16.0.13901;+Pro) – – 404 0 2 1383 296 328 Basic+ – –
2021–05–18 03:31:19 W3SVC1 instance-2 10.142.0.4 GET /Autodiscover/Autodiscover.xml – 80 –HTTP/1.1 Microsoft+Office/16.0+(Windows+NT+10.0;+Microsoft+Outlook+16.0.13901;+Pro) – – 404 0 2 1383 306 234 Basic+ – –
在发送身份验证请求之前,客户端并没有检查资源是否可用,服务器上是否存在资源。客户端在收到服务器的HTTP 401响应后成功降级并发送认证信息:
当受害者被重定向到研究人员的服务器时,会弹出一个安全警报:
虽然证书有效,但它是自签名的,但是部署实际的SSL证书,可以轻松避免这种情况。
在2021年4月16日至2021年8月25日期间,研究人员通过这种方式捕获了大量凭据:
行业分布如下:
原文链接:
https://www.guardicore.com/labs/autodiscovering-the-great-leak/
精彩推荐
原文始发于微信公众号(FreeBuf):Autodiscover漏洞分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论