Contents
- イントロダクション
- キャンペーン概要
- 初期アクセス
- 感染連鎖
- テクニカル分析
- ステージ1:初回配信(アーカイブ→JavaScript)
- ステージ2:PowerShell Loader1の分析
- ステージ3:PowerShell Loader2の分析
- ステージ4 – Phantom Stealer v3.5.0: データ収集とデータ流出
- キャンペーンの帰属
- 結論
- IOCの
- Seqrite 検出範囲-
- MITRE 攻撃戦術、手法、手順 (TTP)
イントロダクション
フィッシング攻撃は、受信者が信頼しそうな通常のビジネス通信を装うことで、ますます進化を続けています。今回の調査で、圧縮アーカイブ添付ファイルに悪意のあるJavaScriptファイルを仕込むために、複数のフィッシングの手口を用いる攻撃キャンペーンを発見しました。これらのメールは、グローバル物流プロバイダーや政府の税務当局など、それぞれ異なる信頼できる組織になりすましていますが、最終的には同一の多段階感染経路へと誘導します。
実行されると、JavaScriptダウンローダーは難読化されたPowerShellスクリプトを起動し、メモリ上で悪意のあるワークフロー全体を実行することで、ディスク上のデータ量を大幅に削減し、検出をより困難にします。感染チェーンは最終的にPhantom Stealer v3.5.0を展開し、侵害されたシステムから機密情報を収集し、エンコードされたコンテンツを使用してSMTP経由で収集したデータを外部に送信します。
このキャンペーンは、脅威アクターが、従来のセキュリティ対策を回避し、企業環境を侵害するために、説得力のあるビジネスをテーマにしたソーシャルエンジニアリングと、多層的な難読化およびファイルレス実行技術をますます組み合わせている現状を浮き彫りにしています。
キャンペーン概要
この攻撃キャンペーンは、巧妙に作成されたフィッシングメールを利用しており、受信者を騙して圧縮アーカイブ添付ファイル内に隠された悪意のあるJavaScriptファイルを実行させることを目的としています。分析の結果、異なるソーシャルエンジニアリングの手法を用いて同じマルウェアを配信する、2種類のフィッシングメールを特定しました。
最初のメールはUPSフォワーディングハブを装い、出荷予約の詳細と見積もり情報を提示することで、調達や物流関連の業務に携わるユーザーを誘い込みます。2番目のメールはマレーシア内国歳入庁(LHDN)からの公式通知を装い、法人税監査のための書類提出を要求することで、財務や法令遵守を担当する受信者に圧力をかけます。
誘い文句は異なるものの、どちらも迅速な対応が求められる馴染みのあるビジネスワークフローを悪用している。攻撃者は、信頼できるブランド、現実的なビジネスシナリオ、そして緊急性を巧みに利用することで、受信者が添付ファイルを開き、埋め込まれたJavaScriptを実行する可能性を高めている。
初期アクセス
このキャンペーンは、正規のビジネスコミュニケーションを模倣したフィッシングメールから始まります。調査の結果、異なるビジネスシナリオを装った2つのフィッシングメールが確認されましたが、どちらも同じ攻撃手法を用いていました。
・メール1 – UPS出荷通知

最初のフィッシングメールは、 UPS転送ハブ そして、このメールは通常の出荷予約依頼を装っています。調達担当のメールボックス宛てで、出荷番号、見積ID、配送詳細、受取人料金などが記載されており、日常業務でやり取りされる正規の物流関連の通信と矛盾しないように見えます。さらに信憑性を高めるため、メールにはブランドロゴ、出荷情報、そして関連する出荷書類が含まれているとされる圧縮アーカイブファイルが添付されています。
興味深いことに、 出荷明細には2025年6月25日付けの見積書が記載されているが、メール自体は2026年6月に送信されているため、フィッシングテンプレートは以前のキャンペーンから再利用されたか、すべての項目を完全に更新せずに作成された可能性が高い。
・メール2 – マレーシア税務監査通知

