Suzu macOS Playground

M04 · CTF

評估流程與 App Translocation

在評估流程中切換簽章/公證/stapling/位置,找出一支「已簽章、未公證」的 App 會怎樣, 以及被 quarantine 的 App 從 Downloads 直接執行時為何會被 translocate。

← 先讀 M04 章節

Gatekeeper 評估實驗室

① 下載通道

瀏覽器啟用 LSFileQuarantineEnabled,下載即附 com.apple.quarantine。

② com.apple.quarantine 解碼
flags
0x0081 · 未評估
時間
2020-04-05T17:58:24.000Z
agent
Safari
UUID
A1B2C3D4-0000-4000-8000-000000000001
旗標位
0x0001 LaunchServices 內部旗標(下載來源/類型相關)。0x0080 LaunchServices 內部旗標(常見於瀏覽器下載)。

UUID 是 LaunchServices QuarantineEventsV2 資料庫的鍵,存原始下載 URL/來源。

③ 情境(首次執行)

quarantine:有(由①通道決定)

判定擋下
  1. quarantine有 com.apple.quarantine 且為首次執行 → 觸發 Gatekeeper 評估。
  2. code signing簽章有效。
  3. notarization未經 Apple 公證(notarize)→「Apple 無法驗證其不含惡意軟體」。

被 Gatekeeper 擋下。

XProtect(簽章式惡意程式掃描,yara)在執行時比對;XProtect Remediator 週期掃描。 模型邊界:本流程為教學決策模型,非真實 syspolicyd 逐位元;quarantine flags 部分位元為 LaunchServices 內部、標為推測。驗證於 macOS 26.3.1(見章末真機卡)。

過關目標

解答是「操作模擬器到對的狀態 + 能說出原理」,非提交 flag 字串。互動式自動評分為 roadmap 項目;目前以自我檢核完成。

提示

卡住時

簽章有效但未公證 → 「Apple 無法驗證其不含惡意軟體」,被擋。

走錯方向時

stapled 票根可離線驗;只有 online 票根時,離線就驗不了。

想更深入

被 quarantine 的 App 從非標準位置執行且未搬移 → 從唯讀隨機路徑 translocate,瓦解相對路徑 dylib 載入。

相關指令

spctlstaplercodesign
← 回 CTF 場