RebexをベースにしたTelegram RATがベトナムを標的に
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ボットトークンは即座に変更されるべきであり、さらなるコマンド&コントロール活動の監視を続けるべきです。データが流出したかどうかを確認するために、完全なフォレンジック調査が推奨されます。
"graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef registry fill:#ffddaa %% ノード initial_access_phishing["<b>アクション</b> – <b>T1566.001 スピアフィッシング添付ファイル</b><br/>Word文書として偽装された悪意のあるCHMが被害者に送信される。"] class initial_access_phishing action file_chm["<b>マルウェア</b> – <b>ファイル</b>: CV – Vu PLPC KT nam 2026.chm<br/>.docに見えるようにダブル拡張子で偽装。"] class file_chm malware defense_masquerade["<b>アクション</b> – <b>T1036.008 偽装</b><br/>CHMファイルがダブル拡張子を使用してWord文書として偽装。"] class defense_masquerade action defense_obfuscation["<b>アクション</b> – <b>T1027.006 隠ぺいされたファイルまたは情報</b><br/>HTMLスモグリングがCHM内に悪意のあるコードを隠す。"] class defense_obfuscation action execution_user["<b>アクション</b> – <b>T1204.002 ユーザーの実行</b><br/>被害者がCHMを開くと、HTML/JSがOBJECTタグを実行しcmd.exeを起動。"] class execution_user action process_cmd["<b>プロセス</b> – cmd.exe<br/>CHMによってOBJECTタグ経由で起動。"] class process_cmd process execution_msbuild["<b>アクション</b> – <b>T1127.001 信頼できる開発者ツールによるプロキシ実行</b><br/>スクリプトがmechaniSm.xmlをドロップし、msbuild.exeを呼び出して悪意のある.NET DLLをロードする。"] class execution_msbuild action tool_msbuild["<b>ツール</b> – msbuild.exe<br/>ioy24euj.dllをロードするために使用。"] class tool_msbuild tool file_dll["<b>マルウェア</b> – <b>DLL</b>: ioy24euj.dll<br/>持続性とペイロードの配信を行う.NETコードが含まれる。"] class file_dll malware persistence_autostart["<b>アクション</b> – <b>T1547.014 アクティブセットアップ</b><br/>DLLがHKCUSoftwareMicrosoftWindows NTCurrentVersionWinlogonShellをリネームされたmsbuildラッパーに指すように変更。"] class persistence_autostart action registry_mod["<b>レジストリ</b> – HKCUSoftwareMicrosoftWindows NTCurrentVersionWinlogonShell<br/>カスタムmsbuildラッパー用に設定し自動実行。"] class registry_mod registry persistence_event["<b>アクション</b> – <b>T1546.009 AppCert DLLs</b><br/>DLLがctypes.CDLLを介してロードされ、後にさらなるペイロードを解読するために実行される。"] class persistence_event action dll_load["<b>プロセス</b> – ctypes.CDLLロード<br/>悪意のあるDLLがプロセス空間にロード。"] class dll_load process privilege_injection["<b>アクション</b> – <b>T1055.001 プロセスインジェクション</b><br/>DLLがcmd.exeにコードを注入しペイロードを実行。"] class privilege_injection action process_injection["<b>プロセス</b> – DLLによるcmd.exeへの注入<br/>さらなる悪意のあるルーチンの実行を可能にする。"] class process_injection process command_and_control["<b>アクション</b> – <b>T1573 暗号化されたチャネル</b><br/>.NET RATはXORで暗号化され、base64でエンコードされたメッセージを使用してTelegramボットと通信する。"] class command_and_control action c2_telegram["<b>ツール</b> – Telegramボット<br/>コマンドを受取り、暗号化されたチャネルを介しデータを流出。"] class c2_telegram tool impact_shutdown["<b>アクション</b> – <b>T1529 システムシャットダウン/再起動</b><br/>毎週金曜日の深夜にシステムをシャットダウンするようにスケジュールされたタスク"Doubt"が作成。"] class impact_shutdown action scheduled_task["<b>プロセス</b> – スケジュールされたタスク"Doubt"<br/>スケジュールされた時間にシステムシャットダウンをトリガー。"] class scheduled_task process %% 接続 initial_access_phishing –>|送り届ける| file_chm file_chm –>|使用する| defense_masquerade file_chm –>|使用する| defense_obfuscation file_chm –>|トリガー| execution_user execution_user –>|起動する| process_cmd process_cmd –>|可能にする| execution_msbuild execution_msbuild –>|使用する| tool_msbuild tool_msbuild –>|ロードする| file_dll file_dll –>|可能にする| persistence_autostart persistence_autostart –>|変更する| registry_mod file_dll –>|可能にする| persistence_event persistence_event –>|ロードする via| dll_load dll_load –>|実行する| privilege_injection privilege_injection –>|注入する into| process_injection process_injection –>|促進する| command_and_control command_and_control –>|使用する| c2_telegram command_and_control –>|引き起こす| impact_shutdown impact_shutdown –>|作成する| scheduled_task "
攻撃の流れ
検出
可能性のある持続ポイント [ASEPs – Software/NTUSER Hive](レジストリエベントを通じて)
表示
シャットダウンはシステム停止または再起動を強制するために使用されます(cmdline経由)
表示
LOLBAS HH – HTML ヘルプ実行ファイルプログラムによる疑わしい引数(cmdline経由)
表示
自動起動位置における疑わしいバイナリ/スクリプト(ファイルイベント経由)
表示
マイクロソフトコンパイルHTMLヘルプ(.chm)拡張子を持つファイルによる可能性のある実行(ファイルイベント経由)
表示
コマンドとコントロールチャネルとしてのTelegramの悪用の可能性(dns_query経由)
表示
検出用 IOCs (HashSha256):RebexベースのTelegram RATがベトナムを標的
表示
CHMファイルの実行が悪意のある活動につながる [Windowsプロセス作成]
表示
シミュレーション実行
前提条件:テレメトリとベースラインのプレフライトチェックに合格している必要があります。
根拠:このセクションは、検出ルールをトリガーするために設計された敵手法(TTP)の正確な実行の詳細を示します。コマンドと記述は、特定されたTTPに直接対応し、検出ロジックによって期待される正確なテレメトリを生成することを目指します。
-
攻撃ナラティブとコマンド
-
配信: 攻撃者は悪意のある
.chmファイル(名前UpdateHelp.chmとされた)を被害者に届けます。 -
デコンパイル: 被害者(または悪意のあるスクリプト)が、
hh.exeを使用して-decompileフラグで埋め込みペイロードを抽出:hh.exe -decompile C:TempPayloads C:UsersPublicUpdateHelp.chmこれにより、ルールが監視する プロセス作成イベントが生成されます( ペイロード実行 – リネームされたインタープリター:
hh.exe+-decompile). -
Payload Execution – Renamed Interpreter: 抽出されたファイルの中には、リネームされたPythonインタープリター(
_pJifgWSwPi.exe)があります。攻撃者は、cmd.exeを使用して低プロファイルを維持しながらこれを起動します:cmd.exe /c "C:TempPayloads_pJifgWSwPi.exe -c "import os; os.system('whoami')""これがルールの
cmd.exe条件を満たします。 -
サイン付きバイナリプロキシ – 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 "[+] クリーンアップ完了。"