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 %% Class Definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef operator fill:#ff9900 %% Nodes – 技術 initial_access[“<b>技術</b> – <b>T1204.001 ユーザー実行: 悪意のあるリンク</b><br/><b>説明</b>: 被害者が悪意のあるリンクをクリックすることで実行される。”] class initial_access technique delivery_html_smuggling[“<b>技術</b> – <b>T1027.006 難読化ファイル: HTMLスモグリング</b><br/><b>説明</b>: HTML内に隠されたJavaScriptでペイロードを配布する。”] class delivery_html_smuggling technique delivery_compile_after[“<b>技術</b> – <b>T1027.004 配布後コンパイル</b><br/><b>説明</b>: ペイロードはホスト上で後から構築される。”] class delivery_compile_after technique delivery_embedded_payloads[“<b>技術</b> – <b>T1027.009 埋め込みペイロード</b><br/><b>説明</b>: JavaScriptなどに埋め込まれたペイロード。”] class delivery_embedded_payloads technique delivery_deobfuscate[“<b>技術</b> – <b>T1140 デコード/復号</b><br/><b>説明</b>: ブラウザでBase64デコードされる。”] class delivery_deobfuscate technique persistence_run_key[“<b>技術</b> – <b>T1127.002 信頼ツール経由実行</b><br/><b>説明</b>: Runキーを作成しnode.exeを起動。”] class persistence_run_key technique persistence_appcert[“<b>技術</b> – <b>T1546.009 AppCert DLL</b><br/><b>説明</b>: 信頼証明書付きDLLによる永続化。”] class persistence_appcert technique recon_hardware[“<b>技術</b> – <b>T1592.001 ハードウェア情報収集</b>”] class recon_hardware technique recon_firmware[“<b>技術</b> – <b>T1592.003 ファームウェア情報収集</b>”] class recon_firmware technique c2_web_protocols[“<b>技術</b> – <b>T1071.001 WebプロトコルC2</b>”] class c2_web_protocols technique c2_bidirectional[“<b>技術</b> – <b>T1102.002 双方向通信</b>”] class c2_bidirectional technique c2_oneway[“<b>技術</b> – <b>T1102.003 単方向通信</b>”] class c2_oneway technique c2_encrypted[“<b>技術</b> – <b>T1573 暗号化通信</b>”] class c2_encrypted technique c2_data_encoding[“<b>技術</b> – <b>T1132 データエンコーディング</b>”] class c2_data_encoding technique c2_config_repo[“<b>技術</b> – <b>T1602 設定リポジトリ</b>”] class c2_config_repo technique asset_drain[“<b>技術</b> – <b>トークン承認</b>”] class asset_drain technique %% Tools / Processes tool_malicious_link[“<b>ツール</b>: フィッシングリンク”] class tool_malicious_link tool tool_js_payload[“<b>ツール</b>: 難読化JS”] class tool_js_payload tool process_installer[“<b>プロセス</b>: Windowsインストーラ”] class process_installer process tool_node_exe[“<b>ツール</b>: node.exe”] class tool_node_exe tool tool_web3modal[“<b>ツール</b>: Web3Modal UI”] class tool_web3modal tool %% Connections unchanged initial_access –>|leads_to| delivery_html_smuggling delivery_html_smuggling –>|uses| tool_malicious_link delivery_html_smuggling –>|uses| tool_js_payload delivery_html_smuggling –>|enables| delivery_compile_after delivery_compile_after –>|enables| delivery_embedded_payloads delivery_embedded_payloads –>|triggers| delivery_deobfuscate delivery_deobfuscate –>|creates| process_installer process_installer –>|drops| persistence_run_key process_installer –>|may_use| persistence_appcert persistence_run_key –>|executes| tool_node_exe persistence_appcert –>|loads| tool_node_exe tool_node_exe –>|collects| recon_hardware tool_node_exe –>|collects| recon_firmware recon_hardware –>|feeds| c2_web_protocols recon_firmware –>|feeds| c2_web_protocols c2_web_protocols –>|supports| c2_bidirectional c2_web_protocols –>|supports| c2_oneway c2_bidirectional –>|uses| c2_encrypted c2_oneway –>|uses| c2_encrypted c2_encrypted –>|encodes| c2_data_encoding c2_data_encoding –>|stores_config_in| c2_config_repo c2_config_repo –>|provides| asset_drain asset_drain –>|uses| tool_web3modal
攻撃の流れ
検出
可能性のある持続ポイント [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 "[+] クリーンアップ完了。"