2番目のフィッシングメールは、 マレーシア内国歳入庁 (LHDN) この通知はすべてマレー語で書かれており、公式の税務監査通知のように見えます。2026年度の法人税評価に必要な書類の提出を求め、14日間の提出期限を設けることで、緊急性を煽っています。攻撃者は、正規の税務書類、政府機関、公式連絡先情報を参照することで、信頼性を確立し、受信者に添付されたアーカイブを開くよう説得しようとしています。
現地語と規制上の文脈により、このメールは税務コンプライアンスに関する通常のビジネス文書のように見える。
共通配送メカニズム
ソーシャルエンジニアリングの手法は異なるものの、どちらのメールも圧縮アーカイブにパッケージ化された同じ悪意のあるJavaScriptファイルを配布している。これは、攻撃者が一貫したマルウェア配信経路を再利用しつつ、さまざまなビジネスシナリオに合わせて誘い文句を調整していることを示している。
感染連鎖
図3は、我々の分析で観察された感染チェーン全体を示しています。このキャンペーンは階層的な実行ワークフローを採用しており、各段階で次のコンポーネントが段階的に再構築され、起動され、最終的にPhantom Stealer v3.5.0が展開されます。

テクニカル分析
ステージ1:初回配信(アーカイブ→JavaScript)
どちらのフィッシングメールも圧縮アーカイブ添付ファイルを配信します。含まれているJavaScriptは、フィッシングメールのテーマによく似たファイル名を使用して偽装されています。観測されたサンプル全体を通して、攻撃者は次のようなビジネスに関連した名前を使用しています。
- UPS Docs_Shipment Number 3264010420-Quote ID 203263067.js
- 2026年5月付請求書MBB531540の銀行振込伝票 dd 20042026.js
- CKHT800A_RUJ ATC13529CWYE25M.js
ファイル名をソーシャルエンジニアリングの誘い文句に合わせて調整することで、添付ファイルは正規の配送書類、銀行取引記録、または税務関連ファイルのように見え、受信者が疑うことなく実行する可能性が高まる。
JavaScriptファイルの分析
このスクリプトは、悪意のある活動を直ちに実行するのではなく、まず複数の文字列難読化と間接的な関数呼び出しによってその機能を隠蔽する。

関数名、メソッド呼び出し、コマンド文字列などは、隠された文字列配列を参照する数値インデックスに置き換えられるため、スクリプトは実際よりもはるかに複雑に見える。
このスクリプトには、基本的な算術演算や比較演算を実行するだけのヘルパー関数が多数含まれています。これらのラッパー関数は機能的な利点をもたらすどころか、アナリストが実際の実行ロジックに到達するまでに複数の間接参照層をたどらざるを得ないため、可読性が大幅に低下します。エンコードされた文字列配列は一度だけ初期化され、その後再利用されるため、実行フローがさらに不明瞭になります。
JavaScript Loaderの機能
難読化によってスクリプトの動作は当初隠蔽されるが、埋め込まれた文字列を復元することで、その意図された機能が明確になる。デコードされた文字列には、PowerShell、ネイティブのWindows COMオブジェクト、ファイル操作、WMIへの参照が含まれており、これらはすべて、単独のマルウェアペイロードではなく、綿密に設計されたローダーであることを示している。

これらの痕跡は、JavaScriptが実行環境の準備、次の段階の再構築、およびPowerShellへの制御の移譲を担当していることを示しています。この階層的なアプローチにより、コアペイロードは実行時まで隠蔽されるため、静的解析は著しく困難になります。
埋め込みBase64ペイロード
このローダーの最も注目すべき特徴の一つは、JavaScriptソースコード内にBase64エンコードされた大きなデータブロックが直接埋め込まれている点です。JavaScriptローダーは、次の段階を外部ソースからダウンロードするのではなく、Base64エンコードされたPowerShellスクリプト全体をソースコード内に埋め込んでいます。

エンコードされたペイロードはJavaScriptオブジェクトのプロパティとして保存され、実行時にのみ再構築されるため、ローダーは自己完結型のままで、実際のPowerShellロジックを静的検査から隠蔽することができます。
初期化が完了すると、JavaScriptはencodedDataオブジェクトに格納されているBase64エンコードされたPowerShellペイロードを取得します。ローダーはネイティブのWindows COMコンポーネントを使用して、埋め込まれたコンテンツをデコードし、PowerShellスクリプトを再構築して、一時的な.ps1ファイルに書き込みます。その後、隠された実行パラメータを指定してpowershell.exeを呼び出し、感染チェーンの次の段階に制御を移します。
PowerShell を実行する JavaScript の典型的な実行シーケンスは次のとおりです。

