Operation DualScript – 暗号通貨と金融活動を標的とした多段階PowerShellマルウェアキャンペーン
イントロダクション
調査の結果、スケジュールされたタスクの永続性、VBScriptランチャー、およびPowerShellベースの実行を利用した、多段階のマルウェア感染が確認されました。この攻撃は、リモートペイロードを取得するWebベースのPowerShellローダーと、RetroRATインプラントを実行するセカンダリPowerShellローダーという、2つの並行したチェーンを通じて実行されます。
攻撃者は、正規のWindowsコンポーネントを悪用し、ペイロードをメモリ内で直接実行することで、ディスク上の痕跡を最小限に抑え、従来の検出メカニズムを回避する。
初期の調査結果
調査は、ユーザーがアクセス可能なディレクトリからVBScriptファイルを実行する不審なスケジュールタスクが特定されたことを受けて開始された。これらのタスクは、隠されたPowerShellコマンドを起動するように構成されており、永続化のためにWindowsネイティブスクリプトコンポーネントが悪用される可能性を示唆していた。
さらなる調査の結果、以下のような複数の不審な遺物が発見された。
- 実行ポリシーをバイパスしてPowerShellを呼び出すVBScriptランチャー
- 外部ドメインからリモートコンテンツをダウンロードして実行するPowerShellスクリプト(ppamproServiceZuneWAL.ps1)
- 追加のPowerShellスクリプトは、メモリ内で悪意のあるペイロードを直接実行するために使用されます。
Wallet.txtをホストするリモートWebリソースへのアウトバウンド接続により、外部サーバーからのアクティブなコマンド取得が確認され、リモートコマンド実行機能が示された。
これらの調査結果は、ウェブ経由で配信されるペイロードとメモリ内PowerShell実行技術を利用した、持続的な多段階の侵害行為の存在を裏付けるものであった。
感染経路の概要
この脆弱性は、Windowsのタスクスケジューラによって確立された永続性を介して起動される2つの並列実行チェーンを伴います。どちらのチェーンも、VBScriptランチャーとPowerShellの実行を利用して悪意のあるコンポーネントを展開し、ディスク上の痕跡を最小限に抑えます。
一方のチェーンは、仮想通貨のクリップボードを乗っ取るリモートPowerShellペイロードを取得して実行します。もう一方のチェーンは、VBScriptランチャー(PiceVid.vbs)を使用してPowerShellベースのペイロード(PiceVid.ps1)を実行し、システム監視、金融活動の追跡、およびリモートコマンド実行のためにRetroRATマルウェアを展開します。

チェーン1 – Webバックドアコンポーネント
スケジュールされたタスクの永続性
永続的なアクセスは、ユーザーが書き込み可能なディレクトリからVBScriptファイルを実行するように構成されたWindowsタスクスケジューラによって確立されました。これらのタスクは、実行ポリシーのバイパスが有効になっている状態で、PowerShellを非表示モードで起動します。
これにより、従来の起動レジストリ機構を回避しつつ、悪意のあるチェーンの確実な再実行が保証されます。
VBSランチャー – ppamproServiceZuneWAL.vbs
このスクリプトは実行の中間段階として機能し、PowerShellをサイレントに起動します。ペイロード自体は含まれていませんが、リモートローダーチェーンへの制御されたエントリポイントとして機能します。
リモートローダー – ppamproServiceZuneWAL.ps1
このスクリプトはウェブベースのバックドアとして機能し、以下の処理を実行します。
- WMIプロセス列挙による単一インスタンス検証
- HTTP経由でリモートスクリプト(Wallet.txt)を取得します。
- [ScriptBlock]::Create().Invoke() を使用した動的実行
リモートペイロードは完全にメモリ上で実行されます。コンテンツは外部でホストされているため、動的に更新することができ、攻撃者は継続的に制御することが可能です。

