曲速未来 揭露:多提供商VPN客户端权限提升漏洞

据区块链安全咨询公司 曲速未来 消息:有安全研究人员发现,一个阻止NordVPN和ProtonVPN客户端在Windows机器上运行具有管理员权限的任意代码的补丁实现了对漏洞的不充分控制。

这些漏洞类似于VerSprite在2018年4月发现的一个错误:CVE-2018-10169。同月,两位客户都发布了类似补丁来解决这个问题。但是就算确定了绕过该补丁的方法。尽管也有修复,仍然可以作为系统管理员执行代码。

两个客户端都使用OpenVPN开源软件从一个点到另一个点建立安全隧道。该服务需要以管理员权限运行,因此它运行的任何代码都享有这些权限。

NordVPN和ProtonVPN都通过检查是否存在两个危险参数以及“up”和“down”来解决这个问题,这些参数都是通过OpenVPN执行代码或命令的方法。

通过查看配置文件解析器的OpenVPN源代码,Rascagnares注意到这些控件不足,并且可以通过将参数放在引号之间来实现相同的效果。

VPN客户端的设计

要了解这些漏洞,我们首先需要了解本文中提到的VPN客户端的设计。两个客户都有相同的设计

1.用户界面。此二讲制文件在登录用户的许可下执行。此应用程序的目的是允许用户选择VPN配置,例如协议,VPN服务器的位置等。当用户点击"连接时,信息被发送到服务(事实上,它是,一个OpenVPN配置文件)。

2.服务。此二进制文件用于从用户界面接收订单。例如,它从用户接收VPN配置文件。二进制文件的目标是使用用户配置文件(具有管理员权限)执行OpenVPN客户端二进制文件。

最初的漏洞

VerSprite发现的第一个漏洞是CVE-2018-10169。作者提到他可以使用以下内容创建OpenVPN配置文件:

此配置文件将发送到服务,并将此配置用于OpenVPN。结果是OpenVPN_POC.dll将由OpenVPN以管理员权限加载和执行。

第一个补丁和限制

ProtonVPN和NordVPN做了同样的补丁。他们实现了对用户发送的OpenVPN配置内容的控制:

此代码检查用户发送的配置文件是否包含以plugin,script-security,up或down开头的行。这些是通过OpenVPN执行代码或命令的所有方法。

这是检查的代码:

开发人员添加了额外的测试以避免在关键字之前制表或空格。

但是,通过在这里阅读配置文件解析器的OpenVPN源代码,我们可以在parse_line()函数中读取关键字可以在引号之间。因此,我们可以在配置文件中添加以下文本:

它对OpenVPN有效,并通过VPN服务的检查。

这两个安全漏洞目前被跟踪为ProtonVPN的CVE-2018-3952和NordVPN的CVE-2018-4010,严重等级为8.8,最高为10。

新补丁

区块链安全咨询公司 曲速未来 提醒:编辑开发的新补丁是不同的。对于ProtonVPN,他们将OpenVPN配置文件放在安装目录中,标准用户无法对其进行修改。因此,我们无法在其中添加恶意字符串。对于NordVPN,编辑决定使用XML模型生成OpenVPN配置文件。标准用户无法编辑模板。

受权限升级错误影响的客户端版本是ProtonVPN 1.5.1和NordVPN 6.14.28.0。NordVPN用户会自动更新到应用程序的最新版本,而使用PrototonVPN的用户需要手动启动该过程。

本文内容由 曲速未来 (WarpFuture.com) 安全咨询公司编译,转载请注明。 曲速未来提供包括主链安全、交易所安全、交易所钱包安全、DAPP开发安全、智能合约开发安全等相关区块链安全咨询服务。

猜你喜欢

转载自blog.csdn.net/WarpFuture/article/details/82594023