ステージ2:PowerShell Loader1の分析
PowerShellローダーは、次の段階をプレーンテキストで直接埋め込むのではなく、AES暗号化されたペイロードとして保存します。暗号化されたコンテンツ、暗号化キー、および初期化ベクトル(IV)はすべて、Base64エンコードされた文字列としてスクリプト内に埋め込まれます。これにより、ローダーは完全に自己完結型のままで、実際の悪意のあるロジックは実行時まで隠蔽されます。


暗号化されたペイロードを復号化する前に、スクリプトは埋め込まれたBase64文字列から空白と改行を削除し、連続したデータストリームを再構築します。次に、.NETのConvert.FromBase64String()メソッドを使用して、クリーンアップされた文字列をバイト配列に変換します。同じルーチンが、暗号化されたペイロード、AESキー、および初期化ベクトルの処理にも再利用されます。
AES復号ルーチン
Base64エンコードされたコンポーネントがバイト配列に変換されると、ローダーは.NETのAesCryptoServiceProviderクラスを使用して隠されたペイロードを再構築します。

このスクリプトは、暗号化されたデータを完全にメモリ上で処理する復号オブジェクトを作成する前に、PKCS7パディングを使用したCBCモードで暗号が動作するように設定しています。カスタム復号ルーチンではなくネイティブの.NET暗号化ライブラリを使用することで、ローダーは信頼性が高くコンパクトな実装を実現し、実行時まで次の段階を隠蔽します。
復号化されたバイト列は、CryptoStreamを介してMemoryStreamに書き込まれるため、復号化プロセス全体がメモリ内で実行される。
実行
プレーンテキストスクリプトの復元に成功すると、ローダーはInvoke-Expressionを使用して実行を即座に転送します。これにより、スクリプトはメモリから直接実行できるようになり、侵害されたシステムに追加のファイルを作成することなく次の段階を開始できます。

ステージ3:PowerShell Loader2の分析
この感染連鎖の第3段階は、第2段階のPowerShellから生成された、Base64で復号化された別のブロブです。

埋め込みスクリプトの復号化に重点を置いた前の段階とは異なり、このローダーは保護された.NETアセンブリを復元し、実行環境を監視し、アセンブリをディスクに書き込むことなくメモリから直接起動する役割を担います。
反射実行のための最終ペイロードの準備
二次PowerShellスクリプトの分析により、感染経路においてそれぞれ異なる役割を果たす2つの異なるペイロードが埋め込まれていることが明らかになった。
・ペイロード1:インジェクター
最初のペイロードは、単純なXOR暗号で保護されたBase64エンコードされたデータとして格納されます。このアセンブリは、後続のステージを実行する役割を担うインメモリインジェクターとして機能します。
実行前に、PowerShellローダーはBase64データをデコードし、ハードコードされたキーを使用してXOR復号ルーチンを適用します。 「DEVILboy56@@」 メモリ上に元のアセンブリを再構築する。


base64形式のデータに対するXOR復号化が成功し、.NETアセンブリがメモリに直接ロードされました。


・ペイロード2:ファントムスティーラー
2つ目のペイロードは、PowerShellローダーに10進数形式で格納された生のバイト配列として埋め込まれています。

バイト配列を調べたところ、「MZ」 DOSヘッダー(4D 5A)が見つかり、シェルコードやエンコードされたデータではなく、有効なポータブル実行可能ファイル(PE)イメージであることが確認されました。最初のペイロードとは異なり、このPEファイルはPowerShellスクリプトによって復号化されません。代わりに、正当なaspnet_compiler.exeバイナリへのパスとともに、リフレクティブ.NETアセンブリへの引数として直接渡されます。


