
public disclosure
受影响应用程序:MindManager23_setup.exe
平台:Windows
问题:通过 MSI 安装程序“修复”模式实现本地权限提升(EXE 劫持竞争条件)
发现并报告:Pawel Karwowski 和 Julian Horoszkiewicz(Eviden Red Team)
建议的缓解措施: https://learn.microsoft.com/en-us/windows/win32/msi/disablemsi
公开披露的理由: 长期无限期搁置此问题,最终只会让威胁行为者受益(该问题极易被发现),同时让用户和管理员蒙在鼓里,对风险一无所知。
供应商的立场是什么? 据供应商称,这不是他们的责任,因为该漏洞位于第三方组件中(CVE-2021-41526)。不过,这并不意味着他们的软件不存在漏洞。 我们最初于 2023 年 8 月 22 日向供应商报告了此问题。此后,即使让美国 CERT 参与协调,我们也始终无法说服他们发布修复程序。经过长时间反复沟通后,我们与 CERT 一致认为,在这种情况下公开披露是恰当的做法。
漏洞是什么? 在安装了 MindManager23 的系统上,普通用户可以通过执行以下命令,以“修复”模式触发安装程序: msiexec.exe /fa PATH_TO_INSTALLER_FILE.msi
这会触发 msiexec 服务执行修复过程,运行多项操作,并在 C:\Users\pk\AppData\Local\Temp 目录内创建文件,这些文件的文件名是动态生成的,其模式为:“wac<四个随机字母或数字>.tmp”,例如 wac98DF.tmp。 随后,该进程会使用以 NT AUTHORITY/SYSTEM 身份运行的、动态生成的 wac****.tmp 文件(可执行文件)来写入数据,并加载自身的映像。
由于 C:\Users\pk\AppData\Local\ 目录归普通用户所有,C:\Users\pk\AppData\Local\Temp\ 目录继承了相应权限,因此普通用户能够干预该目录中的内容,例如覆盖动态生成的 DLL\EXE 文件。
Mind Manager 安装程序中的权限提升,源于其使用了已知存在漏洞的组件——Flexera Installshield,该组件受 CVE-2021-41526 影响。Mind Manager 应使用最新版本的 Flexera Installshield,或重新打包 MSI,使其不支持“修复模式”,或要求以管理员权限运行。
利用过程是怎样的? 利用过程借助 PowerShell 脚本完成:该脚本运行 .MSI 文件,检查我们所关注的合法 DLL\EXE 是否存在及是否被创建,并反复将概念验证 DLL\EXE 复制到 Appdata\Local\Temp 目录中,从而有效覆盖合法的 DLL\EXE 文件。运行后,PoC DLL\EXE 文件会在 C:\Users\Public 中创建一个 poc.txt 文件,其中包含调用它的命令行以及 whoami 命令的输出。