目次
- イントロダクション
- 感染連鎖
- プロセスツリー
- キャンペーン1:
– 粘り強さ
– バッチファイル
– PowerShellスクリプト
– ローダー
– エックスワーム/レムコス - キャンペーン2
- 結論
- IOCS
- 検出
- MITRE攻撃のTTP
導入:
最近の脅威キャンペーンでは、XWormやRemcosなどのリモートアクセス型トロイの木馬を拡散するために、BATベースのローダーが巧妙に利用されていることが明らかになっています。これらのキャンペーンは、多くの場合、ImgKitなどの信頼できるプラットフォームにホストされているZIPアーカイブから始まり、ユーザーの操作を促すために正規のコンテンツに見せかけるように設計されています。
ZIPファイルを解凍すると、感染チェーンの初期段階として機能する高度に難読化されたBATスクリプトが含まれています。これらのBATファイルは、静的検出を回避する高度な技術を用いており、RATペイロードをメモリに直接注入するPowerShellベースのローダーを実行します。このアプローチにより、エンドポイント防御を回避するために近年増加しているマルウェアのファイルレス実行が可能になります。
このキャンペーンにおける注目すべき進展は、悪意のあるBATスクリプトの配布にSVGファイルが使用されていることです。これらのSVGにはJavaScriptが埋め込まれており、脆弱な環境でレンダリングされたり、フィッシングページに埋め込まれたりすると、実行チェーンがトリガーされます。この手法は、マルウェアの配信に従来とは異なるファイル形式が利用され、そのスクリプト機能を悪用して検出を回避する傾向を浮き彫りにしています。
感染チェーン:

プロセスツリー:

キャンペーン1:
キャンペーン1の分析中に、このキャンペーンに関連する複数のBATスクリプトを特定しました。これは、脅威の状況が進化していることを示しています。これらのスクリプトの中には、部分的またはテスト段階のコードを含むものもあり、現在も開発中であるように見えますが、ペイロードのダウンロード、実行を含む攻撃チェーン全体を実行できる完全な機能を備えたスクリプトもあります。
以下の画像には 2 つの BAT ファイルが表示されています。
- 方法 1: EML (電子メール ファイル) 経由で添付ファイルとして直接配信します。
- 方法 2: ImageKit プラットフォームでホストされている URL 経由でダウンロードします。
配信方法のこの多様性は、脅威の攻撃者が感染の成功率を高め、検出メカニズムを回避するためにさまざまなアプローチを実験していることを示唆しています。

持続性:
このマルウェアは、WindowsのスタートアップフォルダにBATファイルを作成することで永続性を実現します。これにより、ユーザーがシステムを起動したりアカウントにログインしたりするたびに、悪意のあるスクリプトが自動的に実行されるようになります。

バッチファイル:
下の図は、難読化された形式の BAT スクリプトと難読化解除されたバージョンを示しています。

PowerShell スクリプト:
下の図は、PowerShellのプロセスウィンドウと実行時に使用されたコマンドライン引数を示しています。これは、マルウェアがメモリ内ペイロード配信にPowerShellをどのように利用しているかを示唆しています。以降のセクションでは、XWormの展開におけるPowerShellスクリプトの役割を理解するために、PowerShellスクリプトを詳細に分析します。


このPowerShellコマンドは、Base64でエンコードされた文字列をデコードし、メモリ内で実行することでスクリプトを実行します。-nop でユーザープロファイルの読み込みを回避し、-whidden でウィンドウを非表示にし、iex (Invoke-Expression) でデコードされたコンテンツを実行します。
難読化解除されたスクリプト:

難読化解除されたスクリプトは2つの部分に分割されました。PowerShellスクリプトの最初の部分は、現在のユーザーのプロファイルディレクトリにあるバッチファイル(aoc.bat)に埋め込まれた難読化されたコードを見つけて実行するように設計されています。まず、環境変数からユーザー名を取得し、そのファイルへのフルパスを構築します。 aoc.bat です。 UTF-8エンコードですべての行を読み取り、各行を反復処理します。具体的には、トリプルコロンのコメントプレフィックス(:::)で始まり、その後にBase64エンコードされた文字列が続く行を探します。該当する行が見つかると、Base64文字列をバイト配列にデコードし、それをUnicode文字列に変換して変数$ttzhaeに割り当てます。このデコードされた文字列($ttzhae)には、PowerShellスクリプトの追加レイヤーが含まれており、Invoke-Expressionを使用してメモリ内で実行されます。これにより、攻撃者は一見無害なバッチファイルのコメント内に、複雑または多段階の悪意のあるPowerShellロジックを隠蔽して実行することができ、ステルス性の高いファイルレス実行が可能になります。

