COMオブジェクト・ハイジャックとは

Component Object Model (COM) とは

主にWindows上で動作するソフトウェア間の相互通信を可能にするための技術仕様のこと。
この技術仕様に基づいて開発されたソフトウェアをCOMオブジェクトあるいはCOMコンポーネントと呼ぶ。
詳しくはこちら

COMオブジェクトをハイジャックするには

COMオブジェクトはレジストリで管理されている。正規のCOMオブジェクトではなく悪意のあるペイロードを参照するようにレジストリを編集することによりハイジャックする。

以下、ハイジャックの手法。

HKCUレジストリ・ハイブにCLSIDを追加して既存のHKLMレジストリ・ハイブ配下のCLSIDを乗っ取る

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID (HKLMレジストリ) と HKEY_CURRENT_USER\Software\Classes\CLSID (HKCUレジストリ)に同一のCLSIDが存在する場合、HKCUレジストリのCLSIDで参照されているCOMオブジェクトが優先的に実行される。
攻撃者はHKCU CLSIDエントリーに悪意のあるペイロードを仕込むことによって、本来実行されるはずだった正規のHKLM CLSIDエントリーをハイジャックできる。
CLSIDはCOMオブジェクトを識別するためのレジストリキー。

InprocServer32 / LocalServer32 キーに悪意のあるファイルを配置する

CLSIDのInprocServer32またはLocalServer32キーが参照しているファイルがシステム上に存在しない場合、攻撃者はそのCLSIDを乗っ取ることが出来る。例えば、あるCLSIDのInprocServer32キーがC:\Windows\fuga.dllというファイルを参照しているものの、このファイルが存在しない場合、攻撃者は悪意のあるファイルをC:\Windows\fuga.dllとして配置することで、COMオブジェクトを乗っ取れる。

TreatAsキーを作成して正規のCLSIDを悪意のあるCLSIDにリダイレクトさせる

正規のCLSID配下に悪意のあるCLSIDを参照するTreatAsキーを作成することで、悪意のあるCLSIDにリダイレクトさせることが出来る。例えばHKLM\SOFTWARE\Classes\CLSID\{2DEA658F-54C1-4227-AF9B-260AB5FC3543}配下に{00000000-0000-0000-0000-DEADBEEF0000}を参照するTreatAsキーを作成すると、{2DEA658F-54C1-4227-AF9B-260AB5FC3543}ではなく{00000000-0000-0000-0000-DEADBEEF0000}のオブジェクトが参照される。

自分が以前調査したケースでは以下の方法で悪意のあるペイロードがシステム上で永続化していた。

  1. 任意のCLSIDレジストリ・ハイブに悪意のあるペイロードを書き込む
  2. 正規のCLSIDの配下にTreatAsキーを作成して、1.で編集した悪意のあるCLSIDを参照するように設定する
  3. 既存の正規のスケジュールタスクが正規のCLSIDをユーザーのログオン時に読み込む
  4. TreatAsキーにより正規のCLSIDではなく、悪意のあるCLSIDにリダイレクトされる
  5. 結果、ユーザーがログオンする度に悪意のあるペイロードが実行される

以上。

参考
https://attack.mitre.org/techniques/T1122/
https://www.gdatasoftware.com/blog/2014/10/23941-com-object-hijacking-the-discreet-way-of-persistence
https://bohops.com/2018/06/28/abusing-com-registry-structure-clsid-localserver32-inprocserver32/
https://bohops.com/2018/08/18/abusing-the-com-registry-structure-part-2-loading-techniques-for-evasion-and-persistence/
https://www.fireeye.com/blog/threat-research/2021/05/unc2529-triple-double-trifecta-phishing-campaign.html

Leave a Reply

Your email address will not be published. Required fields are marked *