SOC Prime Bias: クリティカル

06 11月 2025 09:01

「EndClient RAT」- 新しいKimsuky APTマルウェア

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
「EndClient RAT」- 新しいKimsuky APTマルウェア
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

EndClient RAT 分析

EndClient RAT は、Kimsuky クラスターに関連付けられた最近観測されたリモートアクセス型トロイの木馬で、署名されたバイナリまたはスクリプトドロッパー(コード署名証明書の盗用により SmartScreen/AV を回避)を介して到着し、リモートシェル/コマンド実行、ファイルのアップロード/ダウンロード、持続性、HTTP(S)経由での C2 を提供し、これまで検出率は低く、IOC を含む初期技術報告書で文書化されました。

即時の行動として、ファイルのハッシュと証明書シリアルの収集、既知の C2 ドメイン/URL のブロック、予期しないコード署名証明書の失効またはピンニング、アプリケーションホワイトリスティングの有効化、メール/添付ファイルの制御の強化、異常な署名済み実行ファイルのハンティングが含まれます。

調査

技術分析により、以下の ATT&CK 技法が明らかになりました: T1059.003(cmd.exe と名前付きパイプを使用した Command‑Shell)、T1105(ダウンロード/アップロードコマンドによる Ingress Tool Transfer)、T1569.001(プロセス作成)、T1053.005(持続性のためのスケジュールタスク)、T1027(AutoIT スクリプトのコンパイルおよび Avast 検出時の多様な変異による Obfuscated/Stored Files)、T1547.009(LNK in Startup によるショートカット変更)、T1543.003(Windows Service – schtasks.exe を hwpviewer.exe にコピー)、T1036.005(盗まれた証明書を使った署名済み MSI による偽装)、T1574.001(DLL コールによる実行フローの乗っ取り)、T1129(Base64、LZMA、バイナリ検索のための共通メモリスタブの使用による共有モジュール)。RAT はグローバルミューテックス (GlobalAB732E15-D8DD-87A1-7464-CE6698819E701) を使用して複数のインスタンスを防ぎ、Avast AV をチェックし、毎分実行される “IoKlTr” というスケジュールタスクを作成し、ファイルを C:UsersPublicMusic にドロップします。ネットワーク C2 は、116.202.99.218:443 への TCP 経由で sentinel‑framed JSON マーカー “endClient9688” と “endServer9688” を使用して実行されます。

緩和策

署名されていないまたは疑わしい MSI インストーラーの実行をブロックし、特に盗まれた証明書で署名されたものに注意してください。”IoKlTr” または類似の名前のスケジュールタスクの作成、およびスタートアップフォルダ内の LNK ファイル (例: Smart_Web.lnk) について監視およびアラートを設定します。グローバルミューテックス値および AutoIT バイナリ (AutoIt3.exe) の使用を検知します。116.202.99.218 の C2 IP とカスタム JSON マーカーを使用したトラフィックをブロックするネットワークエグレスフィルタリングを施行します。コンパイル済み AutoIT スクリプトを検査し、多様なファイル変異を検知できるエンドポイント保護を導入します。脆弱な証明書の署名検証と失効を実施します。

応答

感染が疑われる場合、影響を受けたホストを隔離し、メモリダンプと MSI ファイルを収集してフォレンジック分析を行い、スケジュールタスクの定義、LNK ファイル、およびミューテックスの一覧をキャプチャします。すべてのドロップされたバイナリをハッシュ化し、既知の IOC と比較します。スケジュールタスクを削除し、LNK ショートカットを削除し、C:UsersPublicMusic にある RAT 関連のファイルを削除します。C2 IP をブロックし、ファイアウォールルールを更新します。環境全体でミューテックス、名前付きパイプパターン、およびカスタム JSON マーカーのための完全なインディケーターハントを実施します。関連する利害関係者に結果を提供し、影響を受ける人権団体への通知を考慮してください。

mermaid graph TB %% クラス定義 classDef technique fill:#99ccff classDef process fill:#ffdd99 classDef discovery fill:#ddffdd classDef exfil fill:#ffcc99 classDef c2 fill:#ff99cc %% ノード A[“<b>テクニック</b> – <b>T1210 リモートサービスのエクスプロイト</b><br />ポート 8530/8531 での認証されていない WSUS デシリアライゼーション”] class A technique B[“<b>テクニック</b> – <b>T1059.003 コマンド実行</b><br />wsusservice.exe または w3wp.exe が cmd.exe を起動”] class B process C[“<b>テクニック</b> – <b>T1059.001 PowerShell</b> と <b>T1027.009 不可視化ファイルまたは情報</b><br />Base64 でエンコードされたペイロードがデコードされ実行”] class C process D1[“<b>テクニック</b> – <b>T1033 システム所有者/ユーザー情報の発見</b><br />コマンド: whoami”] class D1 discovery D2[“<b>テクニック</b> – <b>T1087.002 ドメインアカウントの発見</b><br />コマンド: net user /domain”] class D2 discovery D3[“<b>テクニック</b> – <b>T1016 ネットワーク設定の発見</b><br />コマンド: ipconfig /all”] class D3 discovery E[“<b>テクニック</b> – <b>T1567.004 Webhook 経由での流出</b> via HTTP PUT (T1102.002)<br />ツール: Invoke‑WebRequest または curl”] class E exfil F[“<b>テクニック</b> – <b>T1090.003 マルチホッププロキシ</b> と <b>T1071.001 ウェブプロトコル</b><br />コマンド & コントロールトラフィック”] class F c2 %% 接続 A u002du002d>|エクスプロイト| B B u002du002d>|スポーン| C C u002du002d>|実行| D1 C u002du002d>|実行| D2 C u002du002d>|実行| D3 D1 u002du002d>|収集| E D2 u002du002d>|収集| E D3 u002du002d>|収集| E E u002du002d>|転送| F

攻撃フロー

CVE-2025-59287 シミュレーション

シミュレーション実行

前提条件: テレメトリー & ベースライン プリフライトチェックが合格していること。

  • 攻撃の流れ & コマンド:

    1. 署名済み MSI をターゲットホストに配信 (StressClear.msi) をターゲットホストに配信します。
    2. MSI を実行 静かに、AutoIt スクリプト (payload.au3).
    3. AutoIt スクリプトを起動しAutoIt3.exe、これにより隠されたcmd.exe が実行され、逆シェルを開きます。
    4. 持続性を確立するために、スクリプトは正当なschtasks.exeC:WindowsTemphwpviewer.exeにコピーし、システム起動時にこの名前変更されたバイナリを呼び出すスケジュールタスクを登録します。
    5. 隠されたcmd.exe プロセスは引数 hidden を使用してユーザーの視認性を避け、ルールの除外基準に正しく適合します。
  • 回帰テストスクリプト:

    # -------------------------------------------------
    # EndClient RAT 配送 & 実行シミュレーション
    # -------------------------------------------------
    # 1. 署名済み MSI をインストール (AutoIt ペイロードを配信)
    msiexec /i "C:TempStressClear.msi" /quiet /norestart
    
    # 2. 抽出された AutoIt スクリプトを特定 (シミュレートされたパス)
    $autoitScript = "C:ProgramDataStressClearpayload.au3"
    
    # 3. AutoIt3.exe をスクリプトと共に実行
    $autoItExe = (Get-Command "AutoIt3.exe" -ErrorAction SilentlyContinue).Source
    if (-not $autoItExe) {
        Write-Error "AutoIt3.exe がシステムに見つかりません。中止します。"