ESC15 (EKUwu)/CVE-2024–49019:針對 AD CS 之 EKU 憑證範本漏洞

ESC15 (EKUwu)/CVE-2024–49019:針對 AD CS 之 EKU 憑證範本漏洞

2024 年 9 月底,TrustedSec 的研究人員 Justin Bollinger 發現了針對 AD CS 中 Extended/ Enhanced Key Usage (EKU) 憑證範本的漏洞,並將此攻擊命名為 ESC15 (EKUwu),10 月 8 日於網路發布了可直接利用的 PoC。ESC15 弱點允許使用者利用預設憑證範本提權為網域管理員,或以任意使用者身分(包含高權限使用者)申請憑證。2024 年 11 月 12日,微軟將此漏洞編號為 CVE-2024–49019。

ESC15 漏洞的特點包含:
  1. 相比其他的 ESCx (ESC1 — ESC14) 等,ESC15 漏洞實務上較容易成立,尤其是在設置內網 HTTPS 憑證時很容易發生此錯誤,也有許多讓預設的憑證範本吻合 ESC15 條件的示範案例。
  2. Supply EKU in CSR 此特殊功能並沒有被微軟文件化,在設置相關憑證範本時容易被忽略,導致 ESC15 漏洞被觸發。

AD CS 與 EKU 簡介

AD CS 為微軟提供的公開金鑰基礎建設服務 (Public Key Infrastructure, PKI),就像網際網路資訊服務 (Internet Information Services, IIS) 一樣可以選擇性地安裝。

另外,顧名思義,AD CS 名稱中既然有 AD,可以想見除了 PKI 功能以外,還與 AD 功能高度相關,常見應用情境包含 AD 身分認證綁定憑證,讓網域使用者或電腦可以透過申請憑證後進行認證。其中,EKU 專門標示核發的憑證用途,如程式碼簽章、身分驗證等。

技術分析

這次攻擊的成因較為特殊,當憑證範本的架構版本 (schema version) 為 1 時,若憑證範本帶有「在請求中提供」 (Supply in the request),在憑證申請階段 (CSR),系統就會允許使用者指定任何的 msPKI-Certificate-Application-Policy。這意味著,只要使用者能註冊符合此漏洞的憑證,便不需要設定其他特別的憑證範本功能,就能成功提權為網域管理員。

哪個 EKU 會在憑證範本上生效?

憑證範本中有兩個屬性和 EKU 有關,分別是 pKIExtendedKeyUsagemsPKI-Certificate-Application-Policy,憑證範本會根據這兩個屬性的值來決定最後生效的 EKU 是什麼。

生效的規則須符合下圖一:

EKU 生效規則
圖1 EKU 生效規則

當架構版本為 1/2/3/4 時,「不考慮」身份驗證 EKU 情況下會生效的是 msPKI-Certificate-Application-Policy。身份驗證 EKU 僅影響架構版本為 1 者,條件較多,暫不贅述。

正常情況下,當憑證範本架構版本為 1 時、該屬性通常是空的,那麼架構版本為 1 的憑證範本在什麼情況下該屬性會有值呢?

沒被文件化 (undocumented) 的特殊功能 (feature)

原本當憑證帶有 「在請求中提供」時,只能在憑證請求階段的 CSR 替換 SAN(圖2),但在架構版本為 1 時,卻增加了能在 CSR 提供 msPKI-Certificate-Application-Policy 的功能(圖3),這是微軟沒有記錄到的特殊狀態。

以圖3 WebServer 預設的憑證範本為例,其 pKIExtendedKeyUsage 也就是憑證範本的用途是伺服器驗證 (Server Authentication),但由於此範本符合上述特殊功能的條件,因此如圖中所示、在 CSR 階段能夠於 msPKI-Certificate-Application-Policy 附帶上客戶端驗證 (Client Authentication) 或註冊代理 (Enrollment Aget),並依照 EKU 生效規則導致這張原本主要用來伺服器驗證 (Server Authentication) 的憑證可以執行客戶端驗證 (Client Authentication) 或註冊代理 (Enrollment Agent) 等非預期行為。

原先預期「在請求中提供」行為流程圖
圖2 原先預期「在請求中提供」行為

在架構版本為 1 時的「在請求中提供」行為流程圖
圖3 在架構版本為 1 時的「在請求中提供」行為

影響

TrustedSec 資安研究人員 Justin Bollinger 揭發此漏洞後,更發現由於架構版本為 1 的憑證範本無法任意修改(除非以 ADSI Edit 一類的工具修改),因此若管理人員誤將符合條件之憑證範本允許低權限的使用者註冊,將使該使用者濫用該憑證範本進行如:程式碼簽章、網域身份驗證 (ESC1)、註冊代理 (ESC3) 等等行為。

因此,我們認為可將 ESC15 (EKUwu) 視為預設場域中隱含 ESC2 危害的未爆彈,只要不小心將該憑證範本允許低權限使用者註冊,就可能為場域帶來嚴重的危害。

緩解措施

以下憑證範本皆存在預設場域中、且帶有「在請求中提供」,我們建議檢查是否僅允許高權限使用者註冊上述提及之憑證範本:

  • ExchangeUserSignature
  • exchangeUser
  • CEPEncryption
  • OfflineRouter
  • IPSECIntermediateOffline
  • SubCA
  • CA
  • WebServer
  • EnrollmentAgentOffline

除此之外,也建議停止使用架構版本 (schema version) 為 1 的憑證範本。若需使用該憑證範本,建議複製該憑證範本,並確保憑證範本的版本不為 1。

如果您使用奧義智慧 XCockpit Identity ,奧義智慧已於 10 月 09 日進行更新,現在可以偵測到 ESC15 的設定並分析潛在的攻擊路徑(圖4)。

XCockpit Identity 平台針對 ESC15 攻擊之分析
圖4 XCockpit Identity 平台針對 ESC15 攻擊之分析

參考資料

Writer: Jimmy Su

關於 CyCraft

奧義智慧科技(CyCraft Technology)是一家專注於 AI 自動化技術的資安科技公司,成立於2017年。總部設於台灣,在日本和新加坡均設有子公司。為亞太地區的政府機關、警政國防、銀行和高科技製造產業提供專業資安服務。獲得華威國際集團(The CID Group)和淡馬錫控股旗下蘭亭投資(Pavilion Capital)的強力支持,並獲得國際頂尖研究機構 Gartner、IDC、Frost & Sullivan 的多項認可,以及海內外大獎的多次肯定。同時也是多個跨國資安組織和台灣資安社群的成員和合作夥伴,長年致力於資安產業的發展。

訂閱奧義智慧電子報

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
點擊此按鈕,即表示您同意奧義智慧的隱私權政策,並同意奧義智慧使用您所提供的資訊並寄送資訊給您。您隨時可以取消訂閱。