マルウェア

有害なヘルプ: Agent Teslaを配信する悪性コンパイル済みHTMLヘルプファイル(.chm)の分析

Clock Icon 2 min read

This post is also available in: English (英語)

概要

本稿はUnit 42の確認した悪質なコンパイル済みHTMLヘルプファイル(.chm)による攻撃の解説記事です。まずこのヘルプファイルの分析方法を、つぎにJavaScriptやPowerShellなど多段階の攻撃チェーンから最終ペイロードにいたるまでの分析方法を順に紹介します。

今回の攻撃は、攻撃者がペイロード配信に独創的手口を模索している興味深いものでした。その目的は2つです。

  • セキュリティ製品を回避したい
  • セキュリティ教育を回避したい

潜在的被害者は、知らない送信者からの文書やスクリプト、実行ファイルを避けるトレーニングを受けているかもしれませんが、ファイルの種別がなんであれ慎重に対応することが重要です。

この特定の攻撃チェーンは最終ペイロードとしてAgent Teslaを配信していました。Agent Teslaはかなり前から存在するよく知られたマルウェアで、被害コンピュータから機微情報を窃取し、その情報をFTP、SMTP、HTTP経由で攻撃者に送信することに重点がおかれています。そのために主にはキーストロークの記録、画面キャプチャ、カメラ録画、機密データへのアクセスなどが使われます。

パロアルトネットワークスのお客様は、Cortex XDRまたはWildFireと脅威防御セキュリティサブスクリプションを有効にした次世代ファイアウォールにより、同様の解析対策技術を使用するマルウェアファミリから保護されています。

Unit 42の関連トピック Malware, Agent Tesla, anti-analysis

目次

悪質なコンパイル済みHTMLヘルプファイル
第1段階のPowerShell
第2段階
最終段階のAgent Teslaペイロード
結論
IoC

悪質なコンパイル済みHTMLヘルプファイル

攻撃の第一段階はORDER OF CONTRACT-pdf.7zという名前の7zip圧縮ファイルを送っていました。この中には、悪質なコンパイル済みHTMLヘルプファイルORDER OF CONTRACT-pdf.chm(SHA256:081fd54d8d4731bbea9a2588ca53672feef0b835dc9fa9855b020a352819feaa) だけが含まれています。被害者がヘルプファイルを開くと一見無害そうなこのウィンドウが表示されます。

被害者がヘルプファイルを開くと一見無害そうなこのウィンドウが表示されます。
図1. デコイ(おとり)のHTMLヘルプウィンドウ

このヘルプファイルを7zipで解凍すると内容を見られます。ここで興味深いのが、おとりウィンドウを表示してコードを実行するkkjhk.htmというファイルです。

このコンパイル済みHTMLヘルプファイルは7zipで解凍すると内容を見られます。ここで興味深いのが、おとりウィンドウを表示してコードを実行するkkjhk.htmというファイルです。
図2. ヘルプファイルの内容

このファイルには難読化されたJavaScriptが含まれており、ファイルを開くと実行されます。

kkjhk.htmに含まれる難読化されたJavaScriptコード
図3. kkjhk.htmに含まれる難読化されたJavaScriptコード

Chromeでファイルを開き、Chromeデベロッパーツールを使うと、このコードの難読化を解除できます。上のコードは返り値が変数rに格納されることを示しています。ChromeデベロッパーツールのJavaScriptデバッガを使うとreturn文でブレークさせることができます。ブレークポイントで実行停止後、変数rの内容を確認してコピーすればさらに分析を進められます。

ブレークポイントで実行停止後、変数rの内容を確認してコピーすればさらに分析を進められます。Chromeデベロッパーツールでkkjhk.htmをデバッグしている様子を示すスクリーンショット
図4. Chromeデベロッパーツールでkkjhk.htmをデバッグ

変数rの内容は、おとりメッセージを表示するHTMLコードとPowerShellを実行するコマンドであることがわかります。

