KimsukyのCHMトレードクラフトの内幕: マルチステージの実行と選択的ペイロードデリバリー
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Kimsukyは、悪意のあるコンパイルされたHTML (.chm) ファイルを初期の誘因として使用し、多段階の感染チェーンを引き起こします。この操作は、PowerShellや certutil、および wscript などのネイティブなWindowsユーティリティを悪用してシステムをプロファイルし、タスクスケジューリングを通じて永続性を確立し、収集したデータを持ち出します。さらに、攻撃者は選択的なペイロード配信を適用し、特定の環境または動作条件が満たされた場合にのみ最終的なオペレーショナルコンポーネントを提供します。
調査
研究者は、疑わしいCHMサンプルを分析し、複数のVBScriptおよびPowerShellステージからなる実行チェーンを再構築しました。ネットワーク要求を再生し、異なるプロキシロケーションからテストすることで、研究者は最終ペイロードがサンドボックス環境に配信されない選択的応答モデルを発見しました。この調査では、faviconの類似性やWebサーバーのフィンガープリンティングを通じて、Kimsukyの既知の活動にインフラストラクチャが関連付けられました。
緩和策
組織は、特に hh.exe or wscript.exe がPowerShellや cmd.exeを起動するケースにおいて、疑わしいプロセスの系統を監視すべきです。インターネットキャッシュのようなユーザー書き込み可能な場所からのスクリプトコンテンツの実行を制限することで、永続性をブロックするのに役立ちます。Internet ExplorerやMicrosoft Edgeのレジストリ設定の無許可の変更を監視することも、ホスト改ざんの検出を向上させることができます。
対応
この活動が検出された場合、追加のコマンドとコントロールのトラフィックを防ぐために直ちに影響を受けたエンドポイントを隔離してください。プロセスメモリに読み込まれたファイルレスのPowerShellペイロードを特定するために、メモリフォレンジックを実行してください。 Edge Updater などの疑わしいエントリについて、予定されているタスクを確認し、欺瞞的な %USERPROFILE%Links ディレクトリを調べて .dat or .ini ファイルを探してください。
攻撃フロー
検出
Invoke-RestMethodの疑わしい使用 (powershell経由)
表示
アンチウイルスまたはファイアウォールソフトウェアの列挙の可能性 (process_creation経由)
表示
システムの列挙の可能性 (cmdline経由)
表示
LOLBAS WScript / CScript (process_creation経由)
表示
Certutilを使用したデータのエンコーディングおよび証明書操作 (cmdline経由)
表示
certutil.exeによる疑わしいファイルデコード [Windows Sysmon]
表示
CHMファイルを介したKimsuky PowerShellの悪意のある活動 [Windows PowerShell]
表示
Kimsuky CHMファイル実行分析 [Windows Process Creation]
表示
シミュレーション実行
前提条件:テレメトリー & ベースラインプリフライトチェックに合格している必要があります。
根拠:このセクションでは、検出ルールをトリガーするように設計された敵対者の技術(TTP)の正確な実行を詳細に記述します。コマンドと記述はTTPsと直接関連しており、検出ロジックで期待される正確なテレメトリを生成することを目的としている必要があります。抽象的または無関係な例を使用すると誤診になります。
-
攻撃の概要とコマンド: 攻撃者は、武器化された
.chmファイルを介して初期実行を達成しようとしています。ユーザーがファイルを開くと、コンパイルされたHTMLヘルプファイルが埋め込まれたスクリプトを使用してhh.exeを呼び出します。標準検出を回避するため、攻撃者はhh.exeを使用してPowerShellを起動し、有効なWindowsヘルププロセスの下でシェルの実行を効果的にマスクします。隠れたPowerShellコマンドを実行して足場を確立し、2次ステージペイロードを引き出すことを目指しています。 -
回帰テストスクリプト:
# Kimsuky CHMからPowerShellへの実行チェーンのシミュレーション # このスクリプトは、ルールによって検出されたhh.exeがPowerShellを生成する行動をシミュレートします。 Write-Host "[+] Kimsuky CHMのシミュレーションを開始しています..." -ForegroundColor Cyan # 1. hh.exeがPowerShellを生成することをシミュレートします(selection_hhに一致します) Write-Host "[+] ルールをトリガー:hh.exeがPowerShellを生成中..." -ForegroundColor Yellow Start-Process "hh.exe" -ArgumentList "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command Write-Output 'Simulation Success'" # 2. wscript.exeがVBScriptを実行することをシミュレートします(selection_wscriptに一致します) Write-Host "[+] ルールをトリガー:wscript.exeでVBScriptフラグ..." -ForegroundColor Yellow $tempVBS = "$env:TEMPtest_sim.vbs" "WScript.Echo ""Simulation Success""" | Out-File -FilePath $tempVBS -Encoding ascii Start-Process "wscript.exe" -ArgumentList "/e:vbscript $tempVBS" # 3. 隠しウィンドウスタイルでcmd.exeをシミュレートします(selection_cmdに一致します) Write-Host "[+] ルールをトリガー:cmd.exeと隠しウィンドウスタイル..." -ForegroundColor Yellow Start-Process "cmd.exe" -ArgumentList "/c PowerShell -WindowStyle Hidden -Command Write-Output 'Simulation Success'" Write-Host "[+] シミュレーションコマンドが送信されました。" -ForegroundColor Green -
クリーンアップコマンド:
# シミュレーション中に作成された一時ファイルをクリーンアップする Remove-Item -Path "$env:TEMPtest_sim.vbs" -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。" -ForegroundColor Cyan