セキュリティ研究機関Hacker Houseは、Windowsインストーラーおよびアップデーターにおける競合状態と安全でないファイル処理を悪用する概念実証ツール「SetupHijack」を公開しました。このツールは、攻撃者が特権的なセットアッププロセスを乗っ取り、SYSTEMまたはAdministrator権限で悪意のあるペイロードを実行する方法を示しています。
SetupHijackは、%TEMP%、%APPDATA%、ユーザーのダウンロードフォルダなど、誰でも書き込み可能な場所にファイルをドロップするインストーラーやアップデーターを標的とします。多くのインストーラーは、一時的な実行ファイル、MSIパッケージ、またはバッチスクリプトをこれらのディレクトリに書き込み、その後、昇格された権限でそれらを起動します。SetupHijackはこれらのディレクトリを継続的に監視し、新しいまたは変更されたインストーラーファイルを検出すると、インストーラーが整合性チェックを実行する前に、それを攻撃者が制御するペイロードに置き換えます。インストーラーが置き換えられたファイルを実行すると、ペイロードは昇格された権限で実行され、システム全体の侵害が可能になります。
SetupHijackは、提供されたMakefileと標準のビルドツールを使用してWindows上でビルドできます。ビルドプロセスには、SetupHijack.cppでペイロードパスを定義し、nmakeでコンパイルすること(例: `nmake PAYLOAD=”C:\Path\to\payload.exe”`)、SignToolEx.exeとSignToolExHook.dllを使用した改ざんされたコード署名プロセスで署名付きMSIインストーラーを生成すること、そして標準ユーザーアカウントでバックグラウンドでSetupHijack.exeを実行することが含まれます。ツールの起動に昇格された権限は必要ありません。デフォルトでは、SetupHijackは%TEMP%、%APPDATA%\Roaming、%USERPROFILE%\Downloadsをスキャンします。`-notemp`、`-noappdata`、`-nodownloads`などのフラグを使用すると、ターゲットを絞り込むことができます。`clean`オプションは、置き換えられたファイルのバックアップを復元します。
SetupHijackを使用した典型的な攻撃の流れは次のとおりです。まず、悪意のあるペイロードをコンパイルし、有効なコード署名証明書で署名します。次に、特権インストーラーの実行前または実行中にSetupHijack.exeを起動します。その後、ターゲットのインストーラーまたはアップデーターを管理者として実行します。インストーラーがファイル(例: install.msiやsetup.exe)を%TEMP%にドロップすると、SetupHijackはそれを検出し、即座に署名されたペイロードに置き換え、元のファイルを.bakファイルとして保存します。インストーラーは置き換えられたファイルを昇格された権限で実行し、ペイロードがSYSTEMまたはAdministratorとして実行されます。オプションとして、`clean`フラグを使用して元のインストーラーファイルを復元し、痕跡を削除できます。
研究者たちはSetupHijackを使用し、%AppData%内の一時的な実行ファイルを感染させることで、Zoomの更新プロセスを正常に乗っ取ることに成功しました。この例は、脅威アクターが環境内に永続化し、認証情報を盗んだり、ランサムウェアを展開したりする方法を示しています。対照的に、Visual StudioやWiresharkのような一部のアプリケーションは、これらの競合状態攻撃を防ぐための堅牢なハッシュおよび署名チェックを組み込んでいます。SetupHijackは、インストーラーがアトミックなファイル操作、厳格な整合性チェック、および世界中で書き込み可能なディレクトリの使用制限を実装する必要があることを強調しています。システム管理者は、インストールワークフローを監査し、最小特権を強制し、不正なファイル置換の監視を検討すべきです。
元記事: [https://gbhackers.com/setuphijack-tool-abuses-race-conditions-in-windows-installer-to-hijack-setups/](https://gbhackers.com/setuphijack-tool-abuses-race-conditions-in-windows-installer-to-hijack-setups/)