Daniel Stepanic

NANOREMOTE、FINALDRAFTのいとこ

NANOREMOTE と呼ばれるフル機能のバックドアは、REF7707 で説明されているマルウェアと特徴を共有しており、FINALDRAFT インプラントに似ています。

24分で読めますマルウェア分析
NANOREMOTE、FINALDRAFTのいとこ

はじめに

2025 年 10 月、Elastic Security Labs はテレメトリで新たに観測された Windows バックドアを発見しました。NANOREMOTE と呼ばれるフル機能のバックドアは、 REF7707で説明されているマルウェアと特徴を共有しており、 FINALDRAFTインプラントに似ています。

このマルウェアの主な機能の 1 つは、 Google Drive APIを使用して被害者のエンドポイントとの間でデータを送受信することです。この機能は、検出が困難なデータ盗難およびペイロードステージングのチャネルを提供することになります。マルウェアには、ダウンロード/アップロード タスクのキューイング、ファイル転送の一時停止/再開、ファイル転送のキャンセル、リフレッシュ トークンの生成などのファイル転送機能に使用されるタスク管理システムが含まれています。

このレポートは、私たちが監視している脅威の主体とその進化する能力に関して、防御者と組織の認識を高めることを目的としています。

重要なポイント

  • Elastic Security Labsが新たなWindowsバックドアを発見
  • NANOREMOTEはFINALDRAFTおよびREF7707に関連するスパイ活動の脅威アクターによって開発された可能性が高い
  • NANOREMOTEには、Google Drive APIを使用したコマンド実行、検出/列挙、ファイル転送機能が含まれています。
  • このバックドアは、Microsoft DetoursやlibPeConvなどのオープンソースプロジェクトの機能を統合している。
  • Elastic Defendは、行動ルール、機械学習分類器、メモリ保護機能を通じてNANOREMOTE攻撃チェーンを阻止します。

NANOREMOTE分析

WMLOADER

観察された攻撃チェーンは、ローダー (WMLOADER) とペイロード (NANOREMOTE) という 2 つの主要コンポーネントで構成されています。このレポートでは NANOREMOTE に焦点を当てていますが、全体的な感染フローのコンテキストを提供するためにローダーについても説明します。

WMLOADER は、無効なデジタル署名を使用して Bitdefender セキュリティ プログラム ( BDReinit.exe ) を装います。

実行後、プログラムは Windows 関数 ( VirtualAlloc / VirtualProtect ) を大量に呼び出し、ファイル内に格納されている埋め込みシェルコードをホストするプロセスを準備します。シェルコードはRVA( 0x193041 )にあり、ローリングXORアルゴリズムを使用して復号化されます。

このシェルコードは、WMLOADER と同じフォルダー パスでwmsetup.logという名前のファイルを検索し、16 バイトの ASCII キー ( 3A5AD78097D944AC ) を使用して AES-CBC で復号化を開始します。復号化後、シェルコードはメモリ内のバックドア NANOREMOTE を実行します。

以前のシェルコード復号ルーチンに基づいて、VirusTotal で検索すると、Bitdefender および Trend Micro 製品を標的とする他の関連サンプルを特定できます。

ナノリモート

NANOREMOTE は、偵察、ファイルやコマンドの実行、被害者の環境との間でのファイルの転送に使用できるフル機能のバックドアです。インプラントは難読化されていない C++ で記述された 64 ビット Windows 実行可能ファイルです。

NANOREMOTE 構成

私たちが観察した NANOREMOTE サンプルは、ハードコードされたルーティング不可能な IP アドレスと通信するように事前構成されていました。構成設定を指す相互参照が見られないため、プログラムはビルダーから生成されたものと考えられます。

Google Drive API 認証の場合、NANOREMOTE は複数のクライアントを使用できるパイプ区切り構成を使用します。|*|セパレータは単一のクライアントが使用するフィールドを分割し、 |-|はクライアントを区切るマーカーとして使用されます。クライアント構造ごとに 3 つのフィールドがあります。

  • クライアントID
  • クライアントシークレット
  • リフレッシュトークン

