Black Hat USA 2025 | Unix Underworld: Tales from the Dark Side of z/OS
三句話摘要
兩位資深主機安全研究員示範如何利用 IBM ZOS 的 Unix 子系統對大型主機進行滲透測試,並說明你已有的 Linux 知識幾乎可以直接套用。 大型主機的攻擊面與 Linux 高度重疊,任何熟悉 Unix 滲透測試的研究者只需補充 APF 授權與 RACF 概念,即可在這個承載全球關鍵交易的平台上實施完整的攻擊鏈。 Unix 子系統是入門主機滲透的最佳切入點:ZOS Unix 提供完整的 shell、階層式檔案系統與 SSH 存取,攻擊者只需再額外學習少量主機專屬概念,即可沿用既有的 Linux 攻擊技術。
重點整理
重點- 1
Unix 子系統是入門主機滲透的最佳切入點:ZOS Unix 提供完整的 shell、階層式檔案系統與 SSH 存取,攻擊者只需再額外學習少量主機專屬概念,即可沿用既有的 Linux 攻擊技術。
- 2
APF 授權是主機上等效於 Linux SUID 的權限提升機制:透過 `extattr +a` 指令將程式標記為 APF 授權後,程式可切換至 Supervisor State、變更 Memory Key 至 Key 0,進而讀寫任意記憶體;關鍵是需具備 RACF profile `BPX.FILEATTR.APF` 的讀取權限。
- 3
ACE(ACEE)記憶體結構是特權偽冒的核心攻擊面:APF 授權程式可呼叫 RACF macro `RACROUTE` 為目標帳號建立新的 ACE 控制區塊,再修改自身地址空間中的指標,使 ESM 認為當前行程擁有目標帳號的所有特權,而外觀上仍顯示原始使用者。
- 4
Privileged Mount 攻擊允許將外部 APF 授權程式帶入目標系統執行:APF 授權位元儲存於 ZFS 資料集本身(非 RACF),只要有 privileged mount 權限(或 UID 0),即可掛載在攻擊者自己主機上預先建好的 ZFS,系統將忠實執行其中已授權的惡意程式。
實用技巧與重點
乾貨- 工具清單(全開源):
- `enum.rex`:Rex 語言寫成的主機枚舉腳本,直接從記憶體 control block 取資料(不觸發指令稽核日誌)
- `OMVS-enum`:基於 `linenum` 改寫的 C shell 腳本,枚舉 Unix 層 RACF 存取權限
- `zas-hog`:仿 trufflehog,掃描 Unix 檔案系統中的密碼、Token、金鑰
- `porcf`:egress 掃描工具(port scan),作者 Owen Henty
- `all.jcl`:一鍵上傳並執行所有腳本的 JCL 批次檔
- 上傳工具的技術障礙:主機預設 EBCDIC 編碼;SCP 以 binary mode 傳輸不做 ASCII→EBCDIC 轉換,需先本地轉碼 + 處理 code page 差異再上傳
- RACF 密碼儲存格式:
- 舊版:DES + MD5,John the Ripper / Hashcat 可達數百億次/秒暴力破解
- 新版:KDF AES-256 多次迭代,速度大幅下降
- 判斷方式:枚舉腳本可偵測 `KDF AES encryption` 是否啟用
- APF 授權提權流程:
- 確認有 `BPX.FILEATTR.APF` RACF profile 讀取權
- 撰寫組語程式,使用 `MODESET` macro 切換 Supervisor State
- `as` 組譯 → `ld` 連結 → `extattr +a` APF 授權
- 呼叫 `RACROUTE` 建立目標帳號 ACE → 修改地址空間指標 → 取得目標特權
- Unix 檔案系統稽核指令:
- `ls -E`:顯示延伸屬性,`a` 欄位表示 APF 授權
- `ls -W`:顯示稽核設定(`all`=成功失敗均記錄,`fail`=僅記錄失敗)
- `chaudit` 指令可設定個別檔案的稽核等級
- 高風險 RACF Profile:`BPX.SUPERUSER`(su 免密碼)、`BPX.FILEATTR.APF`(APF 授權)、`BPX.FILEATTR.PROGCTL`(程式控制位元)
- 參考資源:Jake Leel 在 Defcon 的主機 Buffer Overflow 演講;Phil Young + Jake 在 GitHub 公開的 Buffer Overflow Workshop;Moshix YouTube 頻道與 Discord
結論
結論“大型主機的攻擊面與 Linux 高度重疊,任何熟悉 Unix 滲透測試的研究者只需補充 APF 授權與 RACF 概念,即可在這個承載全球關鍵交易的平台上實施完整的攻擊鏈。”
完整解析
詳細大型主機不是過去式的骨董——全球每天的銀行交易、航班調度、醫療記錄、線上購物,背後幾乎都跑在 IBM ZOS 主機上。Chad Rickensrude(Broadcom 軟體安全研究員)與 Philip Young(Net Spy 主機滲透測試主管)在這場演講中指出,「主機無法被駭」是一個已逐漸被打破的迷思,而大多數資安研究者已具備入門所需的九成知識,缺的只是少量主機專屬概念。
進入主機最直覺的方式是透過 ZOS 的 Unix 子系統(Unix System Services / ZOS Unix)。這個子系統提供完整的 shell 環境、以 `/` 為根目錄的階層式檔案系統、標準的三位元組 rwx 權限模型,以及 SSH 存取入口——攻擊者熟悉 Linux 就足以開始操作。枚舉階段使用的工具(`enum.rex`、`OMVS-enum`、`zas-hog`)全部開源,並且刻意從記憶體 control block 直接讀取資訊,繞過會產生稽核日誌的系統指令,讓偵測難度大幅提升。枚舉結果常見的發現包括:RACF 資料庫使用舊版 DES 加密、敏感設定檔以 `chmod 777` 存放、以及用戶擁有危險 RACF profile 存取權。
主機上最強力的提權路徑圍繞著 APF 授權展開。ZOS 採用 Z 架構 CPU,區分「Problem State」(一般用戶狀態)與「Supervisor State」(特權狀態),後者才能執行變更 Memory Key 的指令。Key 0 具有讀寫任意記憶體的能力,而 APF 授權正是讓程式合法進入 Supervisor State 的機制。在 Unix 環境中,只需對目標程式執行 `extattr +a`(需有對應 RACF profile 的讀取權),即可將其標記為 APF 授權。接下來的攻擊核心是偽冒目標帳號的 ACE(ACEE)記憶體控制區塊:APF 授權程式呼叫 `RACROUTE` macro,以目標帳號(如擁有 special/operations 屬性的管理員)為參數建立新 ACE,再修改自身地址空間中的指標,ESM 檢查權限時便會讀到偽造的控制區塊,從而授予攻擊者目標帳號的完整特權。另一條路徑是 Privileged Mount 攻擊:APF 授權位元儲存於 ZFS 資料集本身,攻擊者可在自己的實驗室主機上預先建立帶有 APF 授權程式的 ZFS 映像,帶到目標系統後掛載,系統即會忠實執行其中程式。
值得注意的是,在主機上 `su` 至 root 的效力與 Linux 不同——它只改變 Unix 層的 UID,RACF 仍認定原始帳號,真正的 game over 是透過 SSH 金鑰植入或 ACE 偽冒,取得擁有 RACF special 與 operations 屬性的帳號。此類帳號在 RACF 體系中幾乎無限制,且所有操作日誌都會記錄在目標帳號名下。演講最後強調防禦要點:嚴格審查 Unix 檔案權限(尤其是 world-writable)、限制危險 RACF profile 的持有者、監控 SMF 日誌中的 su、APF 授權行為及大量 TCP 對外連線,並對關鍵檔案啟用全稽核模式(`chaudit all`)。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

