MSI 分析器
这个适用于 Linux 的 Python 脚本可以分析 Microsoft Windows *.msi 安装程序文件并指出潜在的漏洞。它由 SEC Consult Vulnerability Lab 的 Michael Baer (@derbaer0) 开发。
目前,它最适合本地权限提升,这也在我们的博客文章中进行了描述:https://r.sec-consult.com/msi。
微软分配了CVE-2024-38014,并在 2024 年 9 月的补丁日提供了针对此漏洞的补丁:https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-38014。
该脚本还可用于获取安装程序的概览并识别潜在的弱点。
记住
-
该脚本目前正在进行中。
-
它并不完美,但希望能够正确覆盖许多安装程序。如果您遇到错误判断,请创建一个 github 问题。
-
假阴性(如果控制台应用程序仅从安装程序间接启动)
-
“假阳性”(有条件地执行相同的操作。脚本显示条件但不对其进行评估)
-
此脚本无法防御恶意安装程序。
安装
您需要一些 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 ...,则将无法触发修复功能。
现在,如果您愿意花一些时间进行更深入的分析,这里有一些解释可以帮助您理解输出:
-
评级我的猜测是,它被利用的可能性有多大。这也定义了颜色。
-
难度我猜测找到漏洞需要付出多少努力。例如,HARD = 二进制逆向。
-
绿线“仅在条件为真时调用的操作”:仅当条件为真时才会调用此操作。例如,仅在软件尚未安装时执行“未安装”=在安装过程中执行,而不是在修复过程中执行。除非您可以强制进行安装,否则您运气不佳。(注意:感觉有时这些条件与现实不符。但我还没有弄清楚这一点)。
-
橙色:有脚本代码。如果你有时间,可以去那里看看是否有可疑行为。或者调用二进制文件(CreateObject ("WScript.Shell"))。
-
蓝色:来自 WiX 工具集的方法。可能安全(但应加以区分并进一步调查)。
-
青色:最常见的颜色。通常它们调用 GUI 程序或 DLL 函数。这里不指望能快速取胜。
下一步是什么?
我相信安装程序包中还有很多东西需要提取。例如,安装的文件夹和服务的权限可能会快速识别出更多的 LPE 向量。
https://github.com/sec-consult/msiscan?tab=readme-ov-file
原文始发于微信公众号(Ots安全):CVE-2024-38014:Windows 安装程序特权提升漏洞
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论