以下に形式の例を示します。

Client_ID_1|*|Client_Secret_1|*|Refresh_Token_1|-|Client_ID_2|*|Client_Secret_2|*|Refresh_Token_2

開発者には、 NR_GOOGLE_ACCOUNTSという名前の環境変数を通じてこの構成を受け入れるためのフォールバック メカニズムがあります。

インターフェース/ロギング

NANOREMOTE は、タイムスタンプ、ソース コードの場所、動作の説明など、アプリケーションのリアルタイム アクティビティを表示する詳細なコンソールを提供します。

NANOREMOTE が実行されたのと同じ場所に新しい Windows ディレクトリが作成され、フォルダーの名前はLogになります。

新しく作成されたログ ファイル ( pe_exe_run.log ) がこのフォルダーにドロップされ、コンソールから出力されたものと同じ出力が含まれます。

セットアップ

メインワーカー ループが開始する前に、NANOREMOTE による初期セットアップ ルーチンが実行されます。マルウェアはCoCreateGuidを介して一意の GUID を生成し、次にFowler-Noll-Vo (FNV ) 関数を使用して GUID をハッシュします。この GUID は、オペレーターが各リクエスト中に個々のマシンを識別するために使用されます。

マルウェア開発者は、未処理の例外が発生したときに実行中のプロセスの Windows ミニダンプを作成するためのプロセス全体のクラッシュ ハンドラーを持っています。これは、プログラム クラッシュをトリアージするために使用されている可能性が最も高いです。

例外は、プロセスを終了する前にダンプを生成します。これはかなり標準的な方法ですが、 MiniDumpWithFullMemoryは、より大きなサイズのダンプが生成され、機密データが含まれる可能性があるため、正規のソフトウェアではあまり一般的ではないと考えられます。

ダンプ ファイル ( %d%02d%02d%02d%02d%02d_sv.dmp ) に対して同じ文字列フォーマッタを使用して簡単に Google 検索すると、中国ベースのソフトウェア開発Web サイトからの結果が 1 件のみ表示されました。

ネットワーク通信

前述のように、NANOREMOTE の C2 はハードコードされた IP アドレスと通信します。これらのリクエストは HTTP 経由で発生し、JSON データは Zlib 圧縮され、16 バイトのキー ( 558bec83ec40535657833d7440001c00 ) を使用して AES-CBC で暗号化された POST リクエストを通じて送信されます。すべてのリクエストの URI は、User-Agent ( NanoRemote/1.0 ) を含む/api/clientを使用します。

以下は、C2 暗号化/圧縮に使用される CyberChef レシピです。

暗号化前の各リクエストは、次のもので構成されるスキーマに従います。

  • コマンドID : 関連コマンドハンドラーID
  • データ: 対応するハンドラーに必要なキー/値のペアを含むコマンド固有のオブジェクト
  • ID : 感染したホストに割り当てられた一意のマシン識別子

以下は、データ オブジェクト内のコマンド キーを介して whoami の実行をトリガーするリクエストの例です。

{
    "cmd": 21,
    "data": {
        "command": "whoami"
    },
    "id": 15100174208042555000
}

各応答は、前のフィールドと 2 つの追加フィールドを使用した同様の形式に従います。

  • 出力: 以前に要求されたコマンドハンドラからの出力が含まれます
  • 成功: コマンドが成功したかどうかを判断するために使用されるブールフラグ

以下は、前の whoami コマンドからの応答の例です。

{
    "cmd": 21,
    "data": 0,
    "id": 17235741656643013000,
    "output": "desktop-2c3iqho\\rem\r\n",
    "success": true
}

コマンドハンドラー

NANOREMOTE の主な機能は、 22 コマンド ハンドラーを通じて実行されます。以下は、さまざまなハンドラーをディスパッチするために使用される switch ステートメントを示す制御フロー グラフ (CFG) 図です。

