CVE-2022-25165:AWS VPN 客户端中的 SYSTEM 权限提升

VSole2022-06-23 15:01:32

漏洞概述


AWS VPN应用程序存以 SYSTEM 身份写入任意文件,这可能导致提权和信息泄露漏洞。该漏洞可能导致用户的 Net-NTLMv2 哈希被VPN 配置文件中的 UNC 路径泄露。这些漏洞已确认影响版本 2.0.0,并已在版本 3.0.0 中修复。

要修复漏洞,请升级到可在此处下载的3.0.0版本 [1]


受影响的产品


  • 供应商:Amazon Web Service (AWS)

  • 产品:AWS VPN Client (Windows)

  • 确认漏洞版本:2.0.0

  • 固定版本:3.0.0



CVE-2022-25166:任意文件写入


在 Amazon AWS VPN Client 2.0.0 中发现了一个问题。在验证 VPN 配置文件期间存在 TOCTOU 竞争条件。这允许在 AWS VPN Client 服务(作为 SYSTEM 运行)处理文件之前将 AWS VPN Client 允许参数列表 [2]之外的参数注入到配置文件中。低级用户(例如 log)可以注入危险的参数,这将导致可在日志文件中写入任意内容。




CVE-2022-25165:UNC 路径导致信息泄露


在为指令(如 "auth-user-pass")引用文件路径时,可以在OpenVPN配置文件中包含一个UNC路径。当此文件被导入 AWS VPN 客户端并且客户端尝试验证文件路径时,它会在路径上执行打开操作并将用户的 Net-NTLMv2 哈希泄漏给外部服务器。


AWS VPN客户端介绍


AWS VPN Client 是一个桌面应用程序,可用于连接到 AWS Client VPN。

官网网站介绍为:

AWS Client VPN 的客户端是免费的。您可以将您的计算机直接连接到 AWS Client VPN 以获得端到端的 VPN 体验。该软件客户端与 AWS Client VPN 的所有功能兼容。



复现:任意文件写入漏洞


AWS VPN 客户端安装一个 Windows 服务,以管理员身份运行,充当自定义 OpenVPN 客户端可执行文件的包装器。低权限用户可以使用 AWS VPN 客户端尝试使用导入的 OpenVPN 配置文件连接到 VPN。

有一些已知的危险 OpenVPN 指令 [3]会在 VPN 连接期间执行,例如:运行命令或将日志文件写入特定目录等操作。AWS VPN 客户端尝试禁止在配置文件中使用的 OpenVPN 指令 [4]的操作,但是限制不全,导致可以在执行 OpenVPN 可执行文件之前执行的。

这使得在配置文件被检查后,OpenVPN可执行文件可通过条件竞争来执行,在文件中注入不允许的指令。

您可以在下面看到由 AWS VPN 服务生成的日志文件,其中显示了从成功验证配置到执行 OpenVPN 客户端之间的时间。



接着可以很容易使用Powershell脚本监控日志文件,并在成功验证配置文件后,在OpenVPN可执行文件处理之前立即将恶意指令写入配置文件。

此时便可以写入不允许执行指令,就像在配置文件中正常添加一条允许指令这么简单,此时便可以轻易的进行权限提升了。注意:AWS VPN 服务使用“–script-security 1”标志启动 OpenVPN 可执行文件,这会阻止执行外部二进制文件或脚本。

尽管我们不能直接运行命令,但仍然可以使用“log”指令将日志输出重定向到我们选择的任何路径或文件。由于执行是以SYSTEM用户的身份进行的,这就给了我们一个写文件的特权。在最简单的情况下,这可以用来写一个批处理脚本到一个管理员的根目录。

CVE-2022-25166 相关脚本可以查看我的Github [5]




复现:UNC路径导致信息泄露


AWS VPN客户端对作为VPN配置文件导入客户端的配置文件进行验证的过程中,其中一个验证步骤是当任何文件路径被提供给接受文件路径作为参数的指令时,检查文件路径是否存在。

接受文件路径的有效指令的一些示例是:

  • auth-user-pass

  • ca

AWS VPN Client 的验证是通过对路径执行文件打开操作以确保其存在来完成的。



