CVE-2017-0199: HTA ハンドラーを利用した野生の攻撃

User prompt hidden by the Visual Basic script news

FireEye は最近、これまで公開されていなかった脆弱性である CVE-2017-0199 を悪用する悪意のある Microsoft Office RTF ドキュメントを検出しました。この脆弱性により、ユーザーがエクスプロイトが埋め込まれたドキュメントを開いたときに、悪意のあるアクターが PowerShell コマンドを含む Visual Basic スクリプトをダウンロードして実行することができます。 FireEye は、CVE-2017-0199 を悪用する Office ドキュメントを確認しており、さまざまな既知のマルウェア ファミリからマルウェア ペイロードをダウンロードして実行します。

FireEye は脆弱性の詳細を Microsoft と共有し、Microsoft による脆弱性に対処するためのパッチのリリースに合わせて一般公開を調整しています。

この脆弱性は、パッチが利用可能になる前にほとんどの軽減策を回避しました。ただし、FireEye の電子メールおよびネットワーク製品は、悪意のあるドキュメントを検出しました。 FireEye は、Microsoft Office ユーザーが Microsoftからパッチを適用することを推奨します。

攻撃シナリオ

攻撃は次の方法で発生します。

  1. 脅威アクターが、OLE2 埋め込みリンク オブジェクトを含む Microsoft Word 文書を標的のユーザーに電子メールで送信します。
  2. ユーザーがドキュメントを開くと、winword.exe がリモート サーバーに HTTP 要求を発行し、悪意のある HTA ファイルを取得します。
  3. サーバーから返されたファイルは、悪意のあるスクリプトが埋め込まれた偽の RTF ファイルです
  4. Winword.exe は、COM オブジェクトを介して application/hta のファイル ハンドラを検索します。これにより、Microsoft HTA アプリケーション (mshta.exe) が悪意のあるスクリプトをロードして実行します。

これらの攻撃を認めた最初のブログの前に FireEye が観察した 2 つの文書では、悪意のあるスクリプトが winword.exe プロセスを終了させ、追加のペイロードをダウンロードし、おとり文書をロードしていました。元の winword.exe プロセスは、OLE2link によって生成されたユーザー プロンプトを隠すために終了されました。図 1 は、このプロンプトを示しています。

User prompt hidden by the Visual Basic script
図 1: Visual Basic スクリプトによって隠されているユーザー プロンプト

ドキュメント 1 – (MD5: 5ebfd13250dd0408e3de594e419f9e01)

FireEye が最初に特定した悪意のあるドキュメントには、3 つの段階がありました。埋め込まれた OLE2 リンク オブジェクトにより、winword.exe は次の URL にアクセスして、ステージ 1 の悪意のある HTA ファイルをダウンロードします。

http[:]//46.102.152[.]129/template.doc

悪意のある HTA ファイルがダウンロードされると、「application/hta」ハンドラによって処理されます。図 2 の強調表示された行は、最初のダウンロードが行われたことを示しており、その後に追加の悪意のあるペイロードが続きます。

ライブ攻撃シナリオ
図 2: ライブ攻撃のシナリオ

ダウンロードが完了すると、テンプレート ファイルはユーザーのインターネット一時ファイルに template[?].hta という名前で保存されます。ここで、[?] は実行時に決定されます。

ロジックバグ

Mshta.exe は、コンテンツ タイプ「application/hta」の処理、コンテンツの解析、およびスクリプトの実行を担当します。図 3 は、「application/hta」ハンドラーの CLSID のレジストリ値を照会する winword.exe を示しています。

Winword クエリのレジストリ値
図 3: Winword クエリのレジストリ値

Winword.exe が DCOMLaunch サービスに要求を送信すると、DCOMLaunch をホストする svchost.exe プロセスが mshta.exe を実行します。次に、Mshta.exe は、悪意のある HTA ドキュメントに埋め込まれたスクリプトを実行します。図 4 は、第 1 段階のダウンロードから難読化が解除された VBScript を示しています。

最初のドキュメント、ステージ 1 VBScript
図 4: 最初のドキュメント、ステージ 1 の VBScript

図 4 に示すスクリプトは、次の悪意のあるアクションを実行します。

  1. taskkill.exe を使用して winword.exe プロセスを終了し、図 1 に示すプロンプトを非表示にします。
  2. http[:]//www.modani[.]com/media/wysiwyg/ww.vbs から VBScript ファイルをダウンロードし、%appdata%MicrosoftWindowsmaintenance.vbs に保存します。
  3. http[:]//www.modani[.]com/media/wysiwyg/questions.doc からおとり文書をダウンロードし、%temp%document.doc に保存します。
  4. Microsoft Word が正常に再起動するように、Word バージョン 15.0 および 16.0 の Word Resiliency キーをクリーンアップします。
  5. 悪意のあるステージ 2 VBScript を実行します: %appdata%MicrosoftWindowsmaintenance.vbs
  6. おとりドキュメント %temp%document.doc を開いて、悪意のあるアクティビティをユーザーから隠します。

