使用 VPN(虚拟专用网络)可以带来许多好处,特别是当想要访问远程资源,或者使用的是不完全信任的网络时,例如,咖啡店或机场。
近年来,针对不熟悉技术但仍希望使用 VPN 来提高其连接安全性、关注隐私或想绕过某些地理限制的用户的VPN供应商数量有所增加。
供应商提供主要功能的特点之一就是让用户可以非常容易的设置 VPN。只需点击几下,简单的配置就可以了。由于他们希望为用户提供便利,因此大多数客户端都存储密码,以便可以通过点击进行连接(甚至可以在每次笔记本电脑启动时自动执行)。
我对“存储密码”功能有一些好奇,所以开始挖掘,最终发现了两个漏洞。作为责任披露计划的一部分,我们向 PureVPN 披露了这些漏洞。他们接受了第一个漏洞存在的风险并为第二个漏洞提供了补丁。详细信息可在咨询 TWSL2018-010 中找到。
我在以下假设和条件下测试了这些漏洞:
PureVPN 客户端默认安装。
攻击者可以访问任何本地用户帐户。
有人在任何时间点使用 Windows 机器上的客户端成功登录 PureVPN。
在多用户环境中披露其他用户凭据时,Windows 计算机有多个用户。
这些漏洞可在 PureVPN Windows 客户端的 5.18.2.0 版中找到,并向供应商披露。供应商已发布补丁。我们测试了 6.1.0 版本,它不再受到攻击。
我将解释发现的每个漏洞:
漏洞#1 – 客户端配置窗口显示密码
未修复,供应商接受了风险。
描述
PureVPN 提供的 PureVPN Windows 客户端允许本地攻击者获取成功登录 PureVPN 服务的最后一个用户的存储密码。因此,当 Windows 计算机成功登录时,本地攻击者可以获得另一个用户的 PureVPN 凭据。攻击只通过 GUI(图形用户界面)完成,不需要使用外部工具。
PoC
获取密码的步骤:
打开 PureVPN Windows 客户端
转到配置
打开“用户配置文件”选项卡
点击“显示密码”
例子:
漏洞#2 – PureVPN Windows 客户端凭据以纯文本形式存储
已修复
描述
PureVPN Windows 客户端以明文形式存储登录凭据(用户名和密码)。文件的位置是:C:\ProgramData\purevpn\config\login.conf。
此外,所有本地用户都可以读取此文件。
PoC
获取密码的步骤:
1. 在 C:\ProgramData\purevpn\config\login.conf 文件中读取。
例子:
最后,建议大家:
如果使用 PureVPN for Windows,请确认运行的是最新版本。
切勿在服务之间重复使用密码。
尽可能启用双因素身份验证。
为了帮助测试是否存在此漏洞,这里有一个 Metasploit 模块,可以在此处访问:https://github.com/rapid7/metasploit-framework/pull/10716 ◾️
Comments