Trusted Design

T1118 - InstallUtil

概要

InstallUtil is a command-line utility that allows for installation and uninstallation of resources by executing specific installer components specified in .NET binaries. (Citation: MSDN InstallUtil) InstallUtil is located in the .NET directories on a Windows system: C:\Windows\Microsoft.NET\Framework\v\InstallUtil.exe and C:\Windows\Microsoft.NET\Framework64\v\InstallUtil.exe. InstallUtil.exe is digitally signed by Microsoft.

Adversaries may use InstallUtil to proxy execution of code through a trusted Windows utility. InstallUtil may also be used to bypass process whitelisting through use of attributes within the binary that execute the class decorated with the attribute [System.ComponentModel.RunInstaller(true)]. (Citation: LOLBAS Installutil)

管理者によるコメント

T1118は「InstallUtil」として定義されていた、Windows環境における非常に強力な「防御回避(Defense Evasion)」および「実行(Execution)」のテクニックです。

.NET Frameworkに標準で付属しているインストーラーツール InstallUtil.exe を悪用し、「セキュリティソフトの監視やアプリケーションの実行制限をすり抜けながら、悪意ある.NET製バイナリ(DLLやEXE)をプロキシ(身代わり)実行させる」手法を指します。

1. 概要(攻撃者は何を実現できるのか?)

この手法で攻撃者は、「信頼されたマイクロソフト製の正規ツールの中にマルウェアのコードを隠し、セキュリティ制御を完全にバイパスして実行すること」を実現します。

2. 攻撃の仕組みと流れ

InstallUtil.exe は本来、開発者が作成した.NETアプリケーション(特にWindowsサービスなど)をシステムにインストール・アンインストールするためのコマンドラインツールです。

このツールは、指定された.NETアセンブリ(DLLやEXE)の内部にある Installer クラスを探し、その中の Install メソッドや Uninstall メソッドを自動的に実行する仕様を持っています。攻撃者はこの仕様を悪用し、「アンインストール処理のなかに、マルウェアのメインコード(C2接続など)を埋め込む」というトリックを用います。

  1. 初期侵入と足がかりの確立:
    攻撃者はマクロや脆弱性などを利用し、ターゲットのWindows端末でコマンドを実行できる権限を得ます。

  2. 悪意ある.NETアセンブリの準備:
    攻撃者はC#などの言語を使用し、特殊な構造を持った.NET用のDLL(例: payload.dll)を作成します。このDLL内には「アンインストール(Uninstall)が指示されたら、裏でバックドア(Cobalt Strikeなど)をメモリ上で起動する」というコードが仕込まれています。

  3. InstallUtilの悪用実行(トリガー):
    ターゲットの端末で、以下の引数を組み合わせたコマンドを実行します。

    • コマンドの例:
      C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /u C:\Windows\Temp\payload.dll

    • /u:アンインストール(Uninstall)モードで実行することを明示します。

    • /logfile= および /LogToConsole=false:実行時のログ出力や画面への表示を一切抑制し、無音で処理を行うための隠蔽オプションです。
  4. コードの身代わり実行:
    InstallUtil.exe は、指定された payload.dll のアンインストールロジックを読み込みます。この瞬間、InstallUtil.exe のプロセス内部で攻撃コードが実行されます。

  5. バックドアの確立(目的達成):
    システム側は「正規ツールがDLLの削除(アンインストール)処理を行った」と認識しますが、実際にはメモリ上でC2サーバーへの常時接続が確立され、端末が完全に支配されます。

3. 防御・対策

「信頼された.NET管理ツール」が本来行うべきではない不審な挙動(通信や引数)を厳格にフィルタリングする必要があります。

4. 重要ポイント

5. 関連する主なCWE

6. 関連する代表的な事例

高度な持続的標的型攻撃(APT)から、ランサムウェアを送り込むサイバー犯罪グループまで、セキュリティ製品の「目」を盗むための決定打として広く使われています。

実務上のアドバイス

SOCのログ分析やフォレンジック調査において、InstallUtil.exe の挙動を追う際は「プロセスの親子関係」を必ず確認してください。

開発者がシステム構築のために使用している場合、InstallUtil.exe の親プロセスはVisual Studioや正規のインストーラー、あるいは管理者が手動で叩く cmd.exe になるのが普通です。しかし、これが powershell.exe や、Word・Excelなどのオフィスアプリ、あるいはWebブラウザのプロセス から呼び出されている場合、100%の確率で本手法(T1118)を用いたインジェクション攻撃が行われています。

即座に対象端末のメモリを保護し、指定されていたDLLファイルを確保して解析に回すことが、被害の全体像を特定するための最大のブレイクスルーとなります。

分析

この攻撃手法を利用する脅威アクター

この攻撃手法を利用する脅威アクターは登録されていません。

関連する CVE

攻撃手法 – 脅威アクター Graph


← Technique一覧に戻る ← Tactics一覧に戻る