浏览器内RDP客户端突破:逆向微软未公开协议,实现WebAuthn重定向
Unit42研究员在Prisma Browser中实现首个浏览器内RDP客户端的WebAuthn重定向功能,通过逆向微软未公开代码路径和构建自定义Chromium扩展API,解决了远程会话中安全密钥认证的兼容性问题。本文深入分析[MS-RDPEWA]协议缺陷、clientDataHash限制绕过技术及对浏览器安全的影响,提供检测与缓解建议。
🔍 High 其他
Unit42研究员在基于Chromium的Prisma Browser中实现了首个支持WebAuthn重定向的浏览器内RDP客户端。通过逆向微软未公开的代码路径、构建自定义浏览器API绕过clientDataHash限制,解决了跨平台RDP会话中安全密钥重定向的兼容性问题,并揭示了[MS-RDPEWA]协议规范的缺失与实现差异。
来源:Palo Alto Unit42 | 2026-07-02 | 原文链接
🔍 关键发现
- 微软[MS-RDPEWA]规范缺少关键命令(如GetCredentials/GetAuthenticatorList),且Windows实现依赖内部未文档化代码路径,需逆向工程才能兼容。
- 现有浏览器API(navigator.credentials、WebHID)无法接受预计算的clientDataHash,导致远程会话中WebAuthn签名验证失败。
- 通过封装Chromium原生FIDO2栈构建自定义扩展API,在无需原生辅助进程的情况下,实现了全平台(USB、BLE、NFC、平台认证器)的WebAuthn重定向。
⚔️ 攻击链分析
攻击者利用远程桌面会话中的WebAuthn重定向功能,将用户浏览器内安全密钥认证请求劫持至攻击者控制的伪造认证器或中间人服务器,从而窃取凭据或绕过MFA。
🚩 失陷指标 (IOC)
chrome-extension://* (自定义扩展API调用)Microsoft::Windows::RDP.Webauthn DVC通道异常流量SHA-256(clientDataJSON)哈希值不匹配的WebAuthn断言
🛡️ 缓解建议
- ✅ 确保RDP服务器和客户端均更新至支持完整[MS-RDPEWA] 3.0规范(Windows 11 24H2+ / Server 2025+)的版本。
- ✅ 部署网络监控规则,检测RDP虚拟通道中非标准CBOR载荷或异常WebAuthn命令ID(如未记录的9、12命令)。
- ✅ 限制浏览器内RDP客户端仅使用受信任的扩展来源,并审计自定义API调用日志以发现异常clientDataHash注入。
涉及漏洞:[]
⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。
🤖 常见问题解答(FAQ)
❓ 如何检测RDP会话中WebAuthn重定向被滥用?
监控RDP动态虚拟通道(DVC)Microsoft::Windows::RDP.Webauthn上的CBOR消息,检查命令ID是否为5(MakeCredential/GetAssertion)且clientDataHash与预期页面origin不匹配。
❓ 为什么现有浏览器API无法满足需求?
navigator.credentials强制使用自身origin生成clientDataJSON,而RDP服务器仅发送32字节的clientDataHash,导致哈希不匹配。WebHID仅支持USB认证器,无法访问平台认证器(如Touch ID/Windows Hello)。
❓ 该漏洞影响哪些RDP客户端?
主要影响基于Chromium的浏览器内RDP客户端(如Prisma Browser),以及未更新[MS-RDPEWA] 3.0规范的Windows RDP客户端(macOS/iOS/Linux版本)。