SOC Prime Bias: 中程度

27 Apr 2026 15:22 UTC

RebexをベースにしたTelegram RATがベトナムを標的に

Author Photo
SOC Prime Team linkedin icon フォローする
RebexをベースにしたTelegram RATがベトナムを標的に
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

ZIPアーカイブ内に配信された悪意のあるCHMファイルは、不正なPythonランタイムと埋め込まれたペイロードを暗号化解除するC++ DLLを落とします。そのペイロードはWinlogonのシェルハイジャック、スケジュールされたタスク、および MSBuildの悪用を通じて持続性を確立し、.NETベースのTelegram RATを起動します。このマルウェアはハードコーディングされたトークンを使用してTelegramボットと通信し、コマンド実行、トークン置き換え、ファイルダウンロードを支援します。このキャンペーンは現在ベトナムの被害者を標的としており、VirusTotalでの検出は確認されていません。

調査

CHMファイルの解析により、アーカイブをデコンパイルし、 PYTHONHOMEをクリアし、コンパイル済みバイトコードファイルでリネームされたPython実行ファイルを起動するスクリプトが明らかになりました。バイトコードはDLLを読み込み、暗号化されたDOCXブロブを解読し、追加コンポーネントを抽出、それらを一時的な場所に書き込みました。DLLはレジストリエントリを作成し、タスク名 Doubtをスケジュールし、 MSBuild XMLファイルを実行して2番目のDLLを読み込み、最終的に.NET Telegram RATを展開しました。RATはコマンド&コントロールのためにハードコーディングされたTelegramボットの認証情報に依存しています。

緩和策

ディフェンダーは信頼できないソースからのCHMファイルの実行をブロックし、 hh.exe, msbuild.exe、および署名されていないまたは疑わしいスクリプトに対するPowerShellの使用を制限する必要があります。監視はWinlogon Shell のレジストリ変更、異常なスケジュールされたタスクの作成、および一時ディレクトリに新たにドロップされたDLLに焦点を当てるべきです。組織はまた、プロキシコントロールを通じてTelegram APIトラフィックを検査し、エンドユーザーには最小権限アクセスを強制する必要があります。

対応

セキュリティチームは感染したホストを特定して隔離し、揮発性の証拠を収集し、分析のために悪意のあるDLLとスクリプトを抽出する必要があります。Winlogon Shell の値とスケジュールされたタスクは削除され、ドロップしたファイルは削除され、変更されたレジストリ設定は既知の良好な状態に戻す必要があります。露出されたTelegramボットトークンは即座に変更されるべきであり、さらなるコマンド&コントロール活動の監視を続けるべきです。データが流出したかどうかを確認するために、完全なフォレンジック調査が推奨されます。

攻撃の流れ

シミュレーション実行

前提条件:テレメトリとベースラインのプレフライトチェックに合格している必要があります。

根拠:このセクションは、検出ルールをトリガーするために設計された敵手法(TTP)の正確な実行の詳細を示します。コマンドと記述は、特定されたTTPに直接対応し、検出ロジックによって期待される正確なテレメトリを生成することを目指します。

  • 攻撃ナラティブとコマンド

    1. 配信: 攻撃者は悪意のある .chm ファイル(名前 UpdateHelp.chmとされた)を被害者に届けます。

    2. デコンパイル: 被害者(または悪意のあるスクリプト)が、 hh.exe を使用して -decompile フラグで埋め込みペイロードを抽出:

      hh.exe -decompile C:TempPayloads C:UsersPublicUpdateHelp.chm

      これにより、ルールが監視する プロセス作成イベントが生成されます( ペイロード実行 – リネームされたインタープリター:hh.exe + -decompile).

    3. Payload Execution – Renamed Interpreter: 抽出されたファイルの中には、リネームされたPythonインタープリター(_pJifgWSwPi.exe)があります。攻撃者は、 cmd.exe を使用して低プロファイルを維持しながらこれを起動します:

      cmd.exe /c "C:TempPayloads_pJifgWSwPi.exe -c "import os; os.system('whoami')""

      これがルールの cmd.exe 条件を満たします。

    4. サイン付きバイナリプロキシ – Msbuild: Pythonペイロードは悪意のある .proj ファイルを書き、その後 msbuild.exe を呼び出して実行し、持続性またはさらなるコードの実行を達成:

      msbuild.exe C:TempPayloadsmalicious.proj /target:Build
  • リグレッションテストスクリプト

    #=============================================================
    # CHMに基づく攻撃シミュレーション – Sigmaルールをトリガー
    #=============================================================
    
    # 変数
    $chmPath   = "C:UsersPublicUpdateHelp.chm"
    $outFolder = "C:TempPayloads"
    $renamedPy = "_pJifgWSwPi.exe"
    $projFile  = "malicious.proj"
    
    # 1. 出力フォルダの存在を確認
    New-Item -ItemType Directory -Force -Path $outFolder | Out-Null
    
    # 2. CHMファイルのデコンパイルをシミュレート
    Write-Host "[*] Decompiling CHM..."
    hh.exe -decompile $outFolder $chmPath
    
    # 3. python.exe(または任意の無害なexe)のコピーをリネームされたインタープリターとして配置
    Copy-Item -Path "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe" `
              -Destination "$outFolder$renamedPy" -Force
    
    # 4. cmd.exeを介してリネームされたインタープリターを実行
    Write-Host "[*] Launching renamed interpreter via cmd.exe..."
    cmd.exe /c "`"$outFolder$renamedPy`" -c `"Write-Host 'Simulated payload executed'`""
    
    # 5. メッセージをエコーする簡単なmsbuildプロジェクトを作成
    $projContent = @"
    <Project ToolsVersion='4.0' xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
      <Target Name='Build'>
        <Message Text='Msbuild executed malicious project' Importance='High'/>
      </Target>
    </Project>
    "@
    Set-Content -Path "$outFolder$projFile" -Value $projContent -Encoding ASCII
    
    # 6. 悪意のあるプロジェクトでmsbuild.exeを実行
    Write-Host "[*] Executing msbuild.exe..."
    msbuild.exe "$outFolder$projFile" /target:Build
    
    Write-Host "[+] Simulation complete."
  • クリーンアップコマンド

    # 残っている可能性のあるプロセスを停止(まだ実行中の場合)
    Get-Process -Name "_pJifgWSwPi","hh","msbuild","cmd" -ErrorAction SilentlyContinue |
      Stop-Process -Force
    
    # 生成されたファイルとフォルダを削除
    Remove-Item -Recurse -Force -Path "C:TempPayloads"
    # テストのために作成された場合はオプションでCHMファイルを削除
    Remove-Item -Force -Path "C:UsersPublicUpdateHelp.chm" -ErrorAction SilentlyContinue
    
    Write-Host "[+] クリーンアップ完了。"