その ppamproServiceZuneWAL.ps1 スクリプトは PowerShellベースのリモートローダーおよび実行コントローラー最初に、$MyInvocation オブジェクトを使用して自身のスクリプト名を取得し、CURRENT-instance という名前の関数を実行します。この関数は、WMI を介して実行中のすべての powershell.exe プロセスをチェックし、同じスクリプトの別のインスタンスが既にアクティブになっているかどうかを判断します。重複するインスタンスが検出された場合、スクリプトは終了して複数の同時実行を防ぎます。単一インスタンスの実行が保証された後、スクリプトは .NET ネットワーク ライブラリ System.Net.Http をロードし、HttpClient を使用してリモート コンテンツをダウンロードします。 hxxps://anycourse[.]net/wp-content/uploads/2025/04/Wallet[.]txt取得した Wallet.txt ファイルには、攻撃者が制御する PowerShell コマンドが含まれています。このスクリプトは、このコンテンツをディスクに保存する代わりに、[ScriptBlock]::Create() を使用してダウンロードしたテキストを実行可能な PowerShell コードに動的に変換し、メモリ内で直接実行します。このメカニズムにより、スクリプトは効果的に ウェブベースのバックドアで、攻撃者は単にコンテンツを変更するだけで、侵害されたシステム上でリモートで更新やコマンドの実行を行うことができます。 サーバー上のWallet.txtファイル。
Webペイロード – Wallet.txt
ダウンロードされたファイルには、外部サーバーから配信されたPowerShellの手順が含まれています。

これにより、攻撃者は以下のことが可能になります。
- コマンドを発行する
- コンポーネントを更新または再デプロイする
- 偵察を実行する
- データを盗み出す
この仕組みにより、侵害されたシステムは事実上、遠隔操作可能なPowerShellマルウェアへと変換される。
Wallet.txt 〜を含む PowerShellクリップボード乗っ取りスクリプト 暗号通貨取引を盗むために設計されたスクリプトです。スクリプトはシステムクリップボードを継続的に監視し、コピーされたテキストを検出し、正規表現パターンを使用してビットコインなどの暗号通貨ウォレットアドレスやその他の暗号通貨フォーマットを検出します。一致するアドレスが見つかると、スクリプトはコピーされたウォレットアドレスを、内部辞書に保存されている攻撃者が制御するアドレスに置き換えます。その結果、被害者が暗号通貨を送金するために正当なウォレットアドレスをコピーした場合、クリップボードは密かに変更され、資金は代わりに攻撃者のウォレットにリダイレクトされます。スクリプトはクリップボードを定期的に継続的に監視し、攻撃者が 暗号通貨決済を密かに傍受し、不正に転送する 侵害されたシステム上で。
攻撃者が管理する仮想通貨ウォレットアドレス
その Wallet.txt ペイロードは、攻撃者が管理する暗号通貨ウォレットのアドレスを辞書として保持しています。クリップボードに一致するウォレット形式が検出されると、マルウェアは被害者のアドレスを対応する攻撃者管理のウォレットアドレスに置き換えます。
代替アドレスは、複数の暗号通貨を対象としています。
ビットコイン (BTC)、ライトコイン (LTC)、イーサリアム (ETH)、モネロ (XMR)、XRP、NEO、ビットコイン キャッシュ (BCH)、ドージコイン (DOGE)、ダッシュ、ステラ (XLM)、バイナンス コイン (BNB)、テゾス (XTZ)、トロン (TRX)、VeChain (VET)、デジバイト (DGB)、Qtum、カルダノ(ADA)、Polkadot (DOT)、Cosmos (ATOM)、Lisk、Kava、Algorand (ALGO)、Filecoin (FIL)、Nano、NEM、Waves、Zcash (ZEC)、Terra、THORChain (RUNE)。
チェーン2 – PowerShellローダーコンポーネント
VBSランチャー – PiceVid.vbs
このスクリプトは、ローカルローダーチェーンのエントリポイントとして機能するPiceVid.ps1の実行をトリガーし、スケジュールされたタスクを通じて実行されます。
PowerShellローダー – PiceVid.PS1
このスクリプトにはRetroRATのペイロードが含まれており、メモリ上で直接実行されます。

