微软 10 月 30 日发布报告,披露了两起手法高度相似的入侵:攻击者从外部 Teams 租户冒充企业自己的 IT 或服务台,通过消息和通话说服员工打开 Windows 自带的远程协助工具 Quick Assist,拿到工作站的直接控制权;随后利用配置不当的 Active Directory 证书服务(AD CS),申请到高权限账号甚至域控制器的登录证书。其中一起导致公司数据被复制到外部服务器。微软未将活动归因于任何已知组织,也未公布入侵发生的具体日期。
事件概述
两起入侵的开场完全一致。攻击者使用带”support””helpdesk”之类名字的外部租户,让联系人看起来像内部人,然后在 Teams 上联系员工,引导对方打开 Quick Assist 并把连接码念回来。这一步不涉及任何 Teams 漏洞,纯粹是社工。之后攻击者把压缩包投放到 Downloads 目录,解压到一个取名模仿 Windows 更新的文件夹,用便携版 Python、Bun 或 Java 运行时执行其中内容。微软提醒,单看文件名判断并不可靠——其中一份副本被改过名,却仍保留着真实运行时的版本信息。
技术细节
AD CS 是 Windows 中负责给用户和计算机签发登录证书的角色。问题在于,模板配置不当签出的证书,可以让持有者以证书上写的那个账号身份登录。
第一起入侵中,攻击者找到存在 ESC1 缺陷的模板。这类模板允许申请者自行指定证书代表的账号,因此一个低权限用户就能申请一张”代表高权限账号”的证书。第一波通话针对 3 名用户和 1 台工作站,产出 3 个高权限账号的证书。Defender 的自动攻击阻断切断了这些身份并终止了活动会话,但有一个特权账号被排除在自动响应之外,仍然可用。
约 90 分钟后出现了第二波,针对 16 名用户和第 2 台工作站,又拿到 8 个高权限账号的证书。微软称此后超过 1000 次通过 SMB 访问文件或登录的尝试被拦截。攻击者在拿到证书后数秒内就登录域控并运行 DCSync(用于从 Active Directory 复制口令数据的工具),复制在遏制生效前已经开始,微软未说明实际获取了多少凭据数据。那个被排除在自动响应外的账号成了突破口:攻击者持续使用它,抵达一台文件服务器,运行改名的 Rclone 把共享目录数据搬到外部 SFTP 服务器。
第二起入侵没有遇到 ESC1 模板,改走另一条路:用 PetitPotam 强制域控向攻击者控制的机器发起认证,再把这次 NTLM 登录中继到 AD CS 的 Web 注册页面——即 ESC8——无需任何口令。攻击者用中继来的登录为域控本身申请证书,再通过 Kerberos 的 PKINIT 拿到域控的票据授予票据(TGT),把一次性中继变成长期身份。这一起被成功遏制:Defender 触发 ESC8 告警,客户隔离了工作站,之后没有后续活动。
两起案例的差别就在遏制上。第一起里自动阻断拦住了大部分动作,但被排除的那个账号留了一条可用的特权路径;第二起里隔离单台工作站就终止了攻击。微软的结论是:部分身份遏制能减少活动,但仍可能留下一条可走通的提权通道。
影响评估
这件事没有 CVE,也没有补丁可打——不是软件缺陷。它成立的前提是三个日常决定同时失效:允许任意外部租户给员工发消息、允许员工随意使用远程协助工具、证书模板与 Web 注册端点长期没人复核。
更棘手的是证书的持续性。微软指出,这类证书在账号口令被重置、甚至第一台机器被重装之后依然有效。也就是说,常规的”改密码 + 重装系统”处置流程在这里是失效的。此外,吊销证书并不会取消已经签发的 Kerberos 票据,票据需要单独排查。
修复建议
- 员工收到任何非预期的支持请求时,必须通过已知的内部渠道回拨确认,再决定是否共享屏幕或交出远程控制;限制可联系员工的外部 Teams 租户白名单,只允许批准的远程支持工具。
- 复核签发模板:找出允许申请者自行指定账号、或可注册用户过多的模板,删除不需要的注册权限。
- Web 注册端点强制 HTTPS 并启用扩展保护(EPA),条件允许时关闭 NTLM,参照微软 KB5005413。
- 开启证书签发审计;发现异常证书要吊销,同时单独清点并作废已签发的票据。
- 用 Defender for Identity 的姿态评估检查 ESC1、ESC8 暴露面。
- 把”被排除在自动遏制之外”的账号当成一次显式决策,为它们配置人工处置动作,而不是默认它会被自动处理。
- Windows Server 2025 已默认对 AD CS 开启 EPA,Server 2022 与 2019 需手动开启,升级计划应把这一项列进去。
微软同时公布了三个初始访问脚本的 SHA-256:85b6c424…109f17(JavaScript)、f3262012…e46f001(Python)、06c5c14f…11469e7(Python),可用于终端侧比对。