这个用于 Linux 的 Python 脚本可以分析 Microsoft Windows *.msi 安装程序文件并指出潜在漏洞。它由 Michael Baer (@derbaer0) 在 SEC Consult 漏洞实验室开发。
目前,它主要适用于本地权限提升,我们的博客文章中也对此进行了描述:https://r.sec-consult.com/msi。
Microsoft 分配了 CVE-2024-38014,并在 2024 年 9 月补丁日为此漏洞提供了补丁:https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014。
该脚本还可以用于获取安装程序的概览并识别潜在弱点。
你需要一些 Python 包。sqlite3、termcolor,也许还有更多。除此之外,无需安装。只需从主文件夹运行脚本即可。
安装 (apt) 软件包 msitools。其中包含同样需要的 msiinfo 和 msiextract。
sudo apt install msitools
有助于利用该漏洞的 SetOpLock 二进制文件可以在这里找到:https://github.com/googleprojectzero/symboliclink-testing-tools/tree/main/SetOpLock
python msiscan.py <Installer>./runall.sh <directory>现在扫描结果中不寻常的颜色(红色)以快速找到可利用点。建议:如果有红色内容,请使用 ProcMon 修复,并执行手动方法。
会出现错误。忽略它们即可。分析会尽可能继续。
如果你在开头看到红色行 Repairmode disabled ...,你将无法触发修复功能。
现在,如果你想花些时间进行更深入的分析,这里有一些理解输出的说明:

"Action only invoked upon":仅当条件为真时才会调用此操作。例如,"Not Installed" 仅在软件尚未安装时执行,即在安装期间而非修复期间。除非你能强制进行安装,否则就无能为力。(注意:有时感觉这些条件与实际情况不太相符。但我还未能弄清楚)。CreateObject ("WScript.Shell"))。我相信,从安装程序包中仍能提取到很多信息。例如,已安装文件夹和服务的权限可能很快识别出更多的 LPE(本地权限提升)向量。