ペイロードを別の実行可能ファイルに書き込む代わりに、スクリプトはその内容を読み取り、動的に実行します。 Invoke-Expression (IEx).
この手法により、攻撃者はディスク上に検出可能な痕跡を最小限に抑えながらマルウェアを実行することが可能になります。
解析中に特定されたメモリ内ペイロードは、 レトロラット金融活動を標的とするリモートアクセス型トロイの木馬 米国の銀行機関と仮想通貨プラットフォームこのマルウェアは、ユーザーの活動を監視し、キー入力を記録し、金融サービスとのやり取りを選択的に追跡することで、機密情報を収集します。
ペイロードの分析 – RetroRAT
解析対象となったペイロードはRetroRATと呼ばれ、仮想通貨や銀行関連の活動を標的とする、金銭目的のリモートアクセス型トロイの木馬(RAT)です。このマルウェアはグローバルキーボードフックをインストールし、アクティブなウィンドウタイトルを継続的に監視して、金融アプリケーションや、よくアクセスされる銀行または仮想通貨プラットフォームに関連するキーワードを検出します。モジュール式のアーキテクチャとTCPベースのコマンド&コントロール(C2)通信チャネルを組み合わせることで、攻撃者はリモートコマンドの実行、ファイルの操作、クリップボードデータへのアクセス、および追加のアセンブリをメモリに直接動的にロードすることが可能になります。
防御回避および対分析技術
このサンプルは、サンドボックス、仮想マシン、自動マルウェア分析システムなどの分析環境における検出を回避し、実行を制限するために、複数の分析対策および防御回避技術を実装しています。
– サンドボックス回避チェック
このサンプルには、「John Doe」、「virus」、「test user」、「sand box」などの既知のユーザー名を含む、一般的なサンドボックスおよび分析環境の識別子のリストがハードコードされています。
実行中、これらの値はシステム属性と比較され、潜在的な分析環境が検出されます。一致するものが見つかった場合、マルウェアはその動作を変更します。これはおそらく回避メカニズムとして機能します。


– 仮想マシンの検出
マルウェアは、仮想マシンのディレクトリ、ドライバ、および関連サービスに問い合わせることで、仮想マシン上で実行されているかどうかも確認します。痕跡が見つかった場合は、自動的に終了します。


– 難読化の使用
ペイロードは、基本的ながら効果的な難読化を多用しています。メソッド名とクラス名は積極的に変更され、いくつかの識別子にはUnicode制御文字が含まれているため、デコンパイラでは破損しているように見えます。さらに、意味のある文字列のほとんどはエンコードされて保存され、実行時に再構築されます。これにより、単純な静的解析は不可能になり、解析者は値を動的に観察せざるを得なくなります。de4dotを使用することで、バイナリを部分的に難読化解除し、読みやすいメソッド名を復元することができました。
ミューテックスの使用方法
実行の初期段階で、バイナリは指定された名前のミューテックスがシステムに既に存在するかどうかを確認します。存在する場合、マルウェアはEnvironment.Exit(0)を使用して即座に実行を終了します。この手法は、マルウェアがシステムへの再感染を回避するためによく使用されます。


マルチスレッド実行
このマルウェアは、複数のワーカースレッドを生成し、その機能のさまざまなコンポーネントを並行して実行します。この設計により、マルウェアはコマンド&コントロール通信やデータ処理などの他の操作を中断することなく、継続的な監視とバックグラウンド活動を維持できます。
– スレッド 1 – キーボードイベントインターセプションループ
- new Thread(new ThreadStart(GClass25.smethod_1)).Start();
このマルウェアは、SetWindowsHookExA() を使用してキーボードの傍受を処理するための別の実行スレッドを作成します。このルーチン内で、低レベル (WH_KEYBOARD_LL) フックが登録され、マルウェアが低レベルのキーボード入力を監視できるようになります。

フックがインストールされると、スレッドはApplication.Run()を使用してすぐにメッセージループに入ります。これにより、フックはプロセスの存続期間中アクティブな状態を維持し、インプラントがキーストロークを継続的にキャプチャできるようになります。

