ばらまきメールに潜む死神の悪戯を紐解く

The English version of this post will be coming soon.

はじめに

当社では、日常的に大量のばらまき型の攻撃メールを観測しており、その中で新たな攻撃や日本に対する大規模なキャンペーンの萌芽を把握するために、検体を日々確認しています。特に、ビジネスで通常使われない拡張子を持つファイルが添付されたメールや、日本語の攻撃メールは標的型攻撃メールの可能性も考慮し注視しています。

今回のブログでは、最近観測された多段の感染プロセスを有する日本語のばらまき型攻撃メールの解析内容について解説します。
この検体は難読化された VBScript や PowerShell スクリプトに加えて、不正コードが埋め込まれた画像(ステガノグラフィー)や、フリーの画像アップロードサイト・テキスト共有サイトをペイロードの取得先として悪用するなど、従来からある様々な攻撃が組み合わされていました。

ステガノグラフィーとは

データの中に別のデータを隠蔽する技術のこと。

感染フロー

今回の検体は被害者の環境に AgentTesla に感染させることを目的としていました。

AgentTesla とは

2014年以降に観察されている .NET Framework で書かれたインフォスティーラーの一種である。
被害者のキーボード入力やシステムのクリップボードの内容、スクリーンショットやインストールされているソフトウェアの認証情報を収集する。収集された情報はその他の攻撃者に提供される場合がある。
https://attack.mitre.org/software/S0331/

このマルウェアの感染に至るまでのフローは以下の通りです。

図1. 感染フロー

メールの接到から最終的なマルウェアの感染に至るまで複数のプロセスが実行されていることがわかります。 このプロセスを読み解いていきましょう。

攻撃メール

観測されたメールは以下の通りでした。

図2. メール検体

メールの内容は、ばらまき型の攻撃メールでよく使用される「支払い」に関するものでした。 送信元は、不正に取得されたと推定されるベトナムの医療サービス会社のメールアカウントで、日本銀行に関わる文面でありながら、韓国銀行の領収書というファイルが添付されている、少しちぐはぐな内容です。 末尾の文章に記載されているドメインも公式の日本銀行のドメインではなく、サービスセンターの連絡先もタイの銀行と推定され、金融機関のメールを装っているものの一貫性のない内容でした。 添付ファイルの韓国銀行の領収書.tar.lz (md5: b73f8d56d31da6673025be38a4beb336)という圧縮ファイルには、韓国銀行の領収書.vbs (md5: 6665a0f0f0b1d55cb8a85f115a8a1d07)という VBScript ファイルが含まれており、ユーザはこの VBScript ファイルを実行することで最終的にはマルウェアに感染してしまいます。
なお、この .vbs という拡張子は、 Windows の通常の設定では表示されていないことから、ユーザには韓国銀行の領収書というファイルに見えてしまいます。

解析結果

では VBScript ファイル を解析してみましょう。

図3. 韓国銀行の領収書 .vbs のコード

VBScript ファイルに書かれたスクリプトは、まず paste[.]ee というフリーのテキスト共有サイトから文字列データを取得します。
このようにフリーのテキスト共有サイトから次の攻撃に繋がるデータを取得する手法は以前から観測されています。

参考

暗号資産のウォレットを狙う新種情報窃取型マルウェア「Panda Stealer」の攻撃手口を解説

また、エラーが発生した際に表示されるメッセージがポルトガル語であることも特徴的と言えます。この VBScript の開発者はポルトガル語に堪能なのでしょうか。

図4. 分析時点(2024年4月10日)で確認できた文字列 (paste[.]ee)

この paste[.]ee から取得された文字列は VBScript によって結合・置換処理されたのち、 PowerShell スクリプトとして実行されます。

さらにこの PowerShell スクリプトは、図5上段のとおり変数 codigo に格納された難読化された文字列(緑で色付けしている部分)に対して、文字列 DgTre を文字 A に置換する処理を行った後、Base64 デコードして図5下段の PowerShell スクリプトを実行します。

図5. VBScript から実行される PowerShell スクリプト

このように特定の文字列を置き換えたり、別の形式へデータを変換して使用することで、セキュリティ製品による検知を回避する狙いがあるものと考えられます。