この設計では、各コンポーネントの役割が明確に分離されています。
- PowerShellスクリプトは主にオーケストレーターとして機能し、リフレクティブローダーを復旧して、ターゲットプロセスと埋め込みPEペイロードをローダーに供給します。
- 実際の注入および実行ロジックは、メモリ内の.NETアセンブリに委任されるため、PowerShell段階の複雑さが大幅に軽減され、最終的なマルウェアは次の実行段階まで隠蔽されます。
ステージ4 – Phantom Stealer v3.5.0: データ収集とデータ流出
反射型.NETローダーの実行が成功すると、攻撃はPhantom Stealer v3.5.0の展開で最高潮に達します。このスティーラーは、侵害されたシステムからホスト情報、インストール済みアプリケーション、ブラウザ認証情報、Cookie、保存された支払い情報、暗号通貨ウォレット、および一般的なメッセージングアプリケーションに関連付けられたデータなど、幅広い機密情報を収集することに重点を置いています。マルウェアは複数のソースから情報を収集することで、データ流出を開始する前に、侵害されたホストの価値を最大化することを目指しています。

情報収集
Phantom Stealerは感染したシステムを列挙し、多数のアプリケーションとユーザープロファイルから情報を収集します。収集されるデータには、システム情報、インストール済みソフトウェア、ブラウザ認証情報、Cookie、保存された決済カード情報、閲覧履歴、暗号通貨ウォレットやメッセージングアプリケーションに関連するファイルなどが含まれます。収集された情報は、アプリケーションまたはデータタイプに基づいて個別のファイルに整理されるため、その後のデータ流出が容易になります。
採取された遺物の例としては、以下のようなものがある。
- Chromium_パスワード_ 。TXT
- クロミウムクレジットカード。TXT
- Chromium_cookies_ .json
- ゲッコーのパスワード。TXT
- ゲッコークッキーズ.json
SMTP認証
セッション確立後、マルウェアはAUTH LOGINメカニズムを使用してSMTPサーバーで認証を行います。ユーザー名とパスワードはBase64エンコードされた形式で送信され、その後SMTPサーバーが送信メールの中継アクセスを許可します。
分析の結果、以下の認証情報が確認されました。
ユーザー名(Base64):cnVoaUBha3Rla21ldGFsLmNvbS50cg==
デコード先: ruhi@aktekmetal[.]com[.]tr
認証が正常に完了する前に、パスワードも同様にBase64エンコードされた形式で送信されます。

脅威アクターによって収集されたbase64データをデコードしたところ(図18参照)、実際のデータは以下の形式で見つかりました。

SMTPベースのデータ漏洩
ファントムスティーラーは収集した情報を直接送信します 簡易メール転送プロトコル(SMTP)動的解析により、マルウェアがSMTPセッションを確立することが明らかになった。 TCPポート587認証済みメール配信の標準送信ポート。メールサーバーに接続後、マルウェアは 拡張SMTP(ESMTP) を使用したセッション えーろ コマンドを実行し、その後通信チャネルをアップグレードします。 STARTTLS送信される認証情報や盗まれた情報が、転送中にTLS暗号化によって保護されることを保証する。
Phantom Stealerは、盗まれたすべての情報を単一のアーカイブにまとめるのではなく、特定のアプリケーションまたは認証情報のカテゴリに対応する複数のファイルを生成します。