変数rの内容は、おとりメッセージを表示するHTMLコードとPowerShellを実行するコマンドであることがわかります。
図5. 難読化を解除されたkkjhk.htmの内容

第1段階のPowerShell

難読化されたPowerShellコードは、ファイルが開かれるとバックグラウンドで実行されます。

難読化されたPowerShellコードは、ファイルが開かれるとバックグラウンドで実行されます。
図6. 第1段階の難読化されたPowerShell

最後の難読化されたInvoke-Expression コマンドレット( I`E`X())を取り除いてコードの難読化を解除すればさらにコードが読みやすくなります。PowerShellは「」文字を無視するので、攻撃者が単純な文字列認識を避けようとして機微なコマンドに「」を挿入することはよくあります。このサンプルの場合、PowerShellのTest-Connectionコマンドレットを使ってGoogle にpingを送信することで接続状態を確認してから処理を継続していることがわかります。このサンプルでは次にhttp://pk-consult[.]hr/N2.jpgからコードをダウンロードして実行します。

最後の難読化されたInvoke-Expressionコマンドレット(I`E`X())を取り除いてコードの難読化を解除すればさらにコードが読みやすくなります。
図7 難読化を解除された第1段階のPowerShell

第2段階

ダウンロードされるのは実際にはjpegではなく実行用のさらなるPowerShellコードです。以下では複数のbyte型配列を展開してメモリにロードしている様子が見て取れます。

ダウンロードされるのは実際にはjpegではなく実行用のさらなるPowerShellコードです。以下では複数のbyte型配列を展開してメモリにロードしている様子が見て取れます。
図8 第2段階

ここでは実行部分をコメントアウトして、byte型配列をファイルに書き出すようにサンプルを修正すればよいです。

図9 byte型配列をファイルに書き込む
図9 byte型配列をファイルに書き込む

最終段階のAgent Teslaペイロード

これで、ローダーDLLが $decompressedByteArray  (SHA256: 0fd2e47d373e07488748ac63d9229fdef4fd83d51cf6da79a10628765956de7a)に残り、gzip圧縮されたAgent Teslaが $vhRo  (SHA256: c684f1a6ec49214eba61175303bcaacb91dc0eba75abd0bd0e2407f3e65bce2a)に残ります。ローダーDLLはAgent TeslaをRegAsm.exeプロセスにロードして実行します。

このAgent Teslaのサンプルは、FTPでftp.videoalliance[.]ruに接続してデータを漏出します。

結論

脅威アクターは悪質なペイロードを配信するための独創的手口を模索しています。配信でよく利用されるのは文書やスクリプトなどですが、Microsoft Compiled HTMLファイル(.chm)もアクターに悪用されうるファイル形式です。とくに知らない送信者からの添付ファイルには注意するようにユーザーを教育することが重要です。

パロアルトネットワークスのお客様は、Cortex XDRまたはWildFire脅威防御セキュリティサブスクリプションを有効にした次世代ファイアウォール(NGFW)により、同様の解析対策技術を使用するマルウェアファミリから保護されています。

IoC

3446ec621506d87d372c596e1d384d9fd2c1637b3655d7ccadf5d9f64678681e ORDER OF CONTRACT-pdf.7z

081fd54d8d4731bbea9a2588ca53672feef0b835dc9fa9855b020a352819feaa ORDER OF CONTRACT-pdf.chm

9ba024231d4aed094757324d8c65c35d605a51cdc1e18ae570f1b059085c2454 N2.jpg

0fd2e47d373e07488748ac63d9229fdef4fd83d51cf6da79a10628765956de7a GC.dll

c684f1a6ec49214eba61175303bcaacb91dc0eba75abd0bd0e2407f3e65bce2a Agent Tesla dotNet executable

hxxp://pk-consult[.]hr/N2.jpg

ftp.videoalliance[.]ru

Enlarged Image