この実行された PowerShell スクリプトは uploaddeimagens[.]com[.]br というフリーの画像共有サイトから new_image_vbs.jpg という画像ファイルを取得し、画像データに埋め込まれている悪性コードを取り出して使用しています。 画像ファイルの例は図6として示します。(※著作権に配慮して実際の画像にモザイク処理を施しています。) なお、PowerShell スクリプト内には二種類の通信先が格納されており、通信先の画像はどちらも同じデザインでしたが、悪性コードが埋め込まれているのはそのうちの一方のみでした。

図6. new_image_vbs.jpg の画像(モザイク処理後)と埋め込まれているコード

このようにフリーの画像共有サイトからデータを取得し、画像データから悪性コードを切り出す手法もまた、以前から多くのマルウェアが悪用している手法です。

参考

日本を狙うばらまきメールキャン ペーンの脅威動向分析と対策

攻撃者はセキュリティ対策を取りにくい以下の方法でペイロードを取得することで、検知を回避する狙いがあるのではないかと考えています。

  • 画像共有サイトよりデータを取得
    →サイト自体は悪性でないため一括でのアクセス制限が困難

  • HTTPS通信によるデータの取得
    →通信をSSL復号してログを記録していない環境ではアクセスしたパスの特定が困難

PowerShell スクリプト内に格納されている二つの通信先から new_image_vbs.jpg の画像を取得後、 画像を結合、データ内に埋め込まれているデータの<<BASE64_START>><<BASE64_END>>のタグで囲まれた文字列を抽出し Base64 でデコードした .NET ファイルをロードします。この .NET ファイルもローダータイプのマルウェアです。以降 .NET Loader と呼称します。

続いて、.NET Loader に用意された PROJETOAUTOMACAO.VB 内の Home クラスの VAI メソッドに処理が移ります。その際に反転された通信先である txt.ude/ba/moc[.]o<redacted>m//:spxxh を含むいくつかの引数が渡されます。この引数については後述します。 ※通信先は改ざんされたサイトのドメインのため伏字としています

図7. VAI メソッド内のコード

VAI メソッドでは、最初に Project 内の Class6 クラスの start メソッドに処理が移り、 C:\ProgramData\ 内の Name_File.vbs というファイルの存在有無をチェックして、存在しない場合に次のコマンドを実行してカレントディレクトリ内に存在する VBScript ファイル(韓国銀行の領収書.vbs )を C:\ProgramData\ へコピーします。

C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -WindowStyle Hidden Copy-Item -Path *.vbs -Destination C:\ProgramData\Name_File.vbs

さらにカレントユーザのレジストリのRunキー(SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run)へ C:\ProgramData\Name_File.vbs を登録して、永続化を行います。

図8. start メソッドのファイルのチェックと永続化

続いて、 VAI メソッドに処理が戻り 図9のとおり _applicationNameC:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBUILD.exe という文字列をセットしています。これは後述する Process Hollowing と呼ばれるコードインジェクションを目的とした準備であることが判明しています。

図9. 正規プロセスの指定

次に、図10 の通り反転された通信先を元の状態に戻し、最終的なマルウェアのペイロードを取得します。

図10. 反転処理

この検体では、 txt.ude/ba/moc[.]o<redacted>m//:spxxh という文字列を hxxps://m<redacted>o[.]com/ab/edu[.]txt というURLに復元し、このURLからデータを取得していました。

取得されたデータはその様相から、何らかのデータを Base64 でエンコードしたうえで反転したものであると推察できたため、実際にCyberChef を使って反転・デコードした結果、 PE ファイルであることがわかりました。

図11. データを反転させたうえで、Base64 デコードすることでPEファイルを取得

最後に、図12 のとおり_applicationName に指定された C:\\Windows\Microsoft.NET\Framework\v4.0.30319\MSBUILD.exe を起動し、そのプロセスのメモリ内にデコードした PE ファイルをコードインジェクションし感染させています。 これは Process Hollowing と呼ばれるインジェクション手法でセキュリティ製品の検知回避を目的に実装されています。

参考:

Process Injection: Process Hollowing

図12. Process Hollowing

また CyberChef の結果から得られた PE ファイルを解析したところ、 .NET の AgentTeslaであることが判明しました。

