-
タグ
タグ
- アーキテクト
- アジャイル開発
- アプリ開発
- インシデントレスポンス
- イベントレポート
- カスタマーストーリー
- カルチャー
- 官民学・業界連携
- 企業市民活動
- クラウド
- クラウドインテグレーション
- クラブ活動
- コーポレート
- 広報・マーケティング
- 攻撃者グループ
- 子育て、生活
- サイバー救急センター
- サイバー救急センターレポート
- サイバー攻撃
- サイバー犯罪
- サイバー・グリッド・ジャパン
- サプライチェーンリスク
- システム開発
- 趣味
- 障がい者採用
- 初心者向け
- 白浜シンポジウム
- 情シス向け
- 情報モラル
- 情報漏えい対策
- 人材開発・教育
- 診断30周年
- スレットインテリジェンス
- すごうで
- セキュリティ
- セキュリティ診断
- セキュリティ診断レポート
- 脆弱性
- 脆弱性管理
- ゼロトラスト
- 対談
- ダイバーシティ
- テレワーク
- データベース
- デジタルアイデンティティ
- 働き方改革
- 標的型攻撃
- プラス・セキュリティ人材
- モバイルアプリ
- ライター紹介
- ラックセキュリティアカデミー
- ランサムウェア
- リモートデスクトップ
- 1on1
- AI
- ASM
- CIS Controls
- CODE BLUE
- CTF
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- DevSecOps
- DX
- EC
- EDR
- FalconNest
- IoT
- IR
- JSOC
- JSOC INSIGHT
- LAC Security Insight
- NDR
- OWASP
- SASE
- Tech Crawling
- XDR
ラックのサイバー救急センターは、2025年4月、中国を拠点とする攻撃者グループがIvanti Connect Secure(ICS)の脆弱性を足がかりに、複数のPlugX亜種を用いた攻撃キャンペーンを展開していたことを確認しました。このキャンペーンは日本の海運・運送会社およびその子会社を標的としており、新たなPlugX亜種である「MetaRAT」と「Talisman PlugX」が使用されていました。
本稿では、キャンペーンの全体像に加え、MetaRATおよびTalismanの機能詳細、背後にいるとみられる攻撃者グループについて解説します。さらに、今後の対応策として、MetaRATに対する検知および対策の手法も紹介します。
なお、本稿の内容は、2025年9月24日から26日に開催されたセキュリティカンファレンスVirus Bulletin Conference 2025(VB2025)および2025年12月3日、4日に開催されたThreat Analyst Summit(TAS'25)にて、「Unmasking MetaRAT: A New PlugX Variant in China-Linked APT Operation」というタイトルで発表した内容に加筆したものです。
攻撃キャンペーン概要
図1は攻撃キャンペーンの全体像を示しています。攻撃者グループは、初期侵入手段として標的組織のICSに存在する脆弱性(CVE-2024-21893およびCVE-2024-21887)を悪用し、対象機器にマルウェアを設置しました。その後、設置したマルウェアを用いて組織内ネットワークの横展開を図るため、偵察活動および認証情報の収集を行いました。攻撃者は取得したActive Directoryの特権アカウントの認証情報を使い、組織内の複数サーバへ横展開し、PlugXの亜種を配置して攻撃活動を継続しました。
攻撃者による初期侵入について、標的のICSで以下の2つの痕跡が確認されており、CVE‑2024‑21893およびCVE‑2024‑21887が侵入の原因と考えられます。
(1)クリティカルエラーログ
図2に示すとおり、初期侵入が行われたと推定される時刻付近に、ICSがCVE-2024-21893の悪用に関連する不正なSAMLペイロードを処理した際に生成されるクリティカルエラーログ「ERR31093」が短時間に大量に記録されていました。
(2)不審ファイルの作成
Ivanti社が提供するIntegrity Checker Tool(ICT)を実行した結果、図3に示すファイルが検出されました。これらのファイル名は、Mandiant社が報告しているLITTLELAMB、WOOLTEA、PITSOCK、PITFUELといったマルウェアで使用されるものと一致します。
これらの痕跡は、Mandiant社が2024年2月に報告※1したCVE-2024-21893およびCVE-2024-21887を悪用した攻撃内容と類似しており、これら2つの脆弱性が初期侵入の原因であると言えそうです。
ここまで、今回の攻撃キャンペーンにおける初期侵入の過程でICSに残された痕跡について解説してきました。以降では、組織内サーバに展開されたマルウェア(PlugXの亜種)について紹介します。
PlugXの概要
PlugXはプラグインベースのアーキテクチャを採用した、最もよく知られたリモートアクセス型トロイの木馬(RAT)の1つで、2008年に初めて報告されました。2012年以降、多数の亜種が確認されており、中国を拠点とする攻撃者グループ(Calypso、Mustang Panda、APT10、APT41、Sanyo、LuoYuなど)によって広く利用されています。後継マルウェアと考えられるShadowPadやRatelS※2の登場後も、PlugXは進化を続け、現在に至るまで攻撃活動に活発に使用されています。こうした状況の中で、私たちは2025年のインシデント対応の過程において、PlugXの亜種であるMetaRATとTalismanの2つを確認しました。
※2 新たなモジュール型マルウェア「RatelS」に見るPlugXの面影
MetaRAT
MetaRATは、本攻撃キャンペーンで特定されたPlugXの新しい亜種です。私たちの調査の結果、この亜種は少なくとも2022年から存在していることが判明しましたが、これまで当該亜種を指す名前がなかったことから「MetaRAT」と呼称しています。これまでの調査により、動作に多少の差異があるサンプルをいくつか確認していますが、本章では本攻撃キャンペーンで見つかったMetaRATを主に解説します。
MataRATの実行フロー
図5は、MetaRATの実行フローです。昨今のAPTマルウェアと同様に、MetaRATもDLLサイドローディングテクニックを用いて起動します。最初に実行されるローダ「mytilus3.dll」は、暗号化されたシェルコードが含まれるファイル「materoll」を読み込み、復号した上でシェルコードを実行します。シェルコードに制御が移ると、コードに内包された暗号化データをさらに復号し、MetaRATを展開します。このようにしてMetaRATが動作を開始します。
なお、本攻撃キャンペーンとは関係ないものの、MetaRATのローダには実行ファイル形式(EXE形式)のものも確認しており、この場合はファイルの読み込みを行わず、自身のリソースセクション内のデータを復号しようとします。
MetaRATローダ
MetaRATローダは、暗号化ペイロードを読み込み、復号した上でメモリ上にMetaRATを展開するマルウェアです。本攻撃キャンペーンで使用されたローダ「mytilus3.dll」は、Visual C++で書かれた32bitのDLLファイルです。
このローダの動作は非常にシンプルです。最初に暗号化されたファイル「materoll」を読み込み、図6に示すように0xA6とのXORで復号します。なお、最初のXORに続いて実行される別のXORループは無意味なものであり、このXOR処理を行うと最終的に元の値に戻ります。復号後のバイナリはシェルコードであり、ローダは制御を復号したシェルコードへ移します。
ここで命名について補足します。「MetaRAT」という名前は、VirusTotalから発見された別のMetaRATローダのデバッグ情報に由来します。図7は、別の「mytilus3.dll」に含まれるデバッグ情報です。PDBパスに「MetaRAT」という文字列が含まれることがわかります。
シェルコード
MetaRATローダによって実行されるシェルコードは、MetaRATをメモリに展開・実行するための準備を行います。
AES鍵の展開とアンチデバッグ
最初にシェルコードは、この後の復号処理に使用する鍵をスタック上に展開します。ただし、シェルコードにはアンチデバッグの処理が2つあり、デバッグを検知した場合は鍵を破壊します(図8)。最初のアンチデバッグ処理では、PEB構造体のBeingDebuggedメンバを確認し、次のアンチデバッグ処理ではrdtsc命令を用いて、ある処理を行った際のタイムスタンプカウンタ(TSC)の差を確認します。
API Hashing
シェルコードはAPI Hashingテクニックを用いて、実行に必要なWindows APIのアドレスを取得します。この際ror7AddHash32アルゴリズムを使用してハッシュ値の算出を行います。図9は、シェルコード内にハードコードされたハッシュ値と、取得対象のWindows APIの関数を表しています。この手法は、シェルコード以降に実行されるMetaRAT本体でも使用されます。
ペイロードの復号と展開
その後、シェルコードは、シェルコードの後方に配置されているペイロードの復号を行います。ペイロードはAES-256-ECBで暗号化されており、復号するとLZNT1で圧縮された状態のMetaRATを得ることができます。なお、本攻撃キャンペーンのシェルコードはAESを使用していましたが、2022年頃のサンプルでは代わりにRC4を使用していたことを確認しています。図10に示す通り、AESによる復号が終わると、シェルコードは圧縮済みのMetaRATを展開するためにRtlDecompressBuffer関数を呼び出します。
図11に、メモリ上に展開されたMetaRATのペイロードを示します。注目すべきは、反射型のローディングを行うにあたって一般的に必要となる値が異常な値になっているという点です。例えば、NTヘッダをみると、NumberOfSectionsやAddressOfEntrypoint、SizeOfImageなどの値が大きく、正しくないことがわかります。NumberOfSectionsについていえば、下部Sectionヘッダをみると4つのセクションが存在することがわかることから、0x9FF1ではなく0x4がセットされているべきです。
ここで、シェルコードの反射型ローディングのコードを図12に示します。このコードから前述の異常な値から元の値を算出していることがわかります。例えば、e_lfanewについてはセットされた値(0xAF20300)から0xAF201F0を引いて0x110を算出しています。同様に、NumberOfSectionsも0x9FF1から0x9FEDを引いて0x4を算出しており、その値でセクションに関する処理を行っています。このように、メモリに展開されているMetaRATのPEファイルヘッダは不完全であり、値を参照する際に修正していることがわかります。これらの値はシェルコードごとに異なっており、一定ではありません。
エクスポート関数の呼び出し
最後にシェルコードは、展開したMetaRATのエクスポート関数を呼び出します。図13からはMetaRATのエクスポート関数「winentry」の文字列を確認できます。このエクスポート関数名についても固定ではなく、これまでに分析したサンプルからは「asentry」や「windows」などの文字列の使用が確認されています。
MetaRAT
MetaRATは、C/C++言語で書かれたPlugXの亜種です。このRATは、システム情報の収集やコマンド実行などのC2コマンドをサポートしており、これまでのPlugXと同様、キーロガーやポートマッピングなどのプラグインも使用可能です。また、MetaRATの永続化は、設定データ内のパラメータに応じてRunキー登録またはサービス登録で行われます。痕跡の具体例に関しては、後述の「攻撃痕跡の確認方法と検出」をご参照ください。
一般的なPlugXと比べ、MetaRATは文字列の難読化方法や設定データの構造、設定データの暗号化方法、C2コマンド、プラグインのコマンドなどが異なっています。以降では、これらの詳細を解説します。
表層的な特徴
MetaRATは32bitのDLL形式であり、エクスポート関数「winentry」が先述のシェルコードによって呼ばれることで動作します。当該ファイルのエクスポートディレクトリテーブルを確認すると、MetaRATには元のDLLファイル名と考えられる文字列「Shellcode.dll」が含まれていることがわかります(図14上)。「Shellcode.dll」という名前は他のMetaRATのサンプルにおいても共通してみられる特徴です。また、デバッグ情報を確認すると、タイムスタンプを含んでいることがわかります(図14下)。なお、私たちが調査したすべてのサンプルには、デバッグ情報のタイムスタンプもしくはエクスポートディレクトリテーブルのタイムスタンプのいずれかが含まれていました。
文字列の難読化
MetaRATの文字列は、TEA暗号またはSUB+XOR+ADD(減算と排他的論理和と加算)のいずれかを用いて難読化されています。前者は21個の文字列を難読化しており、後者は24個の文字列を難読化していました。
なお、MetaRATには難読化されていない文字列も一部存在しています。例えば、暗号化ペイロードが格納されているファイル名「materoll」やMetaRATローダのファイル名「mytilus3.dll」、プラグインが使用するファイル名「VniFile.hlp」、レジストリキー名「matesdata」などは難読化されていません。推測ですが、ファイル名のように頻繁に変更する必要のある文字列についてはあえて難読化していない可能性が考えられます。
設定データ
MetaRATの設定データは、SUB+XOR(減算と排他的論理和)でエンコードされた状態で、通常dataセクションに格納されています。図17にデコードを行う際のコードを示します。MetaRATは、最初に設定データの先頭8バイトを確認し、固定値と一致した場合はテスト用の設定データをセットします。一致しない場合はSUB+XOR演算でデコードします。設定データのサイズは、図中のFor文から読み取れる通り、0x1BFAバイトです。
次に、設定データの具体例を図18に示します。この図からは、インストール先や永続化時のサービス名、サービスの説明、ミューテックス、C2通信先情報(C2タイプ、ポート、C2通信先)などの情報が設定データに含まれていることが確認できます。これらのうち、C2通信時のプロトコルを表すC2タイプは、TCP(0)、UDP(2)、HTTP(0x20)、HTTPS(0x40)、ICMP(0x80)のいずれかを設定できるようになっており、MetaRAT特有の値が採用されています。
デモモード
興味深い点として、MetaRATの設定ファイルにはデモに関するフラグが存在します。この値を設定すると、MetaRATは図19に示すメッセージボックスを3秒間だけ表示します。このような機能は古いPlugXにも見られますが、従来と比べ文字列が若干異なっています。PlugXが「THIS IS A DEMO VERSION!!!」であるのに対し、MetaRATは「This Is A Demo!!!」です。
C2通信
MetaRATは、TCP、UDP、HTTP、HTTPS、ICMPのいずれかを使用してC2サーバと通信することができます。図20はHTTPSのC2通信の例です。本攻撃キャンペーンの実際の設定データにおいても、攻撃者グループはHTTPSを使用していました。
通信の特徴として、次の3点が挙げられます。
- リクエストURIとして「16進数+.jsまたは.cssまたは.less」に使用する
- HTTPヘッダに独自の値「Cookie-Yaga」もしくは「Cookie-Nguy」を付与する
- User-Agentに「Mozilla/5.0 (Compatible; MSIE 9.0; Windows NT 10.0)」の固定フォーマットを使用する
また、POSTメソッドにおいて送受信されるボディデータは、次に示すデータ構造(http_body_data)です。このうち、headerメンバはAES-256-ECBで暗号化され、dataメンバはgzipで圧縮された後AES-256-ECBで暗号化されます。gzipとAESを使用する点もMetaRATの特徴の1つです。
struct packet_hdr {
DWORD hard_coded_value; // 0x20221201
DWORD command_id;
DWORD data_len;
DWORD errc;
};
struct http_body_data {
DWORD first_byte_key_of_AES;
packet_hdr header;
BYTE data[];
};
C2コマンド
MetaRATに実装されているコマンドは次の通りです。これらのうち、0x1から0xAまでは一般的なPlugXにおいて既に確認されていますが、その他(0xB、0xC、0x2008、0x3023)についてはMetaRAT特有の実装です。
| コマンドID | 説明 |
|---|---|
| 0x1 | システム情報を収集して送信する |
| 0x2 | C2コマンドの再リクエストを行う |
| 0x3 | プラグインの操作を行う |
| 0x4 | C2コネクションをリセットする |
| 0x5 | MetaRATをアンインストールする |
| 0x6 | 現在の設定データを送信する |
| 0x7 | 設定データを更新する |
| 0x8 | 不明(インジェクションプロセスに関する情報を送信する可能性があります) |
| 0x9 or 0xA | 不明(このコマンドを受信後に特定領域を初期化します) |
| 0xB | 受信データをファイル「metawins.slp」に保存する (C2通信のスリープ処理に関連した処理と考えられます) |
| 0xC | ファイル「metawins.slp」のデータを送信する |
| 0x2008 | MetaRATのプロセスを再起動する |
| 0x3023 | 任意のコマンドを実行する |
プラグイン
表2は、MetaRATに埋め込まれたプラグインの一覧です。本攻撃キャンペーンで確認できたプラグインは、キーロガー機能を提供するKeylogDumpプラグインと、ポートマッピング機能を提供するPortMapプラグインの2つです。
いずれのプラグインにおいても、タイムスタンプと考えられる値は従来のPlugXやその亜種で確認されている値でしたが、PortMapプラグインに関しては新しいコマンドが実装されていました。このプラグインは、これまでC2サーバからのデータを特定のIPアドレスへ送信するだけの機能しか持ちませんでしたが、新しいコマンドの実装により逆方向の通信もできるようになっています。
| プラグイン名 | タイムスタンプ | コマンドID | 説明 |
|---|---|---|---|
| KeylogDump | 0x20120324 | 0xE000 | キーログファイル「VniFile.hlp」を送信する |
| PortMap | 0x20120325 | 0x2000B000 | 指定されたホストとのTCPコネクションを確立し、 C2サーバとホスト間のトンネルコネクションを開始する (これは、元のPortMapプラグインのコマンド0xB000に相当します) |
| 0xF001 | ポートを開放する (受信開始には別途0xF005のコマンドが必要となります) |
||
| 0xF005 | 開放したポートによるデータの受信を開始する (受信したデータはC2サーバへ送信されます) |
||
| 0xF006 or 0xF007 | 開放したポートを閉じる | ||
| 0x3000F004 | 開放したポートを介してデータをクライアントへ中継する |
MetaRATの変遷
本攻撃キャンペーンで使用されたMetaRATをもとに類似マルウェアを調査したところ、当該亜種は少なくとも2022年には存在するということがわかりました。MetaRATの系統と考えられるマルウェアは3つに大別でき、MetaRATに含まれるコンパイルもしくはデバッグのタイムスタンプ情報で整理すると、その変遷は図21のようになります。
まず、2022年時点におけるMetaRATは、元のPlugXと比べて大きな差異はないマルウェアでした。相違点としては、設定データサイズが0x24FCバイトであった点、設定データの復号にシンプルな1バイトのXORを使用している点、文字列の難読化としてTEAまたはSUB+ADD+XORを使用する点などに留まります。この亜種はCisco社からもPlugXの亜種として報告※3されています。
2023年には、本攻撃キャンペーンで使用されたMetaRATが出現し、前述した機能や特徴が実装されました。2022年のMetaRATと比較すると、設定データサイズの変更や難読化の強化、C2コマンドの拡充など大きく変更されており、積極的に開発されたことが窺えます。その後、2025年におけるMetaRATについては大きな変更は見られないものの、DLL形式からEXE形式に変えたローダの使用を確認しており、今後も開発が進む可能性が予想できます。
※3 How RainyDay, Turian and a new PlugX variant abuse DLL search order hijacking
Talisman
Talismanは、2022年3月にTrellix社が報告※4したPlugXの亜種です。MetaRATと同様に、DLLサイドローディングを悪用して実行されます。
※4 PlugX: A Talisman to Behold
Talismanの実行フロー
図22はTalismanの実行フローを示しています。Talismanローダが読み込むファイル名が「w32.sob」である点を除けば、利用されているファイル名を含めてMetaRATの実行フローと同様です。
Talismanローダとシェルコード
Talismanローダ「mytilus3.dll」は、カレントディレクトリからTalismanを実行するシェルコードを含む暗号化ペイロードを読み込み、シェルコードを復号した後に実行するローダ型マルウェアです。
このマルウェアは、正規アプリケーションの実行に伴って読み込まれ、DLLのエントリポイントであるDLLMain関数が呼び出されます。続いて、同一ディレクトリ内にあるペイロードファイル「ws32.sob」を読み込み、XOR演算および減算(SUB)演算を用いてペイロードを復号し、復号したシェルコードを実行します(図23)。
図24は、Talismanローダによって復号されたシェルコードの一部です。シェルコード内には、暗号化されたTalismanの設定データおよび圧縮・暗号化されたTalismanが含まれており、図25に示す特徴的な定数やシフト演算、XOR演算を用いてデータを復号します。復号したTalismanのコードはLZNT1形式で圧縮されているため、RtlDecompressBuffer関数を使用して展開します。この展開後のデータがPE形式のTalismanです。
最後に、図26に示すように、当該データのPEヘッダ先頭部をTalisman固有のシグネチャ値(0xCF455089)に書き換え、特定の正規プロセスへコードをインジェクションしてTalismanを実行させます。
Talisman
Talismanは、Microsoft Visual C/C++で実装されたPlugXの亜種です。このマルウェアには、コマンド実行、ファイル操作、キーロギングなどに対応する10種類以上のプラグインが含まれており、TCP、UDP、HTTP、HTTPS、ICMPなど複数の通信プロトコルをサポートしています。また、Talismanは、中国を拠点とする複数の攻撃者グループの間で共有・利用されています。
今回確認したTalismanについては、設定ファイル内のC2サーバ、Mutex名、キャンペーンIDなどの設定値は異なるものの、機能面や暗号化方式はTrellix社が報告している検体と概ね同様です。そのため、詳細な機能の説明については、Trellix社の報告※5をご参照ください。
※5 PlugX: A Talisman to Behold
一方、Talismanの解析過程で、2025年1月にカスタムヘッダに含まれるMagic Valueが従来と異なるTalismanの亜種を確認しました(図27)。Magic Valueは従来の「0xCF455089」から「0xAC310065」に変更されており、この値はヘッダの先頭ではなく、先頭から4バイトのオフセット位置に格納されていました。
なお、その他の特徴については、設定ファイルのサイズ(0x1924)、暗号化アルゴリズム、ハードコードされたプラグイン、固定キー(0x20161127)などに変更は確認されませんでした。推測の域を出ませんが、この変更は、セキュリティ製品による検出を回避するための変更である可能性が考えられます。
PlugX亜種の比較
まとめとして、PlugX亜種の特徴的な機能の違いを表3に整理しました。
PlugXとMetaRATの間には、機能面でいくつかの差異が確認できます。MetaRATは、Talismanなどの他亜種と比べて独自コードの実装箇所が多く、異なる文字列の難読化処理や設定ファイルの暗号化方式を採用しています。また、今回のキャンペーンのMetaRATと2022年のMetaRATを比較すると、新しいバージョンではC2コマンドが拡張され、機能が強化されています。
また、興味深い点の1つとして、TalismanとMetaRATの文字列の難読化処理は、いずれも「SUB+XOR+ADD」の順で、SUBに0x3D、XORに0xB2、ADDに0x5Fという同一の定数を用いていました。
| 一般的なPlugX | Talisman (本キャンペーン) |
MetaRAT (2022年サンプル) |
MetaRAT (本キャンペーン) |
|
|---|---|---|---|---|
| Magic Value | GULP | 0xCF455089 | None | None |
| 設定ファイルサイズ | 0x150C | 0x1924 | 0x24FC | 0x1BFA |
| 固定キー | 0x20126666 | 0x20161127 | 0x20210206 | 0x20221201 |
| コンパイルタイム(UTC) | Jun 26, 2024 | Mar 24, 2022 | Jun 28, 2022 | Mar 11, 2023 |
| 文字列難読化 | なし | SUB+XOR+ADD | TEA or SUB+XOR+ADD | TEA or SUB+XOR+ADD |
| 設定データ暗号化 | Well-known PlugXアルゴリズム | Well-known PlugXアルゴリズム | XOR | SUB+XOR |
| 通信データ暗号化 | 同上 | 同上 | AES-256-ECB | AES-256-ECB |
| C2通信プロトコル | TCP, HTTP, UDP or ICMP | TCP, HTTP, UDP, ICMP or HTTPS | TCP, HTTP or UDP | TCP, HTTP, UDP, ICMP or HTTPS |
| カスタムC2コマンド | なし | なし | 2コマンド(0xB, and 0x2008) | 4コマンド(0xB, 0xC, 0x2008, and 0x3023) |
攻撃者グループの考察
MetaRATを利用する攻撃者グループについて考察します。今回の攻撃キャンペーンでは、攻撃者がMetaRATに加えてTalismanも併用していたことを確認しました。本事案の調査を進める中で、表4に示すとおり、MetaRATローダおよびTalismanローダに含まれるPDBファイルパスが類似する検体を確認しました。これらの共通点は、同一の攻撃者がMetaRATとTalismanを併用している可能性を示唆する根拠の1つと考えられます。
| Filename | Timestamp (UTC) |
Payload Name | Malware Family | PDB Path |
|---|---|---|---|---|
| mytilus3.dll | 2023-05-22 03:06:55 | materoll | MetaRAT | E:¥Code¥MetaRAT¥MetaRAT¥Client¥Resources¥DllHijack.pdb |
| mytilus3.dll | 2023-08-06 10:37:42 | materoll | MetaRAT | D:¥Project¥MetaRAT¥MetaRAT¥Client¥Resources¥DllHijack.pdb |
| mytilus3.dll | 2025-04-21 08:25:24 | materoll | MetaRAT | C:¥Users¥sysadminDEV¥Desktop¥ReControl¥2-M¥M¥M-miansha¥K-DllHijack-免杀¥bin¥mytilus3.pdb |
| mytilus3.dll | 2025-05-24 06:24:47 | ws32.sob | Talisman | C:¥Users¥sysadminDEV¥Desktop¥ReControl¥1-K¥K1¥K-maker¥K-DllHijack-免杀¥bin¥mytilus3.pdb |
そこでまずは、Talismanを用いる攻撃者グループに着目します。図29は、Talismanが使用された攻撃キャンペーンに関する公開レポートを時系列で整理したものです。
Talismanは、前述のとおり2022年3月にTrellix社が命名したPlugXの亜種であり、このマルウェアはRecorded Future社が2021年に報告した中国の攻撃者グループRedFoxtrotに紐づく可能性が指摘されています。また、同時期にDr.Web社は、中国の攻撃者グループCalypsoがカザフスタンの通信事業者に対してTalismanを使用していたことを報告しています。さらに、2024年にはPositive Technologies社がロシアの政府機関や企業を標的とした攻撃で本マルウェアが用いられたと報告しています。
これらの報告から、TalismanはRedFoxtrot、Space Pirates、Calypsoなど複数の中国を拠点とする攻撃者グループによって使用されていることが示唆されます。
図30はTalismanを利用する3つの攻撃者グループの特徴を簡潔に整理したものです。これらのグループは2015年前後に活動を開始し、政府機関や通信事業者を主な標的としています。また、各グループの標的対象国に着目すると、いずれのグループも中央・南アジアを中心に攻撃を展開していることが確認できます。
攻撃者グループとマルウェアの関係性
次に、攻撃者グループとMetaRATの関連性について考えます。図31はMetaRATの通信先を示したものです。黄色の線が示すように、MetaRATのC2インフラは2022年頃にCalypsoが使用していたC2インフラと一部重複していることが確認できます。さらに、青色の線に着目すると、MetaRATの通信先は2024年頃にSpace Piratesが使用したと報告されているC2インフラとも重複していることがわかります。これらを踏まえると、Talismanを利用するグループのうち、少なくともSpace PiratesとCalypsoの2グループがTalismanとMetaRATを併用している可能性が示唆されます。しかしながら、今回の攻撃キャンペーンに関しては、C2インフラから特定の攻撃者グループとの明確な関連性は確認できませんでした。
一方で、MetaRATの解析を進める中で、MetaRATを内包するシェルコードと類似した特徴を持つ別のマルウェア、RainyDay※6およびTurian※7の存在を確認しました。図32は、MetaRAT(2022年サンプル)、RainyDay、Turianの各ペイロードを内包するシェルコードを比較したものです。これら3つのシェルコードはいずれも、橙枠で示した同一のRC4鍵を用いて各ペイロードを復号し、その後LZNT1で展開します。複数のマルウェアファミリーが類似したシェルコードを用い、同一の暗号鍵およびアルゴリズムにより各ペイロードを復号・展開している事実は、同一のマルウェア開発者の関与、もしくはソースコードの共有が行われている可能性を示唆するものです。なお、TurianサンプルにはControl Flow Flattening(CFF)が施されているため、図中では一部のコードを省略しています。
※6 RainyDayは、ファイル操作、シェルコマンドの実行、プロセス操作、スクリーンキャプチャなどの機能を備えたRATであり、C2通信にTCPおよびHTTPプロトコルを使用します。
※7 Turianは、ファイル操作、シェルコマンドの実行、プロセス操作などの機能を備えたRATであり、C2通信にSSLトラフィックを偽装した通信を利用します。
最後に、ここまでの分析結果を踏まえ、攻撃者グループとマルウェアの関連性を整理します。
今回の攻撃キャンペーンでは、図33の赤枠で示すように、MetaRATとともにTalismanの使用が確認されています。また、MetaRATを内包するシェルコードに着目してみると、同様のシェルコードを用いるRainyDayおよびTurianは、攻撃者グループ「Naikon」および「BackdoorDiplomacy」によって使用されています(図34)。
さらに、MetaRATとRainyDayで使用されている文字列やコードの一部に類似点が見られることから、2つのマルウェアは同一の開発者が関与している、あるいはソースコードが共有されている可能性が考えられます。図35は、類似コードの一例であるタイムスタンピング(timestomping)機能の実装を比較したものです。いずれのマルウェアも、SYSTEMTIME構造体のwYear、wHour、wMinuteメンバなどに設定する値の生成処理が類似しています。
MetaRATとの関連については複数のマルウェアや攻撃者グループの関与が考えられます。一方で、本キャンペーンで確認できたマルウェアはMetaRATとTalismanのみであり、NaikonやBackdoorDiplomacyとの明確な関連性は確認されていません。
以上を踏まえ、本攻撃キャンペーンには中程度の確度でSpace PiratesまたはCalypsoの関与が考えられ、標的およびツールセットの類似性に基づきRedFoxtrotの関与の可能性も示唆されます。
攻撃痕跡の確認方法と検出
今回紹介したMetaRATは、Windowsサービスの悪用や自動起動用レジストリキーの登録、キーログファイルの作成などの痕跡を残します。これらの有無や内容を確認することで、攻撃の有無や影響範囲を調査することが可能です。以下に、その確認方法の一例を紹介します。あわせて、MetaRATを検出するためのSuricata/Snort、Splunk、Sigma、Yaraのルールも記載しています。
永続化方法の確認
図36および図37に示すような、自動起動用のレジストリキー「matesile」またはWindowsサービス「sihosts」が作成されるため、これらの有無を確認します。これらの永続化設定は、MetaRATの設定ファイルによって異なります。なお、設定ファイルによっては、このマルウェアはペイロード「materoll」をレジストリに保存する場合もあります(図38)。
キーログファイルまたは設定ファイルの確認
KeylogDumpプラグインにより、「%ALLUSERSPROFILE%¥mates¥」配下に「VniFile.hlp」という名前のキーログファイルが作成されるため、当該ファイルの有無を確認します(図39)。図40は、作成されたキーログファイルの一例です。また、設定ファイル「ZBAYOBAcN」も同じディレクトリに作成されます。この設定ファイルはgzip形式で圧縮されており、ファイル名はMetaRATの設定ファイルによって異なります。
ルールによる検出
以下、それぞれの製品に対応するルールを利用することで、MetaRATのC2通信や挙動を検出することが可能です。詳細はAppendixを参照ください。
- Suricata/Snortルール
- Splunk SPLクエリ
- Sigmaルール
- Yaraルール
まとめ
今回は、日本の組織を標的としたMetaRATの攻撃キャンペーンについて紹介しました。MetaRATはPlugXをベースとしたモジュール型RATであり、Talismanなど他のPlugX亜種と比較して、いくつかの独自コードの実装が確認されています。一方で、RainyDayで使用される文字列やコードの一部には、MetaRATとの共通点が見られます。MetaRATは、中国を拠点とするSpace PiratesやCalypsoなどの複数の攻撃者グループによって共有・利用されており、本事案においてもこれらのグループの関与が考えられます。
今回の攻撃キャンペーンでは機密情報の窃取痕跡は確認できず、認証情報の収集に焦点を当てていた可能性が高いと考えられます。これは、攻撃者が将来的に必要に応じて標的組織へ再侵入するための準備行為であった可能性を示唆します。組織は、日々のセキュリティ運用およびインシデント対応プロセスを強化するとともに、脆弱性の放置や不適切なアカウント管理など、攻撃の起点となり得る要因を継続的に排除することが重要です。さらに、EDRによるエンドポイント監視やネットワーク機器による通信の制御・監視など、多層的なセキュリティ対策を講じることも不可欠です。
私たちは今後も、MetaRATおよび当該マルウェアを利用する攻撃者グループについて継続的に調査を行い、その結果を広く情報提供してまいります。ぜひご活用いただければ幸いです。
松本 拓馬、石川 芳浩
Appendix
Suricata/Snortルール
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"MetaRAT C2 traffic detection"; content:"GET"; content:"Cookie-Yaga:"; content:"Cookie-Nguy:"; content:"User-Agent: Mozilla/5.0 (Compatible|3B| MSIE 9.0|3B| Windows NT 10.0)"; sid:1000010; rev:2;)
※ 本番システムに導入する前に、適切なテストとチューニングを行うことを推奨します。
Splunkルール
index=main "Mozilla/5.0 (Compatible; MSIE 9.0; Windows NT 10.0)" AND (".css" OR ".js" OR ".less")
| regex uri_path="/([0-9A-F]{12})¥.(less|js|css)"
※ 本番システムに導入する前に、適切なテストとチューニングを行うことを推奨します。
Sigmaルール
title: Suspicious DLL-Sideloading of MetaRAT
status: Experimental
description: Detects the DLL-Sideloading of MetaRAT
date: 09/04/2025
logsource:
category: image_load
product: windows
detection:
selection_1:
Image|endswith: 'C:¥ProgramData¥mates¥mcinsupd.exe'
ImageLoaded|endswith: 'C:¥ProgramData¥mates¥mytilus3.dll'
condition: selection_1
falsepositives:
- Unknown
level: high
title: KeyLog File Creation of MetaRAT
status: Experimental
description: Detects the KeyLog File Creation of MetaRAT
date: 09/04/2025
logsource:
category: file_event
product: windows
detection:
selection_1:
TargetFilename|endswith: '¥VniFile.hlp'
selection_2:
Image|contains:
- '¥mcinsupd.exe'
condition: selection_1 and selection_2
falsepositives:
- Unknown
level: high
※ 本番システムに導入する前に、適切なテストとチューニングを行うことを推奨します。
Yaraルール
rule MetaRAT_body {
meta:
description = "MetaRAT malware"
author = "LAC Co., Ltd."
strings:
$str1 = "AVCListenModeSocket" ascii
$str2 = "metawins.slp" wide
$str3 = "Cookie-Yaga" ascii
$str4 = "Cookie-Nguy" ascii
$str5 = "materoll" ascii
condition:
(3 of ($str*)) and filesize < 300KB
}
rule MetaRAT_Loader {
meta:
description = "MetaRAT Loader malware"
author = "LAC Co., Ltd."
strings:
$str1 = "¥¥MetaRAT¥¥MetaRAT¥¥Client" ascii
$str2 = "¥¥sysadminDEV¥¥Desktop¥¥ReControl" ascii
$code1 = {80 34 ?? A6 [1-6] 3B C? 72 F? BA 12 00 00 00}
condition:
uint16(0) == 0x5A4D and ($str1 or $str2) or ($code1)
} }
※ 本番システムに導入する前に、適切なテストとチューニングを行うことを推奨します。
Diamond Model
MetaRATを用いた本攻撃キャンペーンをダイヤモンドモデルで整理し、分析したものです。
IOC(Indicator Of Compromised)
| Indicator | Type | Context |
|---|---|---|
| 8f50f434fa776cd11869d1e43858ac6d480d176b7c0dddc09b71d40b20a4aa46 | SHA-256 | MetaRAT Loader |
| c6124a3ca27299ef1b4d053782b11fe9fe4e215cac3cbd47d09a06e2ca6dde0c | SHA-256 | MetaRAT Loader |
| 6ad67d7f76986359865667bdd51ba267f6bd7e560270512074448dd7b088bcb7 | SHA-256 | MetaRAT Loader |
| 00dbc8a4b3121af5a19504a9d969e36e709556420a6117eb3533f1d2a8100fd9 | SHA-256 | MetaRAT Loader |
| aec2d0cbd2f195bf35e55019a29f0d6109451eb85dc7941b73e3b562b065a11c | SHA-256 | MetaRAT Loader |
| fd87149d6b8fdcad5d84ba4a3ca52e1cef8f0c54cafca6dbbb5d156f313d79dd | SHA-256 | MetaRAT Payload |
| fd6b1ca0f26e54fa9c97ea15c834e58ffb71798df38071ad00b14f19d6a4126c | SHA-256 | MetaRAT Payload |
| c91595edd1c9a0a2c1168e3bfa532e4a7dbb6b1380afd80ba445b728622798a4 | SHA-256 | MetaRAT Payload |
| c90460e820a8c5874d5412032b7db719cb8ea34ae8e48e4ab934a4096a09612b | SHA-256 | MetaRAT Payload |
| a92ed5f831c99bb84208ef7d7c733e0183a79de40f9d3b3be54744951f0a1391 | SHA-256 | MetaRAT Payload |
| 0ec83d1deb6065cac8ba8f849cdf5672da7313ec2e860a7d71bb7e397e661394 | SHA-256 | MetaRAT Payload |
| 7b028a9bd2bc0c306ab6561cf702406f5925fc073f9d0d2d9408ceccd6907743 | SHA-256 | MetaRAT Payload |
| aba6f7611291433983ba9c65654b04745a050530329d3ad329cc859c1ce12c44 | SHA-256 | MetaRAT |
| d3ec33ae5c8ce2ac5eb0c96c6d6dc1d5ca610bacaa9de85d1e4bfe1d60923970 | SHA-256 | MetaRAT |
| ae0f29727920882781d31d982c0b5ad71d83f1dd9cebd41e1e5e444c1e6d7854 | SHA-256 | Talisman Loader |
| 78c3eb67fdc59fd09cba6388d6e31c428ed3c227f04b9cd739e8c36a8f1a182e | SHA-256 | Talisman Payload |
| 367ad2eaa851ae17a4b75d92ec712d889fa85c0f2a51b9d5c5e08ae84fa7514d | SHA-256 | Talisman Payload |
| 88bf17cb9f126c9c5a78a2a29138ee1cdaab3ec141115f45a1f345bb6679d57d | SHA-256 | Talisman Variant Loader |
| df5b319cc7e1f4a6389a02b7942b5db68ca55eaeb7ad8d7b78f0ab6671496d66 | SHA-256 | Talisman Variant Payload |
| doodle01[.]space | C2 | MetaRAT |
| piao.mil.onmypc[.]net | C2 | MetaRAT |
| 117.254.105[.]200 | C2 | MetaRAT |
| 45.114.192[.]137 | C2 | MetaRAT |
| 103.9.14[.]218 | C2 | MetaRAT |
| newsinfom[.]org | C2 | MetaRAT |
| 23.254.225[.]184 | C2 | MetaRAT |
| 103.136.45[.]108 | C2 | MetaRAT |
| 103.172.10[.]165 | C2 | MetaRAT |
| 117.239.199[.]202 | C2 | MetaRAT |
| mailserver.kozow[.]com | C2 | MetaRAT |
| turky[.]info | C2 | Talisman |
| 220.130.204[.]242 | C2 | Talisman |
| nord.ocry[.]com | C2 | Talisman |
| 112.213.125[.]75 | C2 | Talisman Variant |
タグ
- アーキテクト
- アジャイル開発
- アプリ開発
- インシデントレスポンス
- イベントレポート
- カスタマーストーリー
- カルチャー
- 官民学・業界連携
- 企業市民活動
- クラウド
- クラウドインテグレーション
- クラブ活動
- コーポレート
- 広報・マーケティング
- 攻撃者グループ
- もっと見る +
- 子育て、生活
- サイバー救急センター
- サイバー救急センターレポート
- サイバー攻撃
- サイバー犯罪
- サイバー・グリッド・ジャパン
- サプライチェーンリスク
- システム開発
- 趣味
- 障がい者採用
- 初心者向け
- 白浜シンポジウム
- 情シス向け
- 情報モラル
- 情報漏えい対策
- 人材開発・教育
- 診断30周年
- スレットインテリジェンス
- すごうで
- セキュリティ
- セキュリティ診断
- セキュリティ診断レポート
- 脆弱性
- 脆弱性管理
- ゼロトラスト
- 対談
- ダイバーシティ
- テレワーク
- データベース
- デジタルアイデンティティ
- 働き方改革
- 標的型攻撃
- プラス・セキュリティ人材
- モバイルアプリ
- ライター紹介
- ラックセキュリティアカデミー
- ランサムウェア
- リモートデスクトップ
- 1on1
- AI
- ASM
- CIS Controls
- CODE BLUE
- CTF
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- DevSecOps
- DX
- EC
- EDR
- FalconNest
- IoT
- IR
- JSOC
- JSOC INSIGHT
- LAC Security Insight
- NDR
- OWASP
- SASE
- Tech Crawling
- XDR