ダウンロードされた第 2 段階の VBScript (ww.vbs/maintenance.vbs) が実行されると、次のアクションが実行されます。

  1. 埋め込まれた難読化されたスクリプトを %TMP%/eoobvfwiglhiliqougukgm.js に書き込みます
  2. スクリプトを実行します

難読化された eoobvfwiglhiliqougukgm.js スクリプトは、実行時に次のアクションを実行します。

  1. システムから自分自身を削除しようとする
  2. http[:]//www.modani[.]com/media/wysiwyg/wood.exe のダウンロードを試み (最大 44 回)、ファイルを %TMP%dcihprianeeyirdeuceulx.exe に保存します。
  3. %TMP%dcihprianeeyirdeuceulx.exe を実行します。

図 5 は、イベントのプロセス実行チェーンを示しています。

プロセス作成イベント
図 5: プロセス作成イベント

このマルウェアで利用される最終的なペイロードは、LATENTBOT マルウェア ファミリの新しい亜種です。このマルウェアへの更新の追加の詳細は、ドキュメント 2 のウォークスルーに従います。

MD5

サイズ

名前

説明

5ebfd13250dd0408e3de594e419f9e01

37,523

採用フォーム.doc

悪意のある文書

fb475f0d8c8e9bf1bc360211179d8a28

27,429

template.doc/template[?].hta

悪意のある HTA ファイル

984658e34e634d56423797858a711846

5,704

www.vbs/maintenance.vbs

ステージ 2 VBScript

73bf8647920eacc7cc377b3602a7ee7a

13,386

question.doc/document.doc

おとり文書

11fb87888bbb4dcea4891ab856ac1c52

5,292

eoobvfwiglhiliqougukgm.js

悪意のあるスクリプト

a1faa23a3ef8cef372f5f74aed82d2de

388,096

wood.exe/dcihprianeeyirdeuceulx.exe

最終ペイロード

15e51cdbd938545c9af47806984b1667

414,720

wood.exe/dcihprianeeyirdeuceulx.exe

更新された最終ペイロード

表 1: 最初のドキュメント ファイルのメタデータ

LATENTBOT ペイロード

最初のドキュメントに関連付けられているペイロードは、 LATENTBOT マルウェア ファミリの更新バージョンです。 LATENTBOT は、2013 年から出回っている高度に難読化されたボットです。

新しいバージョンの LATENTBOT には、Windows XP (x86) および Windows 7 オペレーティング システム用の異なるインジェクション メカニズムがあります。

  • Attrib.exe パッチ– ボットは Attrib.exe を呼び出し、メモリ内のエントリにパッチを適用し、マップされたセクションに制御を移す JMP 命令を挿入します。 atrrib.exe のアドレス空間にセクションをマップするには、ZwMapViewOfSection() を使用します。
  • svchostコード インジェクション– Attrib.exe は、svchost.exe プロセスを中断モードで開始し、領域を作成し、ZwMapViewOfSection() を呼び出してコードを割り当てます。
  • 制御転送– 次に、SetThreadContext() を使用してプライマリ スレッドの OEP を変更します。この OEP はリモート プロセスで実行され、コードの実行をトリガーします。
  • ブラウザ インジェクション– NtMapVIewOfSection() を使用して、最終的なペイロードをデフォルトの Web ブラウザにインジェクトするために、同様のプロセスが使用されます。

Windows 7 以降のオペレーティング システムでは、ボットは attrib.exe を使用しません。むしろ、コードを svchost.exe に挿入した後、NtMapViewOfSection() を利用して、悪意のあるペイロードでデフォルトのブラウザを起動します。

次に、この亜種は次のコマンド アンド コントロール (C2) サーバーに接続します。

hta コード 1

C2 サーバーとの通信が成功すると、LATENTBOT はビーコンを生成します。復号化されたビーコンの 1 つは次のとおりで、バージョン番号は 5015 に更新されています。

hta コード 2

分析の時点で、C2 サーバーはオフラインでした。このボットには、高度にモジュール化されたプラグイン アーキテクチャが付属しており、インフォスティーラーとして「ポニー」キャンペーンに関連付けられています。