AgentTesla には窃取した情報をメールを用いて外部へ持ち出す機能があり、窃取情報の送信先が mail[.]privateemail[.]com (ポート:587、プロトコル:smtp) であることを特定しました。図13は AgentTesla の malware configurationです。

図13. AgentTesla のmalware configuration

考察

当社では、同様の感染手法により、Remcos、XLoader(旧 Formbook )などの複数マルウェアの感染を狙う攻撃を観測しています。 また、関連する複数の検体情報から XLA や RTF も使用するなど積極的にファイル形式を変化させていることも確認しており、攻撃者自身が試行錯誤しながら攻撃を行っていることを観測しています。

この記事を公開する前日(2024年4月15日)に、PT Security社がSteganoAmor campaignのブログを公開しました。この記事に記載されている検体は、タイムリーに我々が分析していた検体と同様のものでした。

参考

SteganoAmor campaign: TA558 mass-attacking companies and public institutions all around the world

今後、更なる多段アクセスによる感染フローの複雑化やスクリプトの難読化、新たな手法の採用など、より高度な検知回避や解析妨害を目的とした実装が施される恐れがあり、引き続き注視が必要である手法の一つとして考えています。

防御策

当社ではこのようなマルウェアの感染を狙った攻撃メールに対して、以下の管理策を実施しています。

  • スパムフィルタを使用してVBSファイルが添付されたメールを検疫する
    • ※単なる添付ファイルだけでなく、zip形式の圧縮ファイル内を探査して同様のルールを適用できる製品を利用

IoCs

file name type MD5 SHA1 SHA256
韓国銀行の領収書.tar.lz 添付ファイル b73f8d56d31da6673025be38a4beb336 c13241205c24133f1d042283777c94fc9f083959 a5cd72de5d9b49324a4c3acce4dfd99b9cd07c5561b3df3178d5773980a327ad
韓国銀行の領収書.vbs(韓国銀行の領収書.tar.lz の解凍後ファイル) ダウンローダ 6665a0f0f0b1d55cb8a85f115a8a1d07 0db07da604d0ad9b033df395b3843a815ae415c9 b9bbdc47e828eac24efc1576ef757a4a9fe72627f591b6ba74c6a57d6b47cc17
1gYLt 悪性コード f94961734344d5b8f90871c428d180ea b8ab78334f58e1cdf9374ffa8b4697f1cf2313ec 10f0724e4a33ecb99465285d8b77602c68d07533cfaee7a7cea9f5f5ac273398
new_image_vbs.jpg(979/original) 画像ファイル 63d7161e549f4ae373e2ec328cc10bcc e074e84f245766b5693bb85a3be48ce65196a79b 8b337abd81fe0fa0cfb773bc185da8ebcca425adb14f81c61e7c060e7d81aea1
new_image_vbs.jpg(978/full/) 画像ファイル f48bc3d4ae14d039e9577aefbd64a680 1c47b7302dcaf3950dbf34d2bf9b91ca56078ba2 125514526ff630048097768f8d247112b0ff80b16126b32a3440dc5416998a64
N/A (画像に埋め込まれた)ダウンローダ 8bae771d41d8713a3583d24005c9039b 6895ea61ce4600e6129353b0c5ae58f16bf26a78 bbd3b070c7a7185603cdbfb576e7bcc9c01cd5c8263666b3a3ee5de5e3a427ab
edu[.]txt エンコードされたAgentTesla 3d95db8e258c5c636f6c0e167b2a47fe bb65218a2eec9689b6db9a6c2aa8a6dfc531b6d3 0efdd91c6d1ffeca6e8eda3ece36cd849272dce1a2d9ab3c208be65a370d4493
N/A AgentTesla 59a8039570f0634f82e7d25bddd37658 868fc0385ba057cef96178eb54f04677fc4a3aed eda52b32b68b4a7f91bf7ddc52967d6541aa2d7d0ffbfd7a2cf1f70727bae239
通信先
hxxps://paste[.]ee/d/1gYLt
hxxps://uploaddeimagens[.]com[.]br/images/004/766/979/original/new_image_vbs[.]jpg?1712588500
hxxps://uploaddeimagens[.]com[.]br/images/004/766/978/full/new_image_vbs[.]jpg?1712588469
hxxps:// m<redacted>o[.]com /ab/edu[.]txt
mail[.]privateemail[.]com (ポート:587、プロトコル:smtp)