利用Windows Installer自定义操作实现本地权限提升

本文详细分析了Windows Installer服务中未修复的安全漏洞,探讨了如何通过自定义操作(Custom Actions)在系统修复过程中利用环境变量注入实现本地权限提升,并提供了完整的复现步骤和影响评估。

Windows Installer服务中存在一个未修复的安全漏洞,允许攻击者通过操纵环境变量在系统修复过程中执行任意代码。该漏洞源于自定义操作在执行时未能正确进行用户模拟,导致以SYSTEM权限运行用户控制的命令。

自定义操作概述

自定义操作是Windows Installer中用于扩展安装功能的用户定义操作。它们可以通过以下方式实现:

  • 编译为使用C/C++ API的自定义DLL
  • 在WSX文件中内联VBScript或JScript代码片段
  • 在WSX文件中显式调用系统命令

漏洞利用原理

在安装修复过程中,即使由低权限用户触发,标记为Impersonate="no"的自定义操作仍会以SYSTEM权限执行。攻击者可以通过控制环境变量(如USERPROFILE)来注入恶意命令路径。

复现步骤

  1. 创建包含恶意自定义操作的WSX文件
  2. 使用WiX工具集编译生成MSI安装包
  3. 低权限用户在目标系统上放置恶意payload
  4. 触发安装修复过程
  5. 系统以SYSTEM权限执行恶意payload

受影响的环境变量

以下Windows Installer属性和环境变量可被低权限用户"毒化":

  • AdminToolsFolder、AppDataFolder等15个系统属性
  • APPDATA、LOCALAPPDATA、USERPROFILE等环境变量

影响评估

该漏洞需要目标系统上已安装存在漏洞的MSI包,可作为本地权限提升或持久化机制使用。微软已于2023年12月收到报告,但至今未修复。

时间线

  • 2023年12月1日:向微软安全响应中心报告
  • 2024年2月9日:提供补充信息
  • 2024年5月9日:微软以无法复现为由关闭案例
  • 截至发文时,漏洞仍在最新Windows 11版本中存在

该研究揭示了Windows Installer服务在权限管理方面的深层问题,为系统安全审计提供了重要参考。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计