Black Hat USA 2025 | Booting into Breaches: Hunting Windows SecureBoot's Remote Attack Surfaces
三句話摘要
資安研究員在 Windows 引導載入程式中發現近 60 項可遠端利用的安全功能繞過漏洞,並揭示 PXE 網路啟動架構的系統性風險。 Windows 引導載入程式中的記憶體損毀漏洞可透過 PXE 遠端利用,且固定載入基址讓 ASLR 失效,使得任何依賴 PXE 啟動或 WDS 環境的系統在對手進入同網段後都面臨真實的安全啟動繞過風險。 PXE 網路啟動大幅擴展攻擊面:傳統研究聚焦於需要本機或實體存取的攻擊,而 PXE 讓未認證的遠端攻擊者能直接觸及引導載入程式,使過去認為不可利用的漏洞變成可遠端觸發的嚴重問題。
重點整理
重點- 1
PXE 網路啟動大幅擴展攻擊面:傳統研究聚焦於需要本機或實體存取的攻擊,而 PXE 讓未認證的遠端攻擊者能直接觸及引導載入程式,使過去認為不可利用的漏洞變成可遠端觸發的嚴重問題。
- 2
引導載入程式的堆積管理不同於一般 Windows 使用者空間:引導載入程式沒有 pitch 堆積,OOB 存取不會立即崩潰,而是在下次垃圾回收或使用損毀資料時才觸發,這使得漏洞成因難以追蹤但也更易被利用。
- 3
名稱含 `sanitize` 或 `fixup` 的函式是高價值目標:研究者在 `sanitize` 相關函式中找到 6 個 RCE,在 `fixup` 相關函式中找到 5 個 RCE,顯示防禦性命名的函式本身往往是邏輯最複雜、最容易出錯的地方。
- 4
攻擊面不止於引導載入程式本身:透過 WDS 伺服器投遞含惡意設定檔的 WIM 映像,可在 Windows 內核初始化階段觸發漏洞,且 MSRC 起初以「受害者資料未洩露」為由關閉案件,顯示安全責任歸屬在架構邊界上存在盲點。
實用技巧與重點
乾貨- 向 MSRC 提交 155 份報告,涵蓋 Windows 引導載入程式漏洞
- 代碼審計發現 35 個,模糊測試發現 20 個
- 攻擊面分布:BCD 暫存器處理 25 起、檔案系統 16 起、網路協定 6 起、Windows 核心 5 起
- BCD 元素驗證函式(約 100 行)中發現 6 個漏洞:2 堆疊溢出、1 任意記憶體寫入、3 堆積 OOB 寫入
- `sanitize` 函式:6 個 RCE;`fixup` 函式:5 個 RCE
- 遞迴調用觸發堆疊越界需在 BCD 中塞入 415 個裝置物件(標準記憶體模型)或 226 個(Hyper-V 模型)
- 每個 Microsoft 引導載入程式具有固定載入基址,可直接執行 ROP 攻擊,無需 ASLR 繞過
- 模糊測試速度:BCD 檔案 >3000 次/秒,檔案系統較慢(輸入樣本大、程式碼複雜)
- 工具:AFL++ MIX 模式、Hyper-V(唯一可在不入侵 VM 的情況下產生 mini dump)、Virtual KD Redux、DISM++(修改 WIM 映像無需寫一行程式碼)
- PCA 2011 預計 2026 年才停用;PCA 2023 於 Windows build 26100 引入
- Windows 222(Server 2022)及更早版本、Windows 11 23H2 在未切換至 PCA 2023 的情況下仍受 5 個漏洞影響
結論
結論“Windows 引導載入程式中的記憶體損毀漏洞可透過 PXE 遠端利用,且固定載入基址讓 ASLR 失效,使得任何依賴 PXE 啟動或 WDS 環境的系統在對手進入同網段後都面臨真實的安全啟動繞過風險。”
完整解析
詳細Windows 安全啟動(Secure Boot)的設計目的是從硬體到作業系統建立完整的信任鏈,透過數位簽章確保只有受信任的程式碼能執行。然而在 PC 平台上,由於硬體廠商眾多、標準落地困難,安全啟動的實作與手機平台相比仍有相當差距。來自 CyberKun 的研究員 Andrew Yang 在 Black Hat 的演講中揭示,這條信任鏈中最關鍵的一節——Windows 引導載入程式——存在大量可遠端利用的記憶體損毀漏洞,而驅動此研究的核心因素是 PXE(Preboot Execution Environment)這個常見的網路啟動協定。
過去十年間,關於 Windows 安全啟動的公開研究僅有八項,且幾乎都需要本機或實體存取。Andrew 的方法論上最大的差異在於:他透過 PXE 網路啟動環境進行攻擊,使原本被認為「門檻高」的引導載入程式漏洞變成可由同網段未認證攻擊者觸發的遠端漏洞。他向 MSRC 共提交 155 份報告,發現了 BCD 暫存器處理、檔案系統解析、網路協定實作三大攻擊面,以及部分 Windows 核心層級的漏洞。研究過程中他發展出一套「找到崩潰 → 熱補丁修復 → 繼續模糊測試」的去重方法,有效避免同一根本原因被重複提交。值得特別注意的是,引導載入程式的堆積管理沒有 pitch 堆積機制,OOB 存取不會立即崩潰,而是在後續垃圾回收時才顯現,使得漏洞定位更具挑戰性,也讓某些漏洞在打補丁後仍因設計層級修改不完整而持續存在。
在具體案例上,研究者發現 BCD 元素驗證函式(約百行程式碼)中藏有六個漏洞,包含可覆蓋返回位址的堆疊溢出,以及遞迴調用觸發的堆疊越界——後者在 UEFI 環境中特別危險,因為 UEFI 規範並不保證堆疊記憶體之前的區域不可讀,遞迴可直接覆蓋 UEFI 環境的關鍵變數。此外,每個 Microsoft 引導載入程式都以固定基址載入,攻擊者可直接執行 ROP 攻擊,完全繞過 ASLR,無需資訊洩漏漏洞作為前置條件。檔案系統方面,他透過 AFL++ 模糊測試在數天內找到 16 個漏洞,強調在正式模糊測試前必須先對已知崩潰進行熱補丁,否則相同根本原因會淹沒整個崩潰清單。
在引導載入程式之外,Andrew 進一步揭示了一條透過 WDS(Windows Deployment Services)投遞含惡意設定檔 WIM 映像的攻擊路徑,只需使用 DISM++ 工具替換安裝程式,即可在受害者機器的 Windows 核心初始化階段啟用易受攻擊的非預設元件,實現網路到核心模式的攻擊鏈。他也在 Windows 核心早期初始化階段的 ini 檔處理邏輯中,發現了職業生涯中第一個核心記憶體損毀漏洞。整體而言,這項研究指出 PXE 架構將原本不應暴露的複雜核心與使用者空間服務程式碼,直接開放給未認證的遠端攻擊者,而安全責任在引導載入程式團隊與作業系統安全團隊之間存在模糊地帶,是亟需從架構層面解決的系統性問題。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