2017 年 4 月 10 日現在、www.modani[.]com/media/wysiwyg/wood.exe でホストされているマルウェアが更新され、C2 サーバーは 217.12.203[.]100 に移動されました。

ドキュメント 2 – (MD5: C10DABB05A38EDD8A9A0DDDA1C9AF10E)

FireEye が特定した 2 番目の悪意のあるドキュメントは、2 つの悪意のある段階で構成されていました。初期段階では、次の URL にアクセスして、段階 1 の悪意のある HTA ファイルをダウンロードしました。

http[:]//95.141.38[.]110/mo/dnr/tmp/template.doc

このファイルは、ユーザーの一時インターネット ファイル ディレクトリに template[?].hta という名前でダウンロードされます。[?] は実行時に決定されます。ダウンロードが完了すると、winword.exe は mshta.exe を使用してファイルを解析します。 mshta.exe は、ファイル検索 <script> </script> タグを解析し、含まれているスクリプトを実行します。図 6 は、難読化が解除されたスクリプトを示しています。

2 番目のドキュメント、第 1 段階の VBScript
図 6: 2 番目のドキュメント、第 1 段階の VBScript

図 6 は、次の悪意のあるアクションを示しています。

  1. taskkill.exe を使用して winword.exe プロセスを終了し、図 1 に示すプロンプトを非表示にします。
  2. http[:]//95.141.38[.]110/mo/dnr/copy.jpg から実行可能ファイルをダウンロードし、「%appdata%MicrosoftWindowsStart MenuProgramsStartupwinword.exe」に保存します。
  3. http[:]//95.141.38[.]110/mo/dnr/docu.doc からドキュメントをダウンロードし、%temp%document.doc に保存します。
  4. Word バージョン 15.0 および 16.0 の Word Resiliency キーをクリーンアップして、Microsoft Word が正常に再起動するようにします。
  5. 「%appdata%MicrosoftWindowsStart MenuProgramsStartupwinword.exe」で悪意のあるペイロードを実行する
  6. おとりドキュメント %temp%document.doc を開いて、悪意のあるアクティビティをユーザーから隠します。

悪意のあるペイロードを調査した結果、Microsoft がWingBirdと呼んでいる、FinFisher と同様の特徴を持つドロッパーの亜種であることが明らかになりました。このマルウェアは、分析を遅らせるカスタム VM など、いくつかの分析対策によって難読化されています。 「Artem」によるブログ投稿では、WingBird のペイロード ドライバーについて説明しています。ブログの著者は、このサンプルに一致するドロッパーの保護手法について簡単に言及しています。

MD5

サイズ

名前

説明

c10dabb05a38edd8a9a0ddda1c9af10e

70,269

СПУТНИК РАЗВЕДЧИКА.doc

悪意のある文書

9dec125f006f787a3f8ad464d480eed1

27,500

テンプレート.doc

悪意のある HTA ファイル

acde6fb59ed431000107c8e8ca1b7266

1,312,768

copy.jpg/winword.exe

最終ペイロード

e01982913fbc22188b83f5f9fadc1c17

6,220,783

docu.doc/document.doc

おとり文書

表 2: 2 番目のドキュメント メタデータ

結論

FireEye は、Microsoft Word の脆弱性である CVE-2017-0199 を確認しました。この脆弱性により、攻撃者は悪意のある Visual Basic スクリプトを実行できます。 CVE-2017-0199 の脆弱性はロジック バグであり、ほとんどの軽減策をバイパスします。悪意のあるスクリプトが実行されると、悪意のあるペイロードをダウンロードして実行し、おとりのドキュメントをユーザーに表示します。 2 つのドキュメントは、悪意のあるペイロードの実行を達成します。1 つは LATENTBOT を含み、もう 1 つは WingBird/FinFisher を含みます。悪意のあるドキュメントには、攻撃者が制御するサーバーへのリンクのみが含まれており、FireEye の MVX エンジンが多段階攻撃を検出する利点を示しています。パッチが利用可能になる前に、この攻撃を利用するキャンペーンがさらに確認されていますが、このブログでは取り上げていません。

Microsoft Office ユーザーは、できるだけ早くパッチを適用することをお勧めします。

了承

FLARE チーム、FireEye Labs チーム、および FireEye iSIGHT Intelligence の Michael Matonis、Dhanesh Kizhakkinan、Yogesh Londhe、Swapnil Patil、Joshua Triplett、Tyler Dean の各氏に感謝します。また、マイクロソフト セキュリティ レスポンス センター (MSRC) でご協力いただいたすべての皆様にも感謝いたします。

参考: https ://www.mandiant.com/resources/blog/cve-2017-0199-hta-handler

Comments

タイトルとURLをコピーしました