微软Teams漏洞深度剖析:揭秘身份冒用与通知欺骗攻击

本文深入披露了Check Point研究团队在Microsoft Teams中发现的四个安全漏洞。攻击者可利用这些漏洞冒用高管身份、篡改已发送消息、伪造通知,甚至在音视频通话中伪装身份。文章详细分析了漏洞的技术原理、攻击场景,并提供了风险缓解策略。

利用微软Teams:身份冒用与欺骗漏洞曝光

By Andrey Charikov and Oded Vanunu

关键发现:

  • Check Point 研究团队发现了微软 Teams 中的四个漏洞,攻击者可以利用这些漏洞冒充高管、操纵消息、更改通知以及在视频和音频通话中伪造身份。
  • 外部访客用户和恶意的内部人员都可能利用这些缺陷,从根本上破坏了全球超过 3.2 亿用户所使用平台的信任基础。
  • 现实风险包括高管冒充、金融欺诈、恶意软件投递、虚假信息活动以及敏感通信的中断。
  • Check Point 研究团队于 2024 年 3 月 23 日向微软负责任地披露了这些漏洞。微软确认了报告并进行了调查,随后针对报告的问题发布了修复程序。截至 2025 年 10 月底,所有漏洞均已解决,微软官方将其中之一——通知欺骗漏洞——追踪为 CVE-2024-38197

微软 Teams 自 2017 年 3 月推出以来,已成为全球使用最广泛的沟通与协作平台之一。作为 Microsoft 365 家族的一部分,Teams 为工作场所提供聊天、视频会议、文件存储和应用程序集成服务,月活跃用户超过 3.2 亿。从全球最大的企业到中小型企业,Teams 已成为现代工作场所通信的关键支柱。

我们的研究揭示了 Teams 中一系列破坏这些可信通信渠道的漏洞。我们发现,外部访客用户和恶意的内部人员都可以操纵消息、冒充高管,甚至伪造通知。实际上,这意味着攻击者可以访客身份进入,并令人信服地伪装成 CEO,这是组织机构赖以安全运作的信任基础的彻底崩溃。

不断演变的威胁格局

近年来,我们目睹了复杂的威胁行为者,包括国家资助的组织和国家行为体,越来越多地将协作平台和通信工具作为更广泛间谍活动和数据外泄行动的一部分进行攻击。这些高级持续性威胁(APT)组织表现出了对以下方面的特别兴趣:

  • 针对广泛使用软件平台的供应链攻击
  • 利用可信通信渠道的社会工程活动
  • 利用对熟悉界面的信任的**商业电子邮件入侵(BEC)**攻击
  • 针对远程工作工具的凭据窃取行动

如今,威胁行为者利用用户对熟悉的通信和工作空间界面的固有信任,使用社会工程策略,通过组织日常运营所依赖的平台来操纵员工。

近期的情报报告强调了这些威胁行为者如何专门针对远程工作基础设施,认识到通信平台已成为关键的业务基础设施。鉴于这种不断演变的威胁格局,Check Point 研究团队着手调查广泛使用的工作空间工具中潜在的安全缺口。作为针对这些平台更广泛研究计划的一部分,我们检查了 Microsoft Teams,以确定其信任机制如何被颠覆。此处提出的发现将 Teams 作为一个更广泛问题的例证:攻击者利用对现代工作空间工具信任的方式。

我们的研究发现

我们从两个关键的攻击角度进行了这项研究:试图渗透组织的外部访客用户,以及寻求滥用其现有访问权限的内部恶意用户(例如受感染的员工或内部威胁)。

我们的研究揭示了 Microsoft Teams 内的几个漏洞,这些漏洞可能被利用来操纵消息内容和发送者身份、更改通知外观。最关键的是,我们发现外部访客用户和内部恶意行为者都可以有效地改变其身份,使其看起来像受信任的人员(包括高管),从根本上打破了组织依赖以确保通信安全的信任边界。

这些发现意义重大,不仅证明了理论风险,还展示了可用于虚假信息、冒充和隐私泄露的实际漏洞。无论是从外部访客用户开始,还是作为恶意内部人员操作,攻击者都可以无缝地转变为看似可信的权威人物,可能诱使员工相信他们正在与 CEO、财务总监或其他高级权威人物进行沟通。

具体来说,我们能够:

  • 无痕编辑消息:我们发现了一种修改已发送消息内容而不留下通常的"已编辑"标签的方法。
  • 操纵消息通知:我们的研究发现了一种更改消息表面发送者的技术,例如,能够显示来自 CEO 等高知名度人士的通知,从而利用通常与此类通信相关的信任和紧迫感。
  • 通过私聊会话主题更改显示名称:我们发现了一个漏洞,允许攻击者通过修改会话主题来更改私聊会话中的显示名称。双方参与者都会看到更改后的主题作为会话名称,可能会误导他们对会话内容的理解。
  • 在视频/音频通话中伪造呼叫者身份:我们发现,通过特定操纵通话发起请求,可以任意修改通话通知(以及通话期间)中使用的显示名称。此缺陷允许攻击者伪造呼叫者身份,向通话接收者呈现任何选定的名称。

