
この Linux 用 Python スクリプトは、Microsoft Windows の *.msi インストーラファイルを解析し、潜在的な脆弱性を指摘することができます。SEC Consult Vulnerability Lab で Michael Baer(@derbaer0)によって開発されました。
現在、これは主にローカル権限昇格に適しており、これについては弊社のブログ記事 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、さらに必要なものがあるかもしれません。それ以外はインストールの必要はありません。メインフォルダからスクリプトを実行するだけです。
msitools(apt)パッケージをインストールしてください。同様に必要な 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 ... が表示される場合、修復機能をトリガーすることはできません。
より深い分析に時間を費やしたい場合に備えて、出力を理解するための説明をいくつか示します:

CreateObject ("WScript.Shell"))。インストーラパッケージから抽出できる情報はまだまだたくさんあると信じています。例えば、インストールされるフォルダやサービスの権限から、さらに多くの LPE ベクトルをすぐに特定できるかもしれません。