pulse-secure-vpn-mitm-research
Pulse Secure 中间人研究
发布日期
与厂商联合发布日期:2020年10月26日
作者
David Kierznowski, @withdk
致谢
- Sahil Mahajan,来自 Pulse Secure PSIRT 团队,在整个披露过程中给予支持。
- Alyssa Herrera、Justin Wagner、Mimir 和 Rich Warren,感谢他们的文章《红队人员 Pulse Secure SSL VPN 指南》——Alyssa Herrera(2019年9月4日)。
- SA 红队(SA Red Team)给予的持续支持与鼓励。
CVE 编号
- CVE-2020-8241(严重程度 8.1 高 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
- CVE-2020-8239(严重程度 5.9 中 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N)
示例

概念验证演示:rogue-pulse-svr.py 从连接到同一网络的 Pulse 客户端获取一个 meterpreter 反向 shell。
简介
Pulse Connect Secure(PCS)是一款常用的企业 VPN 解决方案。截至撰写本文时,PCS 支持超过 2000 万个端点(Pulse Secure,未注明日期)。本研究重点审查了 Windows 10 PCS 端点与 PCS 网关之间建立的网络通信通道的机密性和完整性。具体而言,它提出了一个问题:“当端点连接到不可信网络时,其安全性如何?”本研究适用于默认配置和“始终在线”配置。
影响(中高)
当链式利用时,有可能从不可信网络以完全 SYSTEM 权限获得远程代码执行。另外,内部威胁可以单独使用 CVE-2020-8241 作为独立漏洞来提升权限。
可能性(低-中)
这些攻击可在多种情况下使用,但最适合针对性攻击。基于此及以下假设,可能性为低至中等。
潜在攻击
以下攻击已在概念验证的“rogue-pulse”工具中成功演示:
- 窃取用户凭证。恶意服务器可诱使用户泄露其登录凭证。
- 从 Microsoft Windows UNC 路径执行二进制文件。PCS 服务器支持在认证后启动可执行文件的选项。此功能可被滥用,以登录用户的权限执行代码。这建立在 Alyssa Herrera 及其团队的工作基础之上(Alyssa Herrera,2019 年 9 月 4 日)。
- 通过滥用主机合规性检查获得完全远程管理员访问权限。主机合规性检查以 SYSTEM 权限执行。恶意服务器可滥用此功能推送恶意策略,从而实现对注册表的任意写访问。
- 拦截网络流量。这将允许攻击者拦截和修改网络流量,即使启用了“始终在线”功能。目前该工具仅显示来自端点的网络流量请求。
PoC 还实现了自动登录功能。这会让客户端误以为之前已经认证过。在优先考虑代码执行而非凭证收集的情况下,这将非常有用。
假设
- 本研究旨在通过不可信网络获得远程代码执行。两个漏洞被链式利用以实现此目标。也就是说,内部威胁可以单独使用 CVE-2020-8241 来提升权限。
- PCS 网关使用默认配置,启用了“动态证书信任”。注意,策略通常在认证后更新并推送到客户端。这意味着即使在网关禁用“动态证书信任”后,仍可能存在短暂的机会窗口。
- 攻击者能够进行 HTTPS 网络流量中间人攻击,例如攻击者已攻破用户家庭网络路由器、设置恶意 Wi-Fi 热点等。
- 用户需要接受证书警告。一个有趣的观察是,Pulse Secure 客户端会持续弹出此消息,直到用户接受证书。此外,弹出消息并不特别令人警觉。最后,由于是“安全客户端”,用户更可能忽略该消息并继续连接。这似乎不是一个很大的障碍。
- 端点运行在 Microsoft Windows 操作系统上。
建议
在缓解和修复该问题时,应考虑以下建议:
参考文献
免责声明
所提供的信息仅供教育和研究目的使用。作者不对您使用这些信息承担任何责任,并强烈谴责任何违反适用法律的行为。作者没有义务更新这些信息,对其完整性、使用或适用性不作任何保证,并不承担任何依赖于此的责任。您对这些信息的使用完全由您自己负责。