フックコールバック内で、マルウェアは傍受したメッセージがキー押下イベントに対応するかどうかを確認します。 if (int_2 >= 0 && intptr_1 == (IntPtr)256) フックが有効なキー押下イベントのみを処理することを保証します。値256はWindowsのWM_KEYDOWNメッセージに対応しており、キーが押されたときにのみコードが実行されることを意味します。

このスレッドの最後に、マルウェアはUnhookWindowsHookEx()を呼び出して、以前にインストールされたキーボードフックを削除します。これにより、マルウェアが終了するまで継続的なキーストローク監視が保証されます。
-スレッド2 – 米国の銀行および暗号通貨サービスのキーワードベースの監視
- new Thread(new ThreadStart(GClass11.smethod_0)).Start();
キーボードイベントを傍受するスレッド1に加えて、このマルウェアは、ユーザーの金融活動に関連するランタイムチェックを独立して処理する役割を担う追加のスレッドを起動します。
まず、監視結果の保存に使用するログファイルのディレクトリとファイル名を準備および初期化します。ここでは、暗号通貨関連のアクティビティ用(「crypto_results.txt」)と銀行関連のアクティビティ用(「banks_results.txt」)の2つのファイルが初期化されます。これらのファイルは、ユーザーの%localappdata%ディレクトリに保存されます。

次に、マルウェアは「array」と「array2」という名前の2つの文字列配列を初期化します。これらの配列の値は、内部デコードルーチンによって実行時に動的に再構築されます。この手法により、マルウェアは実行時に意味のあるキーワードを静的検査から隠蔽しつつ、それらを利用することができます。
最初の配列(array)には、Coinbase、ブロックチェーン、ビットコインなどのプラットフォームを含む、暗号通貨関連のキーワードが47個(0x2F)含まれています。2番目の配列(array2)には、Bank of America、Wells Fargo、Chime、PayPalなどの金融機関および決済サービスに関連するキーワードが51個(0x33)含まれています。
array2のキーワードを詳しく調べると、マルウェア作成者が米国の金融エコシステムに強い関心を寄せていることが明らかになり、主要な国立銀行、地方金融機関、デジタルバンキングプラットフォーム、広く利用されているオンライン決済サービスなどが対象となっている。


銀行および暗号通貨に特化したモニタリングループ
キーワードリストと結果ファイルを初期化した後、マルウェアは金融サービスとのユーザーインタラクションを追跡するように設計された継続的な監視ループに入ります。

以前に作成された結果ファイルに対して2つのHashSetオブジェクトが作成され、マルウェアは重複したログ記録を回避し、既に識別された一致の記録を保持することができます。
マルウェアは無限ループの中で、現在アクティブなウィンドウのタイトルを繰り返し取得します。

キャプチャされたテキストは、.ToLower() を使用して正規化された後、暗号通貨プラットフォームや銀行関連サービスを含む事前定義されたキーワードリストと比較されます。一致するキーワードが見つかり、かつ以前に記録されていない場合は、対応するキーワードが File.AppendAllText() を使用して専用の結果ファイルに書き込まれます。さらに、マルウェアはそのセッションに関連する後続のキーストロークのキャプチャと記録を開始し、金融活動に関連する機密性の高いユーザー入力を収集できるようにします。

このロジックは、フォアグラウンドでのユーザーアクティビティをターゲットとなる金融関連キーワードと効果的に関連付けており、マルウェアがすべてのアクティビティを無差別に記録するのではなく、銀行サービス、決済プラットフォーム、または暗号通貨サービスに関連するセッションを選択的に監視していることを示している。
C2接続とデータ漏洩
メソッドsmethod_5()は、マルウェアの主要なコマンド&コントロール(C2)通信ルーチンを実装します。このルーチンは、事前に定義されたリモートサーバーとのネットワーク接続を継続的に試行し、アクティブな通信チャネルのライフサイクルを管理します。接続が正常に確立されると、このルーチンはリモートサーバーとのさらなるやり取りを可能にし、データ交換とリモート制御の基盤を形成します。