このスクリプトは、Windowsの主要なセキュリティメカニズムであるAMSI(Antimalware Scan Interface)とETW(Event Tracing for Windows)をプログラム的に無効化し、検出を回避します。.NETリフレクションと動的デリゲート作成を利用して、GetProcAddress、GetModuleHandle、VirtualProtect、AmsiInitializeなどのネイティブ関数を解決します。これらを利用して、メモリ内のAmsiScanBuffer関数を特定し、命令(mov eax, 0; ret)でパッチを適用することで、AMSIスキャンを効果的に回避します。同様に、EtwEventWriteの先頭をreturn命令で上書きすることで、イベントトレースを無効化します。これらのメモリ内変更により、悪意のあるPowerShellアクティビティが、エンドポイント保護ソリューションによるログ記録やスキャンを回避しながら、ステルス的に実行できるようになります。

PowerShellスクリプトの2番目の部分では、まず環境から現在のユーザー名を取得し、次の名前のファイルへのパスを構築します。 aoc.bat ユーザーのプロファイルディレクトリにあります。このバッチファイル内に隠された、暗号化および圧縮された .NET アセンブリとして埋め込まれたペイロードを実行します。スクリプトは、:: で始まるコメント行を検索します。この行には、Base64 でエンコードされたペイロード文字列が含まれます。この文字列は、バックスラッシュ (\) を区切り文字として 64 つの部分に分割されます。各部分は、図に示すように、Base7 デコード、ハードコードされたキーと IV を使用した AES 復号化 (PKCSXNUMX パディングを使用した CBC モード)、GZIP 解凍の順に実行されます。その結果、XNUMX つの別々の .NET アセンブリが生成され、どちらもメモリに直接ロードされて実行されます。最初のアセンブリは引数なしで呼び出され、XNUMX 番目のアセンブリはシミュレートされたコマンドライン入力として '%*' が渡されて実行されます。

2 番目のペイロードはより重要な役割を果たします。最終的なマルウェア (XWorm リモート アクセス トロイの木馬 (RAT)) を実行するローダーとして機能します。

ローダー
このローダーは、検出を回避し、イベントログを無効化し、埋め込まれたペイロードをメモリ内で直接実行するように設計されています。これは、Assembly.Load を介して .NET 実行ファイルを復号して実行するか、VirtualProtect とデリゲートを使用して復号されたシェルコードを実行することで実現されます。



ローダー機能:
- 検出を回避する

- イベントログを無効にする

- 埋め込まれたペイロードを抽出して実行する
本稿では、メモリ内実行技術を利用して検出を回避し、ステルス的に存続する複数のローダーを特定しました。これらのローダーの一部には、暗号化された.NET実行ファイルが含まれており、実行時に復号され、Assembly.Loadとそれに続く.EntryPoint.Invokeを使用してメモリから直接実行されます。これにより、ローダーは実行ファイルをディスクに書き込むことなく、マネージドコードを実行できます。
一方、他の亜種はバイナリではなく暗号化されたシェルコードを持っています。これらの亜種はシェルコードを復号し、VirtualProtectを使用してメモリ保護を変更して実行可能にし、Marshal.GetDelegateForFunctionPointerで作成されたデリゲートを使用して実行します。以下の図に示すように、

- 固執

エックスワーム
以前にも報告した エックスワーム の三脚と レムコス 今年初めに、そのコア機能、キーロギング、リモート コマンド実行、データ窃盗などの高度な機能、そして永続化と回避の方法について詳細な分析を提供しました。

