Avira VPN 2.15.2.28160权限提升漏洞深度解析

本文详细分析了Avira Phantom VPN 2.15.2.28160版本中的权限提升漏洞,涉及DACL修改、硬链接利用和恶意二进制替换等技术细节,展示了从低权限用户提升至SYSTEM权限的完整攻击链。

Avira VPN 2.15.2.28160 权限提升漏洞

作者:enigma0x3
发布日期:2019年3月20日

产品信息

  • 产品版本:Avira Phantom VPN 2.15.2.28160
  • 下载来源:https://package.avira.com/package/oeavira/win/int/avira_en_vpn__ws.exe
  • 测试操作系统:Windows 10 1803 (x64)

漏洞概述

漏洞类型:Avira VPN 权限提升
简要描述:当在VPN设置菜单中进行配置更改时,Avira Phantom VPN服务会修改“C:\ProgramData\Avira\VPN\VpnSharedSettings.backup”和“C:\ProgramData\Avira\VPN\VpnSharedSettings.config”的DACL(自主访问控制列表)。通过在“C:\ProgramData\Avira\VPN\VpnSharedSettings.backup”上设置硬链接,可以覆盖任意文件的DACL,导致从低权限用户提升至SYSTEM权限。

漏洞详解

通过VPN GUI进行配置更改时,VPN服务(Avira.VPNService.exe)会调用位于“Avira.VPN.Core.dll”中的“AdjustSecurity()”函数,修改DACL以允许任何经过身份验证的用户写入“C:\ProgramData\Avira\VPN\VpnSharedSettings.backup”或“C:\ProgramData\Avira\VPN\VpnSharedSettings.config”。进行配置更改时(低权限用户即可操作),服务通过调用“EnsureFileExists()”确保“共享”VPN配置文件(C:\ProgramData\Avira\VPN\VpnSharedSettings.backup和C:\ProgramData\Avira\VPN\VpnSharedSettings.config)存在:

如果配置文件不存在,服务会创建它并继续执行。如果存在,则直接进入“StorageSecurity.AdjustSecurity()”函数。对于共享与私有配置配置文件,传递的“StorageType”为“AllUserAccess”或“Secure”。私有VPN配置文件被分配“Secure”存储类型,而共享配置文件被分配“AllUserAccess”。

调用“AdjustSecurity()”函数(传递配置文件的存储类型)时,它会适当调整文件本身的DACL。漏洞就出现在这里。对于“共享”配置文件(StorageType为“AlluserAccess”),VPN服务调用“AdjustSecurity()”并授予所有用户对该文件的完全控制权限:

这很危险,因为“SetAccessControll()”调用会更改低权限用户可控制的文件的DACL。那么,我们如何利用这一点?

利用步骤

  1. 创建硬链接:攻击者需要在“C:\ProgramData\Avira\VPN\VpnSharedSettings.backup”上创建硬链接,并将其指向一个文件。本例中,我们将其指向“C:\Program Files (x86)\Avira\VPN\OpenVPN\phantomvpn.exe”。这样做将覆盖“C:\Program Files (x86)\Avira\VPN\OpenVPN\phantomvpn.exe”的DACL。

  2. 触发配置更改:打开VPN并点击“Settings”选项卡:

取消选中“Send Diagnostic Data”框。这将触发配置更改并启动代码路径:

此时,“C:\Program Files (x86)\Avira\VPN\OpenVPN\phantomvpn.exe”的DACL已被覆盖,允许任何用户写入。攻击者现在只需复制恶意二进制文件来替换它:

  1. 执行恶意二进制文件:完成后,只需尝试连接VPN即可执行恶意二进制文件。这可以通过在VPN GUI中点击“Secure my Connection”来实现:

点击“Secure my connection”后,您应该会看到几个以SYSTEM身份运行的cmd.exe进程:

披露时间线

  • 2018年9月28日:向Avira报告
  • 2018年10月1日:Avira确认报告
  • 2018年10月4日:Avira能够复现
  • 2018年12月13日:问题解决
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计