収集した情報の送信に成功すると、マルウェアはQUITコマンドを使用してSMTPセッションを正常に終了します。これにより、標準的なSMTPセマンティクスを使用してメールトランザクションが完了し、悪意のある通信が正規の送信メールトラフィックと酷似したものになります。
キャンペーンの帰属
分析時点では、この攻撃キャンペーンを特定の脅威アクターや侵入グループに結びつける決定的な証拠は見つかりませんでした。最終的なペイロードはPhantom Stealer v3.5.0と特定されていますが、このマルウェアはサイバー犯罪のエコシステム内で広く流通しており、複数の攻撃者に採用されています。
結論
このキャンペーンは、現代のフィッシング攻撃が、単なるマルウェア配信から、綿密に計画された多段階攻撃へと進化していることを示しています。攻撃者は、物流、銀行業務、規制遵守などに関する正規のビジネスコミュニケーションを装うことで、ユーザーの操作を引き出す可能性を高めつつ、一見すると日常的な文書の裏に高度な実行ワークフローを隠蔽しています。
最終的なペイロードを直接公開するのではなく、各段階では感染チェーンの次の構成要素のみが明らかにされるため、静的解析の複雑さが大幅に増し、早期発見の機会が減少します。
組織にとって、このキャンペーンは、信頼できる物流業者、金融機関、政府機関から送信されたように見えるものであっても、ビジネス関連のメールには注意が必要であることを改めて認識させるものです。メールのセキュリティを強化し、従業員に予期しない添付ファイルを確認するよう教育し、不要なスクリプトの実行を制限し、疑わしいPowerShellアクティビティ、リフレクティブメモリのロード、プロセスインジェクション、異常な送信SMTPトラフィックを監視することで、機密情報が漏洩する前に同様の脅威を検出できる可能性を大幅に高めることができます。
このキャンペーンは、メールセキュリティ、 endpoint protection行動監視とネットワーク可視化は連携して、従来のシグネチャベースの検出を回避する可能性のある、高度で多段階の攻撃を特定します。
IOCの-
6BBFC88534D5D515DDDB0EC9BB618530
8A620E451E64F418BC21FD458E952F2E
5F238710A5EF4F6DDBBE7A118C822705
a30b628d0c087f305b35be3e3f5281b3
34bfa888695b9aaa41bd575245972043
Seqrite 検出範囲-
トロイの木馬インジェクターS39585891
Trojan.YakbeexMSIL.ZZ4
PS.Trojan.Loader50921.GC
Js.Trojan.Loader.50922.GC
MITRE 攻撃戦術、手法、手順 (TTP)
| 戦術(ATT&CK ID) | テクニック・サブテクニック(ID) | 手順 |
| 初期アクセス (TA0001) | フィッシング:スピアフィッシング添付ファイル(T1566.001) | 悪意のあるZIP添付ファイルを配信する |
| 実行(TA0002) | コマンドおよびスクリプトインタープリタ:JavaScript(T1059.007) | 難読化されたJavaScriptを実行します |
| 実行(TA0002) | コマンドおよびスクリプトインタープリタ:PowerShell(T1059.001) | 隠しPowerShellを起動します |
| ステルス(TA0005) | 難読化/圧縮されたファイルおよび情報(T1027) | 多層難読化を使用 |
| ステルス(TA0005) | ファイルまたは情報の難読化解除/復号化(T1140) | Base64、AES、およびXORペイロードをデコードします。 |
| ステルス(TA0005) | 反射型コードローディング(T1620) | メモリから.NETアセンブリをロードします |
| ステルス(TA0005) | マスカレード(T1036) | ビジネス関連のファイル名を使用する |
| ステルス(TA0005) | プロセスインジェクション(T1055) | aspnet_compiler.exeにペイロードを挿入します。 |
| ステルス(TA0005) | システムバイナリプロキシ実行(T1218) | 正当な.NETバイナリを悪用する |
| ディスカバリー (TA0007) | システム情報検出 (T1082) | ホスト情報を収集します |
| ディスカバリー (TA0007) | プロセス発見(T1057) | 対象プロセスの状態を確認します |
| 資格情報へのアクセス (TA0006) | パスワードストアからの認証情報(T1555) | 保存されている認証情報を抽出します |
| 資格情報へのアクセス (TA0006) | ウェブブラウザからの認証情報(T1555.003) | ブラウザの認証情報とCookieを盗む |
| コレクション (TA0009) | ローカルシステムからのデータ(T1005) | ローカルアプリケーションデータを収集します |
| コレクション (TA0009) | 収集データのアーカイブ(T1560) | 盗んだデータをファイルに整理する |
| 窃盗 (TA0010) | 代替プロトコルを介した漏洩 (T1048) | SMTP経由でデータを流出させる |
| コマンドアンドコントロール (TA0011) | アプリケーション層プロトコル:メールプロトコル(T1071.003) | SMTPプロトコルを使用します |
| コマンドアンドコントロール (TA0011) | 暗号化チャネル(T1573) | SMTPをSTARTTLSで暗号化します |
著者
- プラシル・ムーン
- マノジ・クマール・ニーラメガム



