摘要
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) 管理器,並執行以下操作:
啟用 EPA 以啟用證書授權網路 註冊,必要 為更安全且推薦的選項:
啟用 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>啟用 「要求 SSL」,這只會啟用 HTTPS 連線。
重要
完成上述步驟後,你需要重新啟動 IIS 來載入變更。 要重新啟動 IIS,請打開一個升高的命令提示字元視窗,輸入以下指令,然後按下 ENTER:
iisreset /restart
注意 :此指令會停止所有正在執行的 IIS 服務,然後重新啟動它們。
額外緩解措施
除了主要的緩解措施外,我們建議您盡可能關閉 NTLM 認證。 以下緩解措施依安全性從高到低依序列出:
- 在你的 Windows 網域控制器上關閉 NTLM 認證。 可依照 網路安全文件完成:限制 NTLM:此領域中的 NTLM 認證。
- 使用群組政策網路安全,在你網域內的任何 AD CS 伺服器上停用 NTLM:限制 NTLM:進入的 NTLM 流量。 要設定此 GPO,打開群組原則,進入電腦設定 ->Windows 設定 ->安全設定 ->本地政策 ->安全選項,並設定網路安全:限制 NTLM:進入的 NTLM 流量為拒絕所有帳號或拒絕所有網域帳號。 如有需要,您可以使用設定「 Network security: Restrict NTLM: Add server exceptions in this domain」來新增例外。
- 在您的網域中執行「憑證授權網路註冊」或「憑證註冊網路服務」服務的 AD CS 伺服器上,請停用 (IIS) 的網際網路資訊服務 NTLM。
要做到這點,請開啟 IIS Manager UI,將 Windows 驗證設為 Negotiate:Kerberos:
重要
完成上述步驟後,你需要重新啟動 IIS 來載入變更。 要重新啟動 IIS,請打開一個升高的命令提示字元視窗,輸入以下指令,然後按下 ENTER:
iisreset /restart
注意 :此指令會停止所有正在執行的 IIS 服務,然後重新啟動它們。
欲了解更多資訊,請參閱 Microsoft安全諮詢ADV210003