以下はコマンド ハンドラー テーブルです。

コマンド ID説明
#1ホストベースの情報を収集する
#2ビーコンのタイムアウトを変更する
#3自己終了
#4パス別にフォルダの内容を一覧表示する
#5パスでフォルダの内容を一覧表示し、作業ディレクトリを設定する
#6ストレージディスクの詳細を取得する
#7新しいディレクトリを作成する
#8 #9ディレクトリ/ファイルを削除する
#10 #11ティアダウン(キャッシュのクリア、クリーンアップ)
#12PEローダー - ディスクからPEを実行する
#13作業ディレクトリを設定する
#14作業ディレクトリを取得する
#15ファイルを移動する
#16Google ドライブ経由でダウンロード タスクをキューに入れる
#17Google ドライブ経由でアップロードタスクをキューに入れる
#18ダウンロード/アップロード転送を一時停止
#19ダウンロード/アップロード転送を再開する
#20ファイル転送をキャンセル
#21コマンド実行
#22PEローダー - メモリからPEを実行する
ハンドラー #1 - ホストベースの情報を収集する

このハンドラーは、システムとユーザーの詳細を列挙して、被害者の環境をプロファイリングします。

  • WSAIoctlSIO_GET_INTERFACE_LISTを使用して内部および外部 IP アドレスを取得します
  • ユーザー名を取得する GetUserNameW
  • ホスト名を取得するには GetComputerNameW
  • 現在のユーザーが管理者グループのメンバーであるかどうかを確認します。 IsUserAnAdmin
  • マルウェアが使用するプロセスパスを取得する GetModuleFileNameW
  • WinREVersionProductName値名を使用してレジストリからオペレーティングシステム情報(製品ビルド)を取得します
  • 実行中のプログラムのプロセスIDを取得します。 GetCurrentProcessID

以下は C2 サーバーに送信されたデータの例です。

{
    "cmd": 1,
    "data": {
        "Arch": "x64",
        "ExternalIp": "",
        "HostName": "DESKTOP-2C3IQHO",
        "ID": 8580477787937977000,
        "InternalIp": "192.168.1.1",
        "OsName": "Windows 10 Enterprise ",
        "ProcessID": 304,
        "ProcessName": "pe.exe",
        "SleepTimeSeconds": 0,
        "UID": 0,
        "UserName": "REM *"
    },
    "id": 8580477787937977000
}
ハンドラー #2 - ビーコンのタイムアウトを変更する

このハンドラーは、NANOREMOTE の C2 通信のビーコン タイムアウト間隔を変更し、マルウェアはオペレーターが指定した秒数に基づいてスリープ状態になります。

以下はこのリクエストの例です。NANOREMOTE はキー ( interval ) と値 ( 5 ) を使用して、ビーコンのタイムアウトを 5 秒に変更します。

{
    "cmd": 2,
    "data": {
        "interval": 5
    },
    "id": 15100174208042555000
}
ハンドラー #3 - 自己終了

このハンドラは、グローバル変数を 0 に設定し、NANOREMOTE のティアダウンとプロセス終了を効果的に通知する役割を担います。

ハンドラー #4 - パス別にフォルダの内容を一覧表示する

このハンドラーは、オペレーターから提供されたファイル パスを使用してフォルダーの内容を一覧表示します。各アイテムのリストには次のものが含まれます。

  • アイテムがディレクトリであるかどうか
  • アイテムが非表示としてマークされているかどうか
  • 最終更新日
  • ファイル名
  • サイズ

ハンドラー #5 - フォルダの内容を一覧表示し、作業ディレクトリを設定する

