在 Copilot Studio 的帮助下实现SSRF【部分】

文摘   2024-08-28 00:02   上海  

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。


博客新域名:https://gugesay.com

不想错过任何消息?设置星标↓ ↓ ↓


前言

国外 安全研究团队 Tenable Research 通过服务器端请求伪造 (SSRF) 发现了 Microsoft Copilot Studio 中的一个关键信息泄露漏洞,该漏洞允许研究人员访问有关服务内部的潜在敏感信息,并具有潜在的跨租户影响。

本文将研究 Copilot Studio 中的服务器端请求伪造 (SSRF) 漏洞,该漏洞利用 Copilot 发出外部 Web 请求的能力,结合 SSRF 保护绕过,利用该漏洞来访问 Microsoft Copilot Studio 的内部基础设施,包括实例元数据服务 (IMDS) 和内部 Cosmos DB 实例。

在开始之前,我们先介绍一些背景知识。

背景知识

最近,Tenable Research 团队正在研究 Azure AI Studio 和 Azure ML Studio 的 API 中的几个 SSRF 漏洞,但这些漏洞均已被微软修补。

因此,研究人员对 Studio 的另一个区域进行了研究,确定在一个单独但类似的 API 中存在 SSRF 保护绕过,于是他们向微软安全响应中心(MSRC)报告了这一情况。

当攻击者能够以意外方式发出服务器端 HTTP 请求时,就会出现 SSRF 漏洞。

例如,许多处理数据分析或机器学习的现代 应用程序的一个常见功能是集成来自外部服务的数据。为此,应用程序需要发出 HTTP 请求来连接到这些外部服务 API。

如果攻击者能够控制这些请求的目标,他们就可以将请求指向服务器端应用程序有权访问的内部敏感资源(即使攻击者没有权限),从而泄露潜在的敏感信息。

在云应用程序的上下文中,一个常见的目标是 IMDS,根据云平台,它可以为攻击者提供有用的、潜在的敏感信息( Azure 、 AWSGoogle都有自己的版本)、localhost、或其他内部基础设施。因此,许多可能导致 SSRF 漏洞的功能会阻止该功能针对 IMDS 和不可路由的 IP,但有限制就有绕过

对于 Azure AI Studio 和 Azure ML Studio,虽然会阻止针对 localhost/127.0.0.1 的请求,但我们可以将请求指向攻击者控制的服务器,然后该服务器将使用 HTTP 301(或 302)将服务器的请求重定向回 localhost/127.0.0.1。

通过这种方式,就能够绕过限制,并从 127.0.0.1:4191(Linkerd 相关指标端点)获取敏感信息,例如网络上的其他主机和端点。

Copilot Studio HttpRequestActions

微软的 Copilot Studio 构建在其 Power Platform 之上,因此是一款非常酷的产品,可让用户构建自定义 Copilot – 对话 应用程序,也可让用户执行各种大型语言模型(LLM )以及利用从 Microsoft 365 环境提取的数据或 Power Platform 环境可以访问的任何其他数据的生成式 AI 任务。

创建新的 Copilot 时,用户可以定义主题,它允许你指定用户可以对你的 Copilot 说的关键短语,这可能导致 AI 以特定方式做出响应或采取某些操作。

第一次探索此功能时,研究人员注意到,当由关键短语触发时,可以执行的操作之一是 HTTP 请求。

这很令人兴奋,每当云服务提供执行 HTTP 请求的选项时,记得务必进行一些测试。

更让人兴奋的是,此 HttpRequestAction(在主题代码编辑器视图中如此命名)允许控制 HTTP 请求header,这对于针对 IMDS 进行测试非常方便,因为它需要特殊的请求header。

对于初始测试,并了解 Copilot 发出的请求,我们可以向 HttpRequestAction 添加header并向 Burp Collaborator 实例发出请求。

Burp Collaborator 很快就显示了从 Azure IP 地址发出的请求,其中包括测试的header,以及一些未添加的与 Azure 服务相关的header。

击中 IMDS

既然可以发出请求,那么就可以尝试请求一些有趣的云资源,例如之前提到的 IMDS。

不幸的是,将请求指向 URL http://169.254.169.254/metadata/instance?api-version=2021-02-01 发送请求会产生系统错误响应。

当尝试一些常见的 SSRF 保护绕过技术时,情况也是如此。

  • 使用十进制值作为 IP 地址 (169.254.169.254 == 2852039166)

  • 请求解析为 169.254.169.254 的域,而不是直接请求 IP 地址

研究人员尝试的下一个绕过方法是将 HttpRequestAction 指向自己控制的服务器,并发送指向受限主机的 301 重定向响应。

使用自己控制的服务器将请求重定向到...

加入星球,完整阅读:


(前50位成员):99元/年
(后续会员定价):128元/年

感谢阅读,如果觉得还不错的话,欢迎分享给更多喜爱的朋友~

====正文结束====

骨哥说事
一个喜爱鼓捣的技术宅
 最新文章