这些漏洞共同展示了攻击者如何侵蚀使协作工作空间工具有效运作的基本信任,将 Teams 从业务推动者转变为欺骗的媒介。

微软此前已将 CVE-2024-38197 披露为 Microsoft Teams iOS 版中一个中等严重性的欺骗问题,指出早期客户端版本未正确验证消息发送者字段,因此可能在有限情况下歪曲用户身份。我们的研究扩展了这些发现,展示了一个更具影响力的利用路径:我们开发了一个概念验证,展示了恶意机器人或 Webhook 如何制作包含伪造"from"属性的载荷,使其在 Teams 界面中令人信服地呈现为受信任用户。这种扩展不仅突出了定向冒充的实际风险,还凸显了 Teams 客户端跨平台更严格验证控制的更广泛需求。

技术深度剖析

虽然 Microsoft Teams 提供了功能相似的网页版和应用程序版本,但我们的研究集中在网页版上。该版本与其应用程序版本一样,接受和处理用于各种操作(例如发送消息和拨打电话)的 JSON 载荷。

理解 Teams 消息传递架构

当发送消息时,请求正文中包含几个参数:

  • content:消息的实际文本,由 HTML 标签包围。
  • messagetype:对于标准文本消息,这通常设置为 RichText/Html。然而,对于其他操作(如添加新用户或发起新会话),此参数会更改以反映正在执行的具体操作。
  • clientmessageid:每个用户消息的唯一标识符,确保可以单独跟踪和管理每条消息。
  • imdisplayname:发送消息用户的显示名称,允许接收者看到消息来自谁。

发送 POST 请求后,响应中包含 OriginalArrivalTime 参数,该参数携带一个 Unix 时间戳值,这对于发送后修改消息(例如编辑、删除或引用自己或他人的消息)的操作至关重要。

此外,获得的另一个关键信息是分配给每个用户的唯一 UUID。可以通过获取特定用户的会话或其消息(无论是来自私聊还是群聊)来找到它:

(从上面截图中可以看到它以 8:orgid:37f85325... 开头)

此 UUID 对于在系统内识别用户至关重要,并在我们将探讨的漏洞中扮演重要角色。

消息操纵技术

让我们从基础开始,探索我们可以对自己的消息进行哪些修改。如前所述,当我们发送消息时,我们包含一个 clientmessageid 参数(连同消息内容),并收到 OriginalArrivalTime 参数的 Unix 时间戳值:

1
2
OriginalArrivalTime: 1709414616944
clientmessageid: 2711247313308716623

检索整个聊天历史记录后,我们可以看到这些值:

(截图显示了包含这些值的消息结构)

现在,让我们尝试直接在 MS Teams 中编辑我们的消息。不幸的是,此操作会导致"已编辑"标签出现在我们的消息上方。为了绕过这一点,我们可以制作一条新消息,并用之前消息中的值 2711247313308716623 替换 clientmessageid。这种方法有效地掩盖了我们的编辑,使其他人无法察觉。

操纵通知

无论是在手机应用程序还是电脑上,这些警报都会立即吸引我们的注意力,尤其是当它们暗示来自组织内关键人物的消息时。例如,收到暗示消息来自 CEO 或其他高级官员的通知,本质上要求更高程度的紧迫性和重要性。这种心理效应使得通知不仅具有信息性,而且具有影响力。

在每个发送的消息中,都有一个名为 imdisplayname 的参数,默认情况下显示发送者的姓名:

(截图显示了默认的 imdisplayname 参数)

通过调查,我们发现这个参数可以被更改为任何期望的值。这种操纵导致接收者收到一个看似来自实际发送者以外的人的通知:

(截图显示了被篡改的 imdisplayname 参数)

结果:

(截图显示了伪造发送者的通知显示效果)

更改私聊中的显示名称

Microsoft Teams 提供了通过特定的 PUT 端点更新群聊中会话主题的功能。此功能旨在帮助用户更有效地组织和识别他们的聊天。

1
PUT /api/chatsvc/emea/v1/threads/<Conversation ID>/properties?name=topic

通过操纵对此端点的请求,不仅可以更改群聊中的会话主题(这是预期且允许的),令人惊讶的是,在私人会话中也可以更改。

对于私聊——两个人之间的直接对话——考虑到私聊在传统意义上没有"主题",更改主题本应受到限制或不适用。

更改前:

(截图显示了私聊的原始主题/显示名)

更改后:

(截图显示了被篡改后的私聊主题/显示名)

