Certify.exe find /vulnerable
Certify.exe
是一款由 GhostPack 開發的工具,專門用於在 Active Directory 環境中分析和挖掘與 Active Directory Certificate Services (ADCS) 相關的漏洞與錯誤配置。這款工具特別針對可能被攻擊者利用的漏洞,幫助滲透測試人員和藍隊快速發現安全風險。當你執行以下命令時:
它的作用是尋找 Active Directory Certificate Services (ADCS) 中的 錯誤配置 或 潛在漏洞,並列出可被利用的場景。下面是對該命令的詳細解析與相關背景知識。
Certify.exe find /vulnerable
的作用
該命令的主要目的是搜索與 ADCS 有關的錯誤配置,這些錯誤配置可能會導致以下漏洞或攻擊場景:
- ESC1: Certificate Template Misconfigurations
- 檢查證書模板是否允許低權限用戶申請具有高權限的證書。
- 例如,某些證書模板可能允許普通用戶請求一個可以被用於 Kerberos 身份偽造 的證書。
- ESC2: Certificate Authority Permissions
- 檢查證書頒發機構(CA)的權限配置是否允許低權限用戶執行敏感操作(如管理 CA 配置或簽署證書)。
- ESC3: Web Enrollment Vulnerabilities
- 檢查是否啟用了 Web Enrollment 功能,並檢測是否存在錯誤配置。
- Web Enrollment 是一個功能,用於通過 HTTP/HTTPS 請求證書,如果配置不當,可能允許攻擊者利用。
- ESC4: NTLM Relay to ADCS
- 檢查是否可以對 ADCS 執行 NTLM 中繼攻擊,例如通過 HTTP 或 LDAP 中繼請求證書。
- ESC6: Misconfigured Certificate Templates
- 列出允許用戶請求證書並將其用於機器身份的模板(例如將證書用於 Kerberos 身份驗證)。
- 其他錯誤配置:
- 檢測證書中是否存在弱加密算法。
- 檢查是否存在多餘的憑據暴露風險。
命令執行後的輸出
執行
Certify.exe find /vulnerable
後,工具會返回一個結果列表,列出潛在的漏洞和錯誤配置。輸出可能包括以下內容:- Vulnerable Certificate Templates:
- 證書模板名稱(如
User
、Machine
等)。 - 是否允許用戶進行證書請求。
- 是否允許證書用於身份驗證。
- Misconfigured CA Permissions:
- 列出對 CA 擁有過多權限的對象(如「Everyone」、「Authenticated Users」)。
- 是否允許低權限用戶管理 CA 或簽署證書。
- Web Enrollment:
- 是否啟用了 Web Enrollment。
- 如果啟用,Web Enrollment 是否存在錯誤配置。
- NTLM Relay Risk:
- 列出可能被 NTLM 中繼攻擊利用的服務或配置。
- 其他建議:
- 提供與檢測到的錯誤配置相關的修復建議。
Certify 與 ADCS 攻擊的背景
ADCS 是 Active Directory 的一個組件,用於實現基於證書的身份驗證。如果配置不當,攻擊者可以利用 ADCS 執行以下攻擊:
- 權限提升:
- 攻擊者利用弱配置的證書模板,申請一個高權限的證書(如可以用於 Kerberos S4U2Self 攻擊的證書),然後冒充域管理員。
- 橫向移動:
- 攻擊者利用證書進行身份偽造,訪問其他域內系統。
- NTLM 中繼攻擊:
- 攻擊者通過 NTLM 中繼將憑據轉發至 ADCS,請求證書,並進一步利用該證書提升權限。
- 證書偽造:
- 攻擊者利用弱配置生成惡意證書,冒充其他用戶或服務身份。
修復建議
1. 檢查證書模板配置
- 確保敏感證書模板(如 KerberosAuthentication 或 DomainController)的權限僅限於高權限用戶。
- 禁止普通用戶或組對敏感模板的讀取或申請權限。
2. 檢查 CA 配置
- 限制對 CA 的管理權限。
- 確保只有域管理員或指定的高權限用戶可以簽署證書或修改 CA 配置。
3. 禁用不必要的功能
- 如果 Web Enrollment 功能不需要,禁用它。
- 如果啟用了 Web Enrollment,確保它僅允許指定的安全用戶組訪問。
4. 實施強身份驗證
- 啟用 Extended Protection for Authentication (EPA),防止 NTLM 中繼。
- 使用 Kerberos 代替 NTLM 驗證。
5. 定期審計和修補
- 使用工具(如
Certify.exe
或其他 ADCS 審計工具)定期檢查錯誤配置。
- 安裝最新的 Windows 安全更新,修補已知漏洞。
實際用途與攻擊場景
Certify.exe
是滲透測試人員和紅隊常用的工具,尤其是在 Active Directory 環境中檢測 ADCS 配置漏洞。以下是常見的攻擊場景:- 滲透測試場景:
- 滲透測試人員使用
Certify.exe find /vulnerable
找到錯誤配置的證書模板或 CA 配置。 - 利用這些漏洞申請一個高權限證書,並進一步執行 Kerberos 錯誤配置攻擊。
- 內部威脅場景:
- 內部攻擊者(如普通員工)利用錯誤配置的證書模板,提權到域管理員。
- 藍隊自我防禦:
- 藍隊使用
Certify.exe
審計 ADCS 配置,提前發現漏洞,減少風險。
總之,
Certify.exe find /vulnerable
是一個強大的工具,能夠快速發現 Active Directory Certificate Services 中的錯誤配置和漏洞,幫助攻擊者或防禦者識別暴露的風險。通過定期審計和改進配置,可以降低 ADCS 被濫用的可能性。