白帽故事 · 2023年8月13日 0

【$40,000】AAD配置错误导致必应结果篡改与微软帐户接管

背景介绍

今天向各位分享 Wiz Research 发现微软AAD一个常见的错误配置,从而导致多个微软应用程序,甚至包括Bing账户接管的故事。

从Amazon Cognito到Google Firebase 再到 Microsoft Azure Active Directory,市场上有许多基于云的身份提供商,可满足各种业务需求,每个IdP的复杂性都会导致错误配置,攻击者可能会利用这些错误配置来危害组织的生产环境。

在本文中,将演示Microsoft本身如何成为AAD配置的牺牲品,并无意中将内部应用程序暴露给外部攻击者,这些应用程序允许攻击者查看和更改各类敏感数据。

在一个特定的案例中,攻击者能够操纵 bing.com 上的搜索结果,并对Bing用户执行XSS攻击,从而暴露用户的 Office 365数据,如电子邮件、聊天记录和文档。

Azure Active Directory

微软在Azure中提供自己的SSO服务AAD,这是在Azure应用服务或Azure功能中创建应用程序最常见的身份验证机制,AAD提供不同类型的账户访问:单租户、多租户、个人账户或后两者的组合。单租户应用程序只允许来自同一租户的用户为应用程序颁发OAuth令牌,另一方面,多租户应用程序允许任何Azure租户为其颁发OAuth令牌。因此,应用程序开发人员必须检查其代码中的令牌,并决定应允许哪个用户登录。

在Azure APP Services和Azure Functions中,我们看到了共享责任混乱的教科书般示例,这些托管服务使用户能够通过单击按钮来添加身份验证功能,这对应用程序所有者来说是一个看似顺利的过程,但是,该服务仅确保令牌的有效性,应用程序所有者并不清楚他们是否通过OAuth声明验证用户的身份并相应地提供访问权限。

使用单租户身份验证,影响仅限于应用程序的租户,即来自同一租户的所有用户都可以连接到应用程序。

但是对于多租户应用程序,暴露的范围很广,即没有适当的验证,任何Azure用户都可以登录到应用程序。

file
在Azure应用服务中配置租用

这种复杂的架构对于开发人员来说并不总是显而易见的,并且验证最终用户令牌的责任也不清楚,因此,配置和验证错误非常普遍。

在认识到这些问题及其潜在影响后,Wiz Research开始在互联网上扫描暴露的应用程序,结果令他们大吃一惊:扫描的所有多租户应用程序中有25%容易受到身份验证绕过攻击。

BingBang案例研究

第1部分-侦查

为了衡量这种错误配置的常见程度,Wiz Research开始扫描Azure App Services和Azure Functions以查找暴露的端点,扫描发现了许多潜在的易受攻击的网站,因此为了缩小研究范围,他们决定将重点放在微软自己的租户上。

他们发现了几个微软的应用程序,第一个引起注意的是 bingtrivia.azurewebsites.net 。鉴于必应是一个非常受欢迎的产品,为了验证暴露,他们在自己的租户中创建了一个名为“Wiz Research”的新用户,并尝试使用它登录Bing Trivia。
file

多租户身份验证允许任何Azure用户颁发OAuth令牌

尽管不属于微软租户,但依然成功登录并进入了Bing Trivia主页。看着下面的页面,乍一看,似乎有点不起眼,只是一个简单的CMS。

file
Bing Trivia管理面板

鉴于应用程序名为“Bing Trivia”,假设它是为‘琐事’内容而设计的。然而,在浏览该应用程序时,注意到几个与必应核心内容相关的有趣部分,其中一个部分是“旋转木马”部分,其中包含了Bing上出现的搜索结果建议的表格,另一个部分展示了测验和背景图片,出现在Bing.com主页上,这就出现了一个问题-这个面板能够修改必应的搜索结果吗?

file
在Bing Trivia中查看每日壁纸

file

在Bing.com查看相同的壁纸

第2部分-更改搜索结果

为了验证控制必应搜索结果的能力,他们在CMS中选择了一个轮播,并对其内容进行了轻微的修改,他们选择了“bestsoundtracks”查询,它返回了一个高度推荐的电影配乐列表,然后他们将第一个项目“沙丘(2021)”更改为他们最喜欢的“黑客(1995)”。

file
在Bing Trivia中修改搜索结果

新的搜索结果立即出现在了必应,并带有修改的新标题、缩略图和任意链接!

file
电影《沙丘》被电影《黑客帝国》取代

这证明可以控制必应的搜索结果,正如后面证实的那样,这种控制也扩展到了必应的主页内容。

为了确定攻击面的广度,他们决定利用这种访问并使用无害的PoC样本测试XSS的可行性,PoC按预期运行,他们立即向微软报告了这一发现。

第3部分-攻击必应用户

在撰写漏洞报告时,他们开始调查XSS影响,他们发现必应有一个“Work”部分,可以让你搜索你的组织目录;在检查此功能时,他们意识到这是基于Office 365 API的,其中 business.bing.com 主机名由必应用于Office相关通信。

这立刻激起了他们的兴趣,因为许多组织使用Office 365来存储最敏感的业务数据,一个特定的端点为Office 365 API创建了JWT令牌,因此他们通过此端点生成了一个新的XSS PoC:

file
XSS PoC,代表用户发布Office 365令牌

然后,他们针对旧的注入点测试了这个PoC,并从“受害者”用户(在本例中为研究账户)检索了一个有效的令牌。

file
XSS攻击的受害者视图-窃取用户的Office 365令牌

此令牌能够作为“攻击者”获取受害者的Office 365数据,包括Outlook电子邮件,日历,团队消息、SharePoint文档和OneDrive文件,可以成功地从受害者的收件箱中阅读电子邮件:

file
XSS攻击的攻击者视图-阅读受害者Outlook电子邮件

一个拥有同样权限的恶意行为者可能已经用同样的PoC劫持了搜索结果,并泄露了数百万用户的敏感数据,根据SimilarWeb的数据,必应是世界上访问量排名第27的网站,每月有超过10亿的页面访问量–换句话说,数百万用户可能已经暴露在恶意搜索结果和Office 365数据被盗的情况下。

其他易受攻击的应用程序

除了Bing Trivia应用程序之外,他们还发现了微软其它几个内部应用程序,这些应用程序具有类似的错误配置并暴露给任何试图登录的人:

Mag新闻:MSN新闻通讯的控制面板,能够从受信任的微软电子邮件向大量受众发送任意电子邮件。

file

CNS API:用于微软中央通知服务的API,能够阅读和发送内部通知给微软开发人员。

file

联系中心:微软联系中心API,用于控制微软客户代表的呼叫中心代理。

file

PoliCheck:PoliCheck是微软内部工具,用于检查微软代码中的禁用词,该应用程序本质上是PoliCheck规则的集中式数据库,规则包括100多种语言的单词,从亵渎、诽谤到地缘政治和法律争议问题。

file

Power Automate博客:一个WordPress管理面板,控制一个非常活跃的博客 powerautomate.microsoft.com ,该面板允许创建和编辑带有任意HTML内容的帖子,并将其发布到可信的Microsoft.com域。

file

COSMOS:一个文件管理系统,管理超过4兆字节的微软内部文件,COSMOS按微软部门和团队对文件进行分类,并支持应用内文件列表、阅读和编辑。

file

所有这些问题均已向微软报告,微软团队及时修复了这些漏洞,并奖励了Wiz Research 团队4万美元的漏洞奖金,Wiz Research将会捐出这笔钱。

感谢阅读,如果觉得有所收获的话,欢迎分享给更多喜爱的朋友们~