KB5005413:防範 NTLM 中繼對 Active Directory 憑證服務 (AD CS)

套用到
Windows Server 2008 Windows Server 2008 R2 Windows Server 2016 Windows Server 2019 Windows Server 2012 R2 Windows Server 2012

摘要

Microsoft 已知 PetitPotam 可能被用來攻擊 Windows 網域控制器或其他 Windows 伺服器。 PetitPotam 是典型的 NTLM 中繼攻擊,Microsoft 先前已記錄此類攻擊,並提供了多種緩解措施以保護客戶。 例如: Microsoft 安全諮詢974926。

為防止啟用 NTLM 網路遭 NTLM 中繼攻擊,網域管理員必須確保允許 NTLM 認證的服務使用如 EPA) (Extended Protection for Authentication 或 SMB 簽署等簽章功能。 PetitPotam 利用那些 Active Directory 憑證服務 (AD CS) 未設定 NTLM 中繼攻擊防護的伺服器。 以下的緩解措施說明如何保護客戶的 AD CS 伺服器免受此類攻擊。

如果您使用 Active Directory 憑證服務 (AD CS) ,並搭配以下任一服務,您就有可能受到此攻擊:

  • 憑證授權中心網路註冊
  • 憑證註冊網路服務

緩和措施

如果您的環境可能受到影響,我們建議採取以下緩解措施:

主要緩解措施

我們建議啟用 EPA 並關閉 AD CS 伺服器上的 HTTP。 打開 Internet Information Services (IIS) 管理器,並執行以下操作:

  1. 啟用 EPA 以啟用證書授權網路 註冊,必要 為更安全且推薦的選項:
    憑證授權中心網路註冊對話框

  2. 啟用 EPA 以啟用憑證註冊網路服務, 必要 為更安全且推薦的選項:

    憑證註冊網路服務對話框

    啟用 EPA 後,CES 角色在 <%windir%>\systemdata\CES\<CA 名稱>_CES_Kerberos\web.config 建立的 Web.config 檔案也應更新,新增 <extendedProtectionPolicy> set ,值為 WhenSupported 或 Always ,視 IIS UI 上方選擇的 Extended Protection 選項而定。

    注意

    當 UI 設為「必需」時,會使用「永遠」設定,這是推薦且最安全的選項。

    欲了解更多關於擴展保護政策可用選項的資訊,請參見 <basicHttpBinding> 的傳輸<>。 最可能使用的設定如下:

    <binding name="TransportWithHeaderClientAuth">
         <security mode="Transport">
             <transport clientCredentialType="Windows">
             <extendedProtectionPolicy policyEnforcement="Always" />
             </transport>
             <message clientCredentialType="None" establishSecurityContext="false" negotiateServiceCredential="false" />
         </security>
         <readerQuotas maxStringContentLength="131072" />
    </binding>
    
    
  3. 啟用 「要求 SSL」,這只會啟用 HTTPS 連線。

    HTTP

重要

完成上述步驟後,你需要重新啟動 IIS 來載入變更。 要重新啟動 IIS,請打開一個升高的命令提示字元視窗,輸入以下指令,然後按下 ENTER:

iisreset /restart

注意
:此指令會停止所有正在執行的 IIS 服務,然後重新啟動它們。

額外緩解措施

除了主要的緩解措施外,我們建議您盡可能關閉 NTLM 認證。 以下緩解措施依安全性從高到低依序列出:

要做到這點,請開啟 IIS Manager UI,將 Windows 驗證設為 Negotiate:Kerberos:

IIS 管理員介面對話框檢視

IIS Manager UI 的替代檢視

重要

完成上述步驟後,你需要重新啟動 IIS 來載入變更。 要重新啟動 IIS,請打開一個升高的命令提示字元視窗,輸入以下指令,然後按下 ENTER:

iisreset /restart

注意
:此指令會停止所有正在執行的 IIS 服務,然後重新啟動它們。

欲了解更多資訊,請參閱 Microsoft安全諮詢ADV210003