这种更改一旦执行,可能会误导用户,使他们相信自己正在与不同的人进行对话。

在视频/音频通话中伪造呼叫者身份

我们发现,通过特定操纵通话发起请求,可以任意修改通话通知中使用的显示名称。此缺陷允许攻击者伪造呼叫者身份,向通话接收者呈现任何选定的名称。

在通话发起阶段,一个 JSON 载荷被发送到:

1
POST /api/v2/epconv

包含定义通话特性的各种参数。其中,“participants"部分内的"displayName"参数特别值得关注。该参数旨在显示呼叫者在接收者面前的姓名。

通过修改载荷中的"displayName"值,我们能够改变呼叫者的表面身份。例如,将其更改为任意名称,会导致通话接收者看到来自修改后名称的来电,而不是呼叫者的真实身份:

(截图显示了被篡改的 displayName 参数)

这导致了:

(截图显示了伪造身份的通话邀请界面)

现实世界攻击场景

这些漏洞创造了几个令人担忧的攻击场景,这些场景与复杂威胁行为者(包括国家行为体)使用的技术相符:

高管冒充与社会工程 攻击者可以严重冒充他人,使消息看起来是由他人发送的。在私聊中,恶意访客用户可以冒充内部人员,例如财务部门的成员。通知可以被欺骗以显示虚假的发送者姓名,利用信任官方通知(可能来自权威人物或高层管理人员)的本能。

高级持续性威胁与数据外泄 这些攻击可以直接促进更严重的恶意活动,这些活动常见于国家层面的攻击活动中:

  • 恶意软件投递:攻击者可以发送看似来自受信任来源(如高层管理人员)的欺骗性通知,要求紧急行动或点击链接,从而安装恶意软件。
  • 凭据窃取/欺诈:通过冒充内部人员(尤其是财务人员),攻击者可以通过假装讨论预算数字或其他敏感信息来钓取敏感数据或实施欺诈。
  • 虚假信息活动:创建虚假消息历史记录和破坏对话完整性的能力,使得开展虚假信息活动成为可能。
  • 隐私泄露:整体漏洞影响包括隐私泄露。
  • 简报干扰:在 Teams 上主持的敏感简报期间冒充个人的能力,可能传播混乱或诱使参与者泄露敏感信息。这意味着任何参与高风险沟通的角色都面临广泛的风险。

风险缓解策略

组织如何降低风险 微软已针对我们报告的 Teams 漏洞进行了修复,用户无需采取任何行动。然而,协作平台仅提供原生安全性的基线,我们的研究表明这一层可以被绕过。

为了防止信任被利用,组织需要一个额外的防御层,包括:

  • 零信任访问控制 – 持续验证用户身份和设备状态,而不仅仅是在登录时。
  • 高级威胁防护 – 检查在协作应用程序内共享的文件、链接和载荷。
  • 数据丢失防护(DLP) – 强制执行细粒度策略以防止未经授权的数据外泄。
  • 用户意识和验证协议 – 培训员工质疑高风险请求,并对敏感操作使用带外验证。

保护现代工作场所需要超越协作平台原生提供的安全性。只有通过第二层、多层次的防御,组织才能保障保持业务运转的通信、数据和信任。

加入我们的网络研讨会,深入了解研究结果和实用防御措施:

https://pages.checkpoint.com/2025-nov-ww-critical-microsoft-teams-vulnerabilities-uncovered.html

组织如何降低风险 微软已针对我们报告的 Teams 漏洞进行了修复。

然而,我们发现的漏洞强调了行为实践对于减少暴露的重要性:

  • 批判性思维:我们的研究比以往任何时候都更突出地表明持续需要批判性思维。用户应始终质疑他们在网上看到和听到的内容,即使它似乎来自他们通常信任的来源。
  • 数字意识:理解这些特定的攻击向量对于提高数字意识至关重要。组织应教育其团队了解这些特定的操纵技术。
  • 验证协议:鉴于这些漏洞的易利用性,组织应为敏感通信(尤其是涉及金融交易或敏感数据的通信)实施带外验证方法。

披露时间线

  • 2024 年 3 月 23 日 – 漏洞向微软披露。
  • 2024 年 3 月 25 日 – 微软确认披露并确认将调查报告的问题。
  • 2024 年 4 月 18 日 – 微软确认报告的行为,并表示将继续调查以确定适当的解决方案。
  • 2024 年 5 月 8 日 – “无痕编辑消息"问题被修复。
  • 2024 年 7 月 31 日 – “更改私聊中的显示名称"问题被修复。
  • 2024 年 8 月 13 日 – 计划修复"操纵通知"问题(追踪为 CVE-2024-38197)的发布日期。
  • 2024 年 9 月 13 日 – “操纵通知"问题被修复。
  • 2025 年 10 月 – “在视频/音频通话中伪造呼叫者身份"问题被修复。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计