BotHelper RATが暗号化されたペイロードをライブスクリーン監視のために配信
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
マルチステージのWindows感染チェーンは、ネイティブステージャーを利用して暗号化されたペイロードを取得し、最終的に未公開の.NETリモートアクセスツールであるBotHelper RATを展開します。このRATは、ライブスクリーンの監視、クリップボードの監視、シェルコマンドの実行、追加プラグイン配信をサポートします。攻撃は、インメモリの復号化とMicrosoft Edgeの正当なプロセスを装うことで隠密性を高めるよう設計されています。
調査
Point Wildは感染チェーンを分析し、ホストをプロファイルするネイティブx64ステージャーを特定しました。このステージャーは指定されたURLから暗号化されたファイルをダウンロードする前にホストをプロファイルします。調査では、ステージャーがTLS証明書の検証を無効にし、ディスクベース検出を削減するために次のステージペイロードを完全にメモリ内で復号化することが判明しました。BotHelper RATは、タスクのスケジューリングを通じて持続性を確立し、Antimalware Scan Interface(AMSI)をパッチします。
緩和策
緩和策は初期ステージャーと関連するC2インフラストラクチャのブロックを優先すべきです。セキュリティーコントロールは、無許可のスケジュールされたタスクの作成や疑わしいプロセスの偽装(以下を含む)を検出する必要があります。 msedge_proxy.exe Tempディレクトリからの実行を含みます。組織は、AMSIパッチの試みや以前には知られていないまたは信頼されていないドメインへの異常なアウトバウンドTLS接続も監視する必要があります。
応答
BotHelper RATの活動が検出された場合、影響を受けたエンドポイントを隔離してさらなるコマンド実行とデータ漏洩を停止します。ユーザーの一時ディレクトリから悪意のあるスケジュールされたタスクとドロップされたファイルを削除します。メモリーフォレンジックを実行し、メモリ内コンポーネントの追加を特定し、クリップボードの盗難、ライブ画面監視、またはキャプチャされたスクリーンショットの証拠を調査します。
攻撃フロー
検出
Schtasksが怪しいディレクトリ/バイナリ/スクリプトを指す(コマンドライン経由)
疑わしいスケジュールされたタスク(監査経由)
異常なトップレベルドメイン(TLD)のDNS要求による疑わしいコマンドとコントロール(DNS経由)
検出用IOCs(HashSha256):BotHelper RAT:暗号化されたペイロードからライブスクリーン監視まで
検出用IOCs(SourceIP):BotHelper RAT:暗号化されたペイロードからライブスクリーン監視まで
検出用IOCs(DestinationIP):BotHelper RAT:暗号化されたペイロードからライブスクリーン監視まで
BotHelper RATペイロードにおけるXORループの解析を検出【Windows Sysmon】
BotHelper RAT持続性のためのスケジュールされたタスクを検出【Windowsレジストリイベント】
BotHelper RATとmsedge_proxy.exeの実行を検出【Windowsプロセス作成】
シミュレーション実行
-
攻撃の物語とコマンド: 攻撃者は初期アクセスを得て、今や足場を維持しようとしています。”常時オン”のビーコンを探しているセキュリティツールを回避するため、
schtasks.exeユーティリティを使用して悪意のあるペイロードをスケジュールすることを決めます。BotHelper RATのパターンに従い、タスクを30分ごとにトリガーするように設定します。これにより、マルウェアはほとんどの時間”スリープ”しつつ、ネットワークトラフィックとプロセス監視の痕跡を減らし、C2サーバーへの接続が頻繁に再確立されるようにします。 -
回帰テストスクリプト:
# BotHelper RATの持続性メカニズムを模倣するシミュレーションスクリプト $taskName = "BotHelperUpdater" $payload = "C:WindowsSystem32calc.exe" # RATペイロードの安全なプロキシとしてcalc.exeを使用 Write-Host "[+] BotHelper RATの持続性をシミュレート中..." # 検出ロジックに一致するようにデザインされたコマンド:/create, /sc, および MINUTE=30 schtasks /create /tn "$taskName" /tr "$payload" /sc minute /mo 30 /f if ($LASTEXITCODE -eq 0) { Write-Host "[SUCCESS] タスクが作成されました。SIEMでの検出を確認してください。" } else { Write-Host "[FAILURE] タスクの作成に失敗しました。" } -
クリーンアップコマンド:
# シミュレートされた持続性タスクを削除 schtasks /delete /tn "BotHelperUpdater" /f Write-Host "[+] クリーンアップ完了。シミュレートされたタスクが削除されました。"