このハンドラーは前のハンドラー (#4) と同じコードを使用しますが、唯一の違いは、プロセスの現在の作業ディレクトリも指定されたパスに設定することです。

ハンドラー #6 - ストレージディスク情報を取得する

このハンドラーは、次の Windows API 関数を使用して、マシンからストレージ ディスク情報を収集します。

  • 論理ドライブの取得
  • ディスク空き容量を取得するExW
  • GetDriveTypeW
  • ボリューム情報Wの取得

以下は、返されるデータを示す JSON 形式のリクエストの例です。

{
    "cmd": 6,
    "data": {
        "items": [
            {
                "free": 26342813696,
                "name": "C:",
                "total": 85405782016,
                "type": "Fixed"
            }
        ]
    },
    "id": 16873875158734957000,
    "output": "",
    "success": true
}
ハンドラー #7 - 新しいフォルダディレクトリを作成する

このコマンド ハンドラーは、指定されたパスに基づいて新しいディレクトリを作成します。

ハンドラー #8、#9 - ファイル、ディレクトリの削除

このハンドラーは #8 と #9 の両方のコマンド ID をサポートしており、指定されたファイル パスに基づいて分岐が動的に選択されます。ファイルまたは指定されたフォルダを削除する機能があります。

ハンドラー #10、#11 - ティアダウン/クリーンアップ

これら 2 つのハンドラーは、異なる引数を使用して同じティアダウン関数を呼び出し、マルウェアのランタイムに関連付けられたヒープ割り当て、内部 C++ オブジェクト、およびキャッシュされたデータを再帰的に解放します。この目的は、コマンド構造をクリーンアップし、メモリ リークや不安定性を防ぐことです。

ハンドラー #12 - カスタム PE ローダー - ディスクから PE を実行する

このハンドラーには、ディスク上に存在するファイル用のカスタム PE ロード機能が含まれています。この機能は、標準の Windows API とライブラリlibPeConvのヘルパー コードを活用して、従来の Windows ローダーを使用せずにディスクから PE ファイルをロードします。

つまり、ディスクから PE ファイルを読み取り、そのファイルをメモリにコピーし、セクション/ヘッダーを手動でマップして、ファイルを準備してから、最終的にメモリ内で実行します。この実装は、ユーザー モード フックと従来の可視性を回避してステルスと回避を行うための意図的な手法です。一例として、この手法でファイルを実行すると、procmon を使用してこの実行可能ファイルが起動された痕跡は残りません。

以下はこのハンドラーの入力です。ローカル ファイル パスはキー (args) の下に指定されます。

{
    "cmd": 12,
    "data": {
        "args": "C:\\tmp\\mare_test.exe"
    },
    "id": 15100174208042555000
}

次のスクリーンショットは、この手法を使用してテスト実行可能ファイルを正常に実行したことを示しています。

この分析中に、興味深い点の 1 つは libPeConvライブラリの採用です。これは、私たち自身がマルウェア関連のさまざまなタスクに社内で使用している優れた便利なプロジェクトです。NANOREMOTE の開発者は、このライブラリのいくつかの関数を使用して、メモリ内の PE ファイルを手動でロードして実行することに関連する一般的なタスクを簡素化します。以下は、NANOREMOTE にあるライブラリで使用される関数です。

  • default_func_resolver: DLL を動的にロードし、エクスポートされた関数のアドレスを取得することで、PE ファイル内の関数を解決します。

  • hooking_func_resolver: ロードされた DLL から名前で関数の仮想アドレスを取得します。

  • FillImportThunks: インポートされた各関数をメモリ内の実際のアドレスに解決して、インポート テーブルを作成します。

  • ApplyRelocCallback: PE ファイルが優先ベースとは異なるアドレスにロードされたときに、ベースの再配置を適用します。

このハンドラーのもう 1 つの注目すべき点は、オープン ソース フック ライブラリであるMicrosoft Detours を使用していることです。このライブラリは、次の Windows 関数をインターセプトするために使用されます。

  • GetStdHandle
  • RtlExitユーザースレッド
  • RtlExitUserProcess
  • 致命的な終了
  • ExitProcess

このランタイム フック ルーチンは、終了関連の関数をインターセプトして、制御された動作を強制し、回復力を向上させます。たとえば、NANOREMOTE は、単一のワーカー スレッドの障害によって NANOREMOTE プロセス全体が終了してしまうことを防ぎます。

ハンドラ #13 - 作業ディレクトリの設定

このハンドラは、キー (パス) を使用して作業ディレクトリを特定のディレクトリに設定します。以下はリクエストの例です。

{
    "cmd": 13,
    "data": {
        "path": "C:\\tmp\\Log"
    },
    "id": 15100174208042555000
}
ハンドラ #14 - 作業ディレクトリを取得する

このハンドラは現在の作業ディレクトリを取得します。以下は、前のハンドラ (#13) でディレクトリを設定した後の応答の例です。

{
    "cmd": 14,
    "data": 0,
    "id": 11010639976590963000,
    "output": "[+] pwd output:\r\nC:\\tmp\\Log\r\n",
    "success": true
}
ハンドラー #15 - ファイルの移動

このハンドラにより、オペレーターは、2 つの引数 (old_path、new_path) を指定した MoveFileExW を使用して被害者のマシン上でファイルを移動し、ファイルのコピーと削除操作を実行してファイルを別のフォルダーに移動することができます。

ハンドラー #16 - キューダウンロードタスク

このハンドラーは、指定された task_id を使用してダウンロード タスク オブジェクトを作成し、そのタスクをダウンロード キューに登録します。この実装では、OAuth 2.0 トークンを使用して、Google Drive API へのリクエストを認証します。この機能は、脅威の攻撃者が被害者のマシンにファイルをダウンロードするために使用されます。Google のサーバーへの通信が暗号化されているため、このトラフィックは正当なものであるように見え、組織はそれを検査したり通常の使用と区別したりすることができません。

メインワーカースレッド内には、キューオブジェクトを追跡し、マルウェアによる待機中のタスクを処理するために使用されるグローバル変数があります。

タスクは、C2 サーバーによって提供されるさまざまなフィールドを使用して処理されます。

  • type
  • タスクID
  • ファイルID
  • ターゲットパス
  • ファイルサイズ
  • md5

ダウンロード タスクが処理されると、NANOREMOTE はファイル ID (1BwdUSIyA3WTUrpAEEDhG0U48U9hYPcy7) を使用して、Google ドライブでホストされているファイルのサイズを取得します。次に、マルウェアは WinHttpSendRequest を介してファイルをダウンロードし、WinHttpWriteData を使用してマシンにファイルを書き込みます。

以下は、このダウンロード プロセスを示すコンソール出力です。

脅威グループがデータの流出やペイロードのホスティングのために信頼できるクラウド プラットフォームを悪用し続ける中、このマルウェア機能は組織にとって特有の課題をもたらします。コンテキストのないこのトラフィックは、正当なトラフィックと簡単に混ざり合うため、ネットワークの可視性に依存する防御側にとって検出が困難になります。

ハンドラー #17 - キューアップロードタスク

このハンドラーは前のハンドラー (#16) と同様に動作しますが、アップロード キュー タスクを作成し、そのタスクをアップロード キューに登録します。このハンドラは、脅威の攻撃者が被害者のマシンから攻撃者が管理する Google ドライブ アカウントにファイルをアップロードするために使用されます。

次のフィールドは、C2 サーバーを通じてオペレーターによって提供されます。

  • type
  • task_id
  • upload_name
  • source_path
  • file_size
  • md5

以下は、Google Drive API ( /upload/drive/v3/files ) 経由でテスト ファイルをアップロードするときにマルウェアによって生成されたネットワーク トラフィックです。

下の図は、このアップロード プロセス中のコンソールを示しています。

以下は、当社の Google ドライブ テスト アカウントでファイル アップロード機能を使用した前回のデモのスクリーンショットです。

以下はこのハンドラーからの応答です。

{
    "cmd": 17,
    "data": {
        "file_id": "1qmP4TcGfE2xbjYSlV-AVCRA96f6Kp-V7",
        "file_name": "meow.txt",
        "file_size": 16,
        "md5": "1e28c01387e0f0229a3fb3df931eaf80",
        "progress": 100,
        "status": "uploaded",
        "task_id": "124"
    },
    "id": 4079875446683087000,
    "output": "",
    "success": true
}
ハンドラー #18 - ダウンロード/アップロード転送を一時停止する

このハンドラを使用すると、オペレーターは task_id を渡すことで、NANOREMOTE によって管理されるダウンロード タスクとアップロード タスクを一時停止できます。

ハンドラー #19 - ダウンロード/アップロード転送を再開する

このハンドラにより、オペレーターは task_id を使用して NANOREMOTE によって管理されている一時停止中のダウンロード タスクまたはアップロード タスクを再開できます。

ハンドラー #20 - ファイル転送をキャンセル

このハンドラにより、オペレーターは task_id を通じて NANOREMOTE によって管理されるダウンロード/アップロード タスクをキャンセルできます。

ハンドラー #21 - コマンド実行

これは、攻撃者が被害者のマシンでコマンドを実行するために使用するメイン ハンドラーです。これは、新しいプロセスを生成し、出力を Windows パイプを通じて返すことによって機能します。これは、敵対者が直接アクセスして環境を列挙し、横方向の移動を実行し、追加のペイロードを実行するために使用するほとんどのバックドアに見られる中核機能です。

下の図は、このハンドラが呼び出されたときの NANOREMOTE のプロセス ツリーを示しています。マルウェアは cmd.exe を生成し、指定されたコマンド (この場合は whoami.exe) を起動します。

ハンドラ #22 - メモリからエンコードされたPEを実行する

このハンドラーは、既存の NANOREMOTE プロセス内に Base64 でエンコードされた PE ファイルをロードして実行します。エンコードされた PE ファイルは、pe_data フィールドを使用して C2 サーバーによって提供されます。プログラムにコマンドライン引数が必要な場合は、キー (arguments) が使用されます。

以下は、テスト プログラムを使用したコンソール出力を示す例です。

FinalDraftとの類似点

コードの類似性と動作の両方の観点から、FINALDRAFT と NANOREMOTE の間には重複があります。

多くの関数は、2 つのインプラント間で明確なコード再利用を示しています。たとえば、どちらも CoCreateGuid を介して GUID を生成し、それをFowler-Noll-Vo (FNV)関数でハッシュし、バッファーを解放する前に同一のヒープ検証チェックを実行するという同じシーケンスに従います。

リクエストの送受信に使用される HTTP 関連コードの大部分にも類似性が見られます。以下は、両方のマルウェア ファミリで使用される HTTP 要求のセットアップ/構成を示す制御フロー グラフの例です。

分析中に、WMLOADER が wmsetup.log というハードコードされたファイルから対応するペイロードを復号化していることを確認しました。このファイル名は、今年初めに公開したFINALDRAFT を展開するために PATHLOADER が使用したファイル名と同じです。

もう一つの興味深い発見は、サンプル(wmsetup.log)を発見したことです。VirusTotal から、2025 年 10 月 3 日にフィリピンから最近アップロードされたファイルです。

ファイルをダウンロードし、WMLOADER と一緒に配置して、ローダーを実行しました。wmsetup.logファイルの暗号化が成功し、FINALDRAFT インプラントが明らかになりました。

以下は、同じ AES キーを使用して FINALDRAFT と NANOREMOTE の両方を正常に復号化したことを示す並べて表示されたグラフです。

私たちの仮説は、WMLOADER はさまざまなペイロードで動作することを可能にする同じビルド/開発プロセスの一部であるため、同じハードコードされたキーを使用するというものです。これらのインプラントの背後にいる脅威グループがキーをローテーションしない理由は明らかではありませんが、利便性またはテストが理由である可能性があります。これは、FINALDRAFT と NANOREMOTE の間でコードベースと開発環境が共有されていることを示唆する、もう 1 つの強力なシグナルであると思われます。

MITRE ATT&CK経由のNANOREMOTE

Elasticは、 MITRE ATT&CK フレームワークを使用して、脅威がエンタープライズネットワークに対して使用する一般的な戦術、手法、手順を文書化します。

戦術(Tactics)

戦術は、テクニックまたはサブテクニックの理由を表します。 それは敵の戦術的な目標であり、行動を実行する理由です。

手法

手法は、敵対者がアクションを実行することによって戦術的な目標を達成する方法を表します。

NANOREMOTEの緩和

NANOREMOTE を実行しているラボ環境では、 Elastic Defendを使用してさまざまなアラートがトリガーされました。

防御側が検証すべき主な動作の 1 つは、Google Drive API などの正当なサービスの悪用です。以下は、NANOREMOTE を使用してファイルのダウンロードとアップロードの両方を行うために Google API とやり取りするときに、一般的に悪用される Web サービスへの接続ルールによってトリガーされるアラートの例です。

C2 サーバーからの Base64 エンコードされたファイルを使用した PE ロード手法もMemory Threat Detection Alert: Shellcode Injectionアラートによって検出されました。

検出/防止

ヤラ

Elasticセキュリティは、このアクティビティを識別するためのYARAルールを作成しました。

rule Windows_Trojan_NanoRemote_7974c813 {
    meta:
        author = "Elastic Security"
        creation_date = "2025-11-17"
        last_modified = "2025-11-19"
	 license = "Elastic License v2"
        os = "Windows"
        arch = "x86"
        threat_name = "Windows.Trojan.NanoRemote"

    strings:
        $str1 = "/drive/v3/files/%s?alt=media" ascii fullword
        $str2 = "08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X" ascii fullword
        $str3 = "NanoRemote/" wide
        $str4 = "[+] pwd output:" wide
        $str5 = "Download task %s failed: write error (wrote %llu/%zu bytes)"
        $seq1 = { 48 83 7C 24 28 00 74 ?? 4C 8D 4C 24 20 41 B8 40 00 00 00 BA 00 00 01 00 48 8B 4C 24 28 FF 15 ?? ?? ?? ?? 85 C0 }
        $seq2 = { BF 06 00 00 00 89 78 48 8B 0D ?? ?? ?? ?? 89 48 ?? FF D3 89 78 78 8B 0D ?? ?? ?? ?? 89 48 7C FF D3 89 78 18 8B 0D }
    condition:
        4 of them
}
rule Windows_Trojan_WMLoader_d2c7b963 {
    meta:
        author = "Elastic Security"
        creation_date = "2025-12-03"
        last_modified = "2025-12-03"
       license = "Elastic License v2"
        os = "Windows"
        arch = "x86"
        threat_name = "Windows.Trojan.WMLoader"
        reference_sample = "fff31726d253458f2c29233d37ee4caf43c5252f58df76c0dced71c4014d6902"

    strings:
        $seq1 = { 8B 44 24 20 FF C0 89 44 24 20 81 7C 24 20 01 30 00 00 }
        $seq2 = { 41 B8 20 00 00 00 BA 01 30 00 00 48 8B 4C C4 50 FF 15 }
    condition:
        all of them
}

観測

この研究では、次の観測量について議論しました。

すぐれた監視性タイプ名前参考
fff31726d253458f2c29233d37ee4caf43c5252f58df76c0dced71c4014d6902SHA-256のBDReinit.exeWMLOADER
999648bd814ea5b1e97918366c6bd0f82b88f5675da1d4133257b9e6f4121475SHA-256のASDTool.exeWMLOADER
35593a51ecc14e68181b2de8f82dde8c18f27f16fcebedbbdac78371ff4f8d41SHA-256のmitm_install_tool.exeWMLOADER
b26927ca4342a19e9314cf05ee9d9a4bddf7b848def2db941dd281d692eaa73cSHA-256のBDReinit.exeWMLOADER
57e0e560801687a8691c704f79da0c1dbdd0f7d5cc671a6ce07ec0040205d728SHA-256のナノリモート

この記事を共有する