最初に、バイナリはハードコードされたドメイン(Class15.string_0)と関連するポート(Class15.int_0)のリストを反復処理します。

ドメインとポートの組み合わせごとに、TcpClientオブジェクトが作成されます。TCP接続が確立されると、検証ルーチン(smethod_6)が実行され、ハンドシェイクチェックとして機能し、リモートサーバーが期待される識別子で応答していることを確認します。

サンプルで確認された識別子は「RETRO-OK-2025」という文字列です。この検証に失敗した接続は直ちに閉じられ、次の候補サーバーが試行されます。
C2検証が成功すると、マルウェアはRAT機能を有効にし、ローカルの結果ファイルに保存されたキャプチャされたキーストロークデータを定期的に収集してC2サーバーに送信します。

マルウェアは、File.ReadAllText() を使用して結果ファイルから収集したキーストロークデータを読み取ります。盗まれたデータは、被害者の識別情報と組み合わされ、内部パケット構築ルーチン (GClass10) を使用して構造化されたメッセージにパッケージ化されます。その後、メッセージはアクティブな TCP 通信チャネル (GClass12) を介して C2 サーバーに送信され、ペイロードは送信前に暗号化されます。
この仕組みにより、マルウェアは機密性の高いユーザー入力を確実に収集してリモートのC2インフラストラクチャに送信することができ、攻撃者は侵害されたシステムから財務情報や認証情報などの機密情報を収集することが可能になります。
RATモジュール
リモートアクセス型トロイの木馬であるこのマルウェアは、さまざまなリモート制御機能をサポートしています。C2サーバーから受信したコマンドは、スイッチ文として実装された集中型ディスパッチャによって処理され、GEnum1列挙型で定義されたコマンド識別子を評価し、対応する機能を呼び出します。

コマンドの値に応じて、リモートデスクトップ監視、ファイルシステム操作、コマンド実行、システム制御などの操作を実行するために、異なるモジュールが呼び出されます。