AWSVPNClient.Core.dll 包含 OvpnConfigParser.cs,它主要用“CheckFilePath”方法来检查文件路径是否有效。如上图代码中可发现:函数中调用了File.Open()。

重点来了!

此时我们可以通过提供一个包含 UNC 路径作为文件路径的文件来利用。当文件在导入前经过验证时,它将打开 UNC 路径并将用户的 Net-NTLMv2 哈希发送到外部服务器。



CVE-2022-25165 相关脚本可以查看我的Github [6]


参考链接


[1] 3.0.0 版本:

https://aws.amazon.com/cn/vpn/client-vpn-download/

[2] AWS VPN Client 允许参数列表:

https://docs.aws.amazon.com/vpn/latest/clientvpn-user/connect-aws-client-vpn-connect.html

[3] 危险 OpenVPN 指令:

https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/#scripting-and-environmental-variables

[4] OpenVPN 指令:

https://docs.aws.amazon.com/vpn/latest/clientvpn-user/connect-aws-client-vpn-connect.html

[5] Github:

https://github.com/RhinoSecurityLabs/CVEs/tree/master/CVE-2022-25166


[6] Github:

https://github.com/RhinoSecurityLabs/CVEs/tree/master/CVE-2022-25165

awsvpn
本作品采用《CC 协议》,转载必须注明作者和本文链接
漏洞概述 AWS VPN应用程序存以 SYSTEM 身份写入任意文件,这可能导致提权和信息泄露漏洞。该漏洞可能导致用户的 Net-NTLMv2 哈希被VPN 配置文件中的 UNC 路径泄露。这些漏洞已确认影响版本 2.0.0,并已在版本 3.0.0 中修复。 要修复漏洞,请升级到可在此处下载的3.0.0版本 [1]
苹果iOS系统曝出的VPN数据泄露漏洞,意味着这个管道已经“跑冒滴漏”多年。
相关研究人员最近发现了一个异常活跃的攻击活动,研究人员称之为 EleKtra-Leak,它会自动窃取 GitHub 公共存储库中泄漏的身份和访问管理 ( IAM ) 密钥
vpnMentor的研究人员称,一个不安全的Elasticsearch数据库一直在泄露数百万全球赌博应用程序用户的数据。该数据库终于在也与AWS联系五天后的4月5日得到保护。研究团队警告说,赌博应用程序是网络犯罪分子的流行目标,网络犯罪分子一直在寻找PII并瞄准软件漏洞,以便在用户设备上安装恶意软件。vpnMentor警告说,该公司现在还可能面临GDPR监管机构以及Google Play和App Store的额外审查。
事情需要追溯到2021年1月,Ubiquiti披露了一起安全事件。在Ubiquiti公司拒绝支付赎金后,Nickolas Sharp在一个可公开访问的在线平台上发布了部分被盗文件。他向媒体爆料称,Ubiquiti公司被一个身份不明的黑客入侵,该攻击者获得了对Ubiquiti的AWS账户的root管理员访问权限。Nickolas Sharp想要借此向Ubiquiti施压,逼迫其支付赎金以减轻事件影响。而在这些文章发表后,Ubiquiti公司的股价下跌了约20%,市值损失超过40亿美元。
在另一个恶意程序包潜入公共代码存储库的实例中,10 个模块已从 Python 程序包索引 (PyPI) 中删除,因为它们能够收集密码和 Api 令牌等关键数据点。 以色列网络安全公司 Check Point在周一的一份报告中表示,这些软件包“安装了信息窃取程序,使攻击者能够窃取开发人员的私人数据和个人凭据”。
例如,AWS S3 bucket在开发过程中经常被分配允许访问权限。这种特殊的错误配置是危险的,由于该应用程序正在运行并且该站点正在为用户加载,所以没有明显的迹象表明有什么地方出错了,直到一个寻找打开的bucket的攻击者偶然利用了它。
在向云应用程序和数字化转型的大规模转变中,云访问安全代理 (CASB) 应运而生。当用户从企业外围内访问这些资产时,CASB旨在减轻围绕云资产的风险。
VSole
网络安全专家