XWormに加えて、同じキャンペーンのいくつかの亜種も利用しました。 レムコスは、リモート デスクトップ アクセス、キーロギング、コマンド実行、ファイル操作、スクリーンショット キャプチャ、データ窃盗などのさまざまな機能を備えた、広く知られている商用のリモート アクセス型トロイの木馬 (RAT) です。
キャンペーン2:
キャンペーン2では、主にフィッシング攻撃で利用されるJavaScriptが埋め込まれたSVG(スケーラブル・ベクター・グラフィックス)ファイルを利用することで、マルウェア配信に顕著な変化が見られます。これらの悪意のあるSVGファイルは、正規の画像ファイルに見せかけるように巧妙に細工されており、脆弱なソフトウェア環境(古い画像ビューアやメールクライアントなど)でレンダリングされたり、無防備なユーザーを誘い込むために設計されたフィッシングWebページに埋め込まれたりします。現在、SVGファイルに埋め込まれたJavaScriptはトリガーメカニズムとして機能し、SVGファイルが開かれたりプレビューされたりすると、ZIPアーカイブの自動ダウンロードを開始します。
ダウンロードされたZIPアーカイブには、マルウェアの初期アクセスベクトルとして機能する難読化されたBATスクリプトが含まれています。ユーザーが手動で、またはソーシャルエンジニアリングの手法でBATスクリプトを実行すると、キャンペーン1で確認されたものと同様の多段階の感染チェーンが開始されます。具体的には、BATスクリプトはPowerShellコマンドを呼び出して、メモリ内で直接ローダー実行ファイル(EXE)をデコード・実行します。このローダーは、最終的なペイロード(このキャンペーンではXWormリモートアクセス型トロイの木馬(RAT))の復号と展開を担います。
SVGを配信手段として利用することは、攻撃手法における注目すべき進化を示しています。画像ファイルは一般的に無害とみなされ、従来のセキュリティツールによる詳細なコンテンツ検査の対象外となることが多いためです。SVGのスクリプト機能を悪用することで、脅威アクターは境界防御を効果的に回避し、ファイルレスかつステルス性の高い方法で悪意のあるペイロードを配信することが可能になります。
まとめ:
これらのキャンペーンは、XWormやRemcosといったリモートアクセス型トロイの木馬を拡散するために、難読化されたスクリプト、ファイルレスマルウェア、そしてSVGのような非伝統的なファイル形式が利用される傾向が高まっていることを浮き彫りにしています。攻撃者はペイロードをBATファイルに埋め込み、PowerShell経由で実行することで、静的な防御を効果的に回避します。フィッシング攻撃におけるSVGの利用からマルウェアの拡散へと移行していることから、このような進化する脅威に対抗するには、行動検知、コンテンツ検査、そしてユーザー意識の向上が不可欠であることが改めて浮き彫りになっています。
IOCS:
| MD5 | File |
| EDA018A9D51F3B09C20E88A15F630DF5 | BAT |
| 23E30938E00F89BF345C9C1E58A6CC1D | JS |
| 1CE36351D7175E9244209AE0D42759D9 | ローダ |
| EC04BC20CA447556C3BDCFCBF6662C60 | エックスワーム |
| D439CB98CF44D359C6ABCDDDB6E85454 | レムコス |
検出:
Trojan.LoaderCiR
Trojan.GenericFC.S29960909
MITRE攻撃のTTP:
| 戦略 | テクニックIDと名前 | 詳細説明 |
| 実行 | T1059.001 – コマンドおよびスクリプトインタープリタ: PowerShell | PowerShell は、コマンドの解釈、データの復号化、ペイロードの呼び出しに使用されます。 |
| T1106 – API経由の実行 | スクリプトは、.NET API (Assembly.Load、Invoke など) を使用して、メモリ内のペイロードを実行します。 | |
| 防衛回避 | T1027 – 難読化されたファイルまたは情報 | ペイロードは Base64 でエンコードされ、AES で暗号化され、静的検出を回避するために圧縮されます。 |
| T1140 – ファイルまたは情報の難読化解除/デコード | スクリプトは実行前にペイロードをデコードして解凍します。 | |
| T1055.012 – プロセスインジェクション: .NETアセンブリインジェクション | ペイロードはメモリにロードされる | |
| T1036 – マスカレード | 悪意のあるコンテンツはバッチファイル内に隠されています。 | |
| 固執 | T1053 – スケジュールされたタスク/ジョブ | スタートアップメニューから永続性を確立します。 |
| 初期アクセス | T1204 – ユーザー実行 | 実行はユーザーが手動でバッチファイルを実行することに依存する |
| コマンドおよび制御 | T1132 – データエンコーディング | コマンドまたはペイロードをエンコードするには、Base64 と暗号化が使用されます。 |
| T1219 – リモートアクセスソフトウェア | Xworm は、感染したホストへの完全なリモート アクセスと制御を提供します。 | |
| クレデンシャルアクセス | T1056.001 – 入力キャプチャ:キーロギング | XWorm には、ユーザーの入力と資格情報を盗むキーロギング機能が含まれています。 |
| exfiltration | T1041 – C2 チャネルを介した漏洩 | 盗まれたデータは、Xworm が使用するのと同じ C2 チャネルを介して流出します。 |
著者:
ヴァイブハブ・ビラデ
ルマナ・シディキ