このRATの機能により、攻撃者は感染したシステムを対話的に監視および制御できるだけでなく、金融データの窃盗も可能になります。
RATの指揮能力
| 機能 | 行動 |
| リモートデスクトップ/画面監視 | 画面キャプチャの開始/停止とリモートデスクトップストリーミングの設定 |
| ファイルマネージャーの操作 | ディレクトリの閲覧、ファイルのアップロード/ダウンロード、ファイルシステムの管理 |
| プロセス/システム監視 | プロセスを列挙し、システム情報を収集し、タスクを管理する |
| コマンドの実行 | 侵害されたシステム上でコマンドまたはプログラムを実行する |
| システム制御 | システムをシャットダウン/再起動するか、マルウェアクライアントを終了してください。 |
| メモリ/高度な演算 | メモリ操作またはプロセス操作タスクを実行する |
対象となる金融関連キーワード
| CryptoCurrency | |||
| coinbase | メタマスク | ビットバイカー | ポロニクス |
| ブロックチェーン | trustwallet | ビットゲット | プロビット |
| フリーウォレット | ビットペイ | ゲート | hitbtc |
| 財布 | 裕福な | 一致チェック | メルカトックス |
| ビットコイン | ローカルビットコイン | デリビット | ホットビット |
| BTC | クリプト | ビットソー | ジギフェネックス |
| ビンランス | ビットフィネックス | ビットマート | ビットバンク |
| クラーケン | bitstamp | exmo | ルノ |
| eToroは | okx | ビットパンダ | 双子座 |
| コインゲッコ | バイビット | 液体 | bitbns |
| コインマーケットキャップ | クコシン | コインメトロ | コインタイガー |
| トレーディングビュー | huobi | bittrex | |
| 金融機関/決済プラットフォーム | |||
| アメリカ銀行 | フィフスサードバンク | 第一共和国 | 霜の塊 |
| ウェルズファーゴ | ハンティントン | ザイオンズバンク | ONB |
| チェイス | 同期 | コマーシャルバンク | ファーストシチズンズ |
| シティバンク | キーバンク | 西の銀行 | センチュリーリンクバンク |
| 米銀行 | americanexpress | ワンファイナンス | 滑膜 |
| 大文字 | 詳しく見る | ゴーツーバンク | ファーストホライズン |
| pnc | nbkc | グリーンドット | イーベイ |
| tdバンク | ソフィ | シンプルな | ペイパル |
| 真実主義者 | チャイム | 吸引 | payeer |
| 味方 | ヴァロバンク | nbkcbank | アマゾン |
| BBBt | アクソスバンク | フラッグスター | チェックアウト |
| サントラスト | シチズンズバンク | BMO | 支払い |
| 地域 | m&tbank | エバーバンク | |
結論
Operation DualScriptは、スケジュールされたタスク、VBScript、PowerShellなどの正規のWindowsコンポーネントを悪用して永続性を維持しながら、ディスク上の痕跡を最小限に抑える多段階マルウェア攻撃です。この攻撃は、2つの並行したチェーンを通じて実行されます。1つは、暗号通貨クリップボードハイジャッカーを展開するWebベースのPowerShellローダー、もう1つは、RetroRATインプラントをメモリ上で直接実行するセカンダリPowerShellローダーチェーンです。
ウォレット操作による金銭窃盗とリモートアクセス機能を組み合わせることで、攻撃者は標的を絞った仮想通貨窃盗と継続的なシステム監視の両方を実現しています。この攻撃は、従来の検出メカニズムを回避するために、信頼できるシステムユーティリティとインメモリ実行技術が悪用されるケースが増加していることを浮き彫りにしています。
侵害の兆候
ファイルベース
| アーティファクト | MD5ハッシュ | 検出 |
| レトロラット | 7546ada1e3144371724db209ba4c5f37 | トロイの木馬.RetroRAT.S3882604 |
| ピクシビデオ.ps1 | 173b27e7541427929da72ebf37c6db8e | Script.RetroRat.50517.GC |
| PiceVid.vbs | 243af69d85550232da45f5a30703a4a3 | Script.RetroRat.50517.GC |
| ppamproServiceZuneWAL.ps1 | 43cac07a501e7a717023e0fa8f6111e0 | スクリプト.トロイの木馬.49593.GC |
| ppamproServiceZuneWAL.vbs | 163c38bd7ff7dd27e88eaef1a7a4819f | Ps.トロイの木馬.50374 |
| Wallet.txt | 1dc82fd02a0db3e338128b6f587d7122 | Script.RetroRat.50517.GC |
ネットワークベース
| URL / ドメイン | カテゴリー |
| info[.]1cooldns[.]com | マルウェア |
| floatsdk[.]1cooldns[.]com | マルウェア |
| thewpiratebay[.]st | マルウェア |
マイターマッピング
| 戦略 | 技術 | テクニックID |
| 固執 | スケジュールされたタスク/ジョブ | T1053.005 |
| 実行 | コマンドおよびスクリプト インタープリター: PowerShell | T1059.001 |
| 実行 | コマンドおよびスクリプトインタープリタ: VBScript | T1059.005 |
| 防衛回避 | 難読化/圧縮されたファイルと情報 | T1027 |
| 防衛回避 | 防御機能の無効化:ツールの無効化または変更(実行ポリシーのバイパス) | T1562.001 |
| プーケットの魅力 | プロセスディスカバリー | T1057 |
| 収集 | 入力キャプチャ:キーロガー | T1056.001 |
| 収集 | クリップボードデータ | T1115 |
| 収集 | スクリーンキャプチャ | T1113 |
| クレデンシャルアクセス | 入力キャプチャ | T1056 |
| コマンドおよび制御 | アプリケーション層プロトコル(Webプロトコル) | T1071 |
| exfiltration | C2チャネルを介した浸透 | T1041 |
著者:
ニラジ・マカサレ
プラシル・ムーン
ラヤパティ・ラクシュミ・プラサンナ・サイ



