Suzu macOS Playground

M03 · CTF

CDHash 雪崩與 entitlement 風險

在雪崩面板改 entitlements XML 任一字元,預測哪個 special slot 失配、CDHash 是否全變; 再讀 entitlement taxonomy,指出哪些能力屬於「放寬保護」的高風險面。

← 先讀 M03 章節

程式碼簽章實驗室

模型邊界:CDHash 用瀏覽器 crypto.subtle 真算 SHA-256(雪崩無法造假,與 codesign 的 CandidateCDHashFull 一致)。 但 CMS 簽章鏈僅標 ad-hoc/有 CMS,不偽造 Apple 私鑰簽章驗證(DESIGN.md §5.6 / §10)。上傳檔案不離開瀏覽器。

過關目標

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

提示

卡住時

entitlements(XML) 落在 special slot −5。改它 → slot −5 的 SHA-256 變 → CodeDirectory 變 → CDHash 全變。

走錯方向時

對 CMS 簽章的 binary,cdhash 一變即簽章失配、AMFI 拒載。ad-hoc 沒有 CMS,但雪崩原理相同。

想更深入

get-task-allow / disable-library-validation / allow-dyld-environment-variables 都會「放寬」保護,是研究時的紅旗。

相關指令

codesign
← 回 CTF 場