Windows RDP 允许使用已撤销的密码登录,Microsoft 表示没问题

研究人员称这种行为相当于一个永久性的后门。

Dan Goodin – Apr 30, 2025 6:36 PM | 63 Microsoft 为其 Remote Desktop 应用程序显示的徽标。 信用:Microsoft

从令人挠头的部门传来反直觉的消息:Microsoft 表示,它没有计划更改 Windows 中的远程登录协议,该协议允许人们使用已被撤销的密码登录到机器。

密码更改是人们在密码泄露或帐户被盗用时应采取的首要步骤之一。人们期望一旦采取此步骤,就无法访问依赖于该密码的任何设备。

不仅仅是一个 Bug

然而,Remote Desktop Protocol——内置于 Windows 中的专有机制,允许远程用户登录并控制机器,就像他们直接坐在机器前一样——在许多情况下,即使在用户更改密码后,仍会继续信任该密码。 Microsoft 表示,这种行为是一项设计决策,旨在确保用户永远不会被锁定。

独立安全研究员 Daniel Wade 本月早些时候向 Microsoft Security Response Center 报告了该行为。在该报告中,他提供了重现该行为的分步说明。他接着警告说,这种设计违背了几乎普遍的期望,即一旦密码被更改,它就不能再访问与它相关的任何设备或帐户。

“这不仅仅是一个 Bug。这是一个信任崩溃,”Wade 在他的报告中写道。“人们相信更改他们的密码会切断未经授权的访问。”他继续说道:

这是任何人在怀疑泄露后所做的第一件事。然而:

  • 旧凭据继续适用于 RDP——即使是从全新的机器。
  • Defender、Entra ID 和 Azure 不会发出任何标志。
  • 最终用户没有明确的方法来检测或修复此问题。
  • 没有 Microsoft 文档或指南直接解决此场景。
  • 即使是较新的密码也可能被忽略,而较旧的密码继续起作用。

结果呢?数百万用户——在家中、小型企业或混合工作环境中——在不知不觉中处于危险之中。

Ars Video

作为回应,Microsoft 表示该行为是“一项设计决策,旨在确保至少一个用户帐户始终能够登录,无论系统离线多久。”因此,Microsoft 表示该行为不符合安全漏洞的定义,并且公司工程师没有计划更改它。

当使用 Microsoft 或 Azure 帐户登录的 Windows 机器配置为启用远程桌面访问时,就会发生使用已撤销密码通过 RDP 登录的能力。在这种情况下,用户可以使用专用密码通过 RDP 登录,该密码会根据本地存储的凭据进行验证。或者,用户可以使用用于登录机器的在线帐户的凭据登录。

RDP 配置窗口的屏幕截图,显示 Microsoft 帐户(用于 Hotmail)具有远程访问权限。

然而,即使在用户更改其帐户密码后,该密码对于 RDP 登录仍然无限期有效。在某些情况下,Wade 报告说,多个较旧的密码会起作用,而较新的密码则不起作用。结果:持久的 RDP 访问绕过云验证、多因素身份验证和 Conditional Access 策略。

Wade 和另一位 Windows 安全专家表示,这种鲜为人知的行为可能会在 Microsoft 或 Azure 帐户被盗用(例如,密码被公开泄露)的情况下造成重大损失。在这种情况下,首要措施是更改密码,以防止攻击者使用它来访问敏感资源。虽然密码更改阻止了攻击者登录 Microsoft 或 Azure 帐户,但旧密码将使攻击者能够通过 RDP 无限期地访问用户的机器。

“这会在密码被缓存的任何系统中创建一个静默的远程后门,”Wade 在他的报告中写道。“即使攻击者从未访问过该系统,Windows 仍然会信任该密码。”

安全公司 Analygence 的高级漏洞分析师 Will Dormann 也同意。

“从安全的角度来看,这没有意义,”他在一次在线采访中写道。“如果我是一名系统管理员,我希望在我更改帐户密码的那一刻,该帐户的旧凭据不能在任何地方使用。但事实并非如此。”

凭据缓存是一个问题

使这一切成为可能的机制是本地机器硬盘驱动器上的凭据缓存。用户第一次使用 Microsoft 或 Azure 帐户凭据登录时,RDP 将在线确认密码的有效性。然后,Windows 会以加密安全格式将凭据存储在本地机器上。从那时起,Windows 将通过将 RDP 登录期间输入的任何密码与本地存储的凭据进行比较来验证密码,而无需在线查找。这样,撤销的密码仍将通过 RDP 提供远程访问。

在回应 Wade 的报告时,Microsoft 表示已更新在线文档 here,以使用户更好地了解该行为。该更新添加了以下句子:

Caution 当用户执行本地登录时,他们的凭据会在通过网络使用身份提供程序进行身份验证之前,根据缓存副本在本地进行验证。如果缓存验证成功,即使设备处于脱机状态,用户也可以访问桌面。但是,如果用户在云中更改了他们的密码,则缓存的验证程序不会更新,这意味着他们仍然可以使用旧密码访问他们的本地机器。

Dormann 说,大多数管理员不容易发现此更新,并且不够明确。该更新也未能建议用户,如果他们的 Microsoft 或 Azure 帐户被盗用,应采取哪些步骤来锁定 RDP。 Dormann 说,唯一的行动方案是将 RDP 配置为仅针对本地存储的凭据进行身份验证。

Microsoft 的一位发言人表示,如果 Microsoft 有任何要分享的内容,他们会“保持联系”。他们从未跟进。

Microsoft 告诉 Wade,他不是第一个将该行为报告为安全漏洞的人,这表明该公司安全工程师已经了解该行为近两年了。

“我们已确定这是一个已经在 2023 年 8 月由另一位研究人员向我们报告的问题,因此此案例不符合漏洞赏金奖励的资格,”公司员工告诉 Wade。“我们最初研究了针对此问题的代码更改,但在进一步审查设计文档后,对代码的更改可能会破坏许多应用程序使用的功能的兼容性。”

Photo of Dan Goodin Dan Goodin 高级安全编辑 Dan Goodin 高级安全编辑 Dan Goodin 是 Ars Technica 的高级安全编辑,负责监督恶意软件、计算机间谍活动、僵尸网络、硬件黑客、加密和密码的报道。在他的空闲时间,他喜欢园艺、烹饪和关注独立音乐领域。 Dan 总部位于旧金山。在 here 上的 Mastodon 和 here 上的 Bluesky 上关注他。在 Signal 上通过 DanArs.82 联系他。 63 Comments