16. 最新AD/基础设施攻击
16.1 ADCS攻击演进(ESC1-ESC16完整攻击思路)
ADCS(Active Directory Certificate Services)是域内最强大的提权路径之一。从ESC1到ESC16,每个编号代表一种独立的攻击面。
攻击分类全景:
| ESC# | 类型 | 核心原理 | 利用思路 |
|---|---|---|---|
| ESC1 | 模板配置错误 | 模板允许请求者自定义SAN(Subject Alternative Name) | 低权限用户注册证书时指定SAN=域管 → 用该证书认证 → 获取域管TGT |
| ESC2 | EKU过宽 | 模板Any Purpose EKU → 可用于任何目的 | 类似ESC1但不需要Client Authentication EKU |
| ESC3 | 注册代理 | 存在注册代理EKU的模板 → 可代表其他用户注册 | 两阶段: 先注册代理证书 → 再用代理证书为目标用户注册认证证书 |
| ESC4 | 模板ACL可控 | 对模板有写权限 | 修改模板配置→使其变成ESC1 → 然后按ESC1利用 |
| ESC5 | CA ACL可控 | 对CA对象有控制权 | 直接控制CA → 可批准任何请求/修改任何模板 |
| ESC6 | CA级别SAN | CA启用EDITF_ATTRIBUTESUBJECTALTNAME2 | 任何模板都可以指定SAN → 直接伪造域管证书(2022.05补丁后需配合ESC10) |
| ESC7 | CA管理权限 | ManageCA/ManageCertificates权限 | 启用已禁用模板/任命自己为Certificate Officer/直接批准pending请求 |
| ESC8 | NTLM Relay | Web Enrollment启用 | PetitPotam强制DC认证 → Relay到AD CS HTTP端点 → 以DC身份注册证书 → DC Sync |
| ESC9 | 无安全扩展 | 模板不包含szOID_NTDS_CA_SECURITY_EXT(SID安全扩展) |
配合GenericWrite权限: 修改目标用户UPN为域管UPN → 注册证书 → 恢复原UPN → 用证书认证为域管 |
| ESC10 | 弱证书映射 | DC的StrongCertificateBindingEnforcement=0/1 |
类似ESC9但利用DC级别配置 → Schannel UPN映射无需SID验证。⚠2025.09后Full Enforcement成唯一选项 |
| ESC11 | RPC Relay | ICPR端点未强制加密(IF_ENFORCEENCRYPTICERTREQUEST未设置) |
类似ESC8但目标是RPC端点 → NTLM Relay到RPC → 以被Relay的身份注册证书 |
| ESC12 | 外部密钥 | CA私钥存储在外部设备(YubiHSM)且注册表中有明文认证密码 | 获取CA服务器Local Admin → 从注册表提取YubiHSM密码 → 离线伪造任意证书 |
| ESC13 | OID组链接 | 证书模板的发布策略(Issuance Policy)OID链接到AD组 | 注册带特定OID策略的证书 → 自动获得链接AD组的成员权限(可能就是Domain Admins) |
| ESC14 | altSecurityIdentities | 用户/计算机账户的显式证书映射配置弱 | 修改目标的altSecurityIdentities指向攻击者控制的证书 → 冒充目标 |
| ESC15 | EKUwu CVE-2024-49019 | V1模板的CSR中msPKI-Application-Policy可覆盖模板EKU |
内置WebServer模板是V1模板 → 请求时覆盖为Client Authentication EKU → 用Web Server证书做域认证。每个ADCS安装都有WebServer模板 |
| ESC16 | 全局安全扩展移除 | CA级别禁用安全扩展 | 移除全局SID嵌入 → 所有证书都不含SID → 回退到弱UPN映射 |
实战攻击决策树:
1. 有网络位置(未认证)? → ESC8(HTTP Relay) / ESC11(RPC Relay)
2. 有域用户权限? → 检查可注册模板(ESC1/ESC2/ESC3)
3. 有模板写权限? → ESC4(改模板为ESC1)
4. 有GenericWrite? → ESC9(UPN篡改)
5. 有CA服务器Local Admin? → ESC5/ESC12(提取私钥)
6. 有ManageCA? → ESC7(启用模板+任命Officer)
工具: Certify(C#) / Certipy(Python,推荐) / ADCSKiller(自动化) 检测: BloodHound(ADCS边支持ESC1-ESC10)
重要时间线:
- 2025.02: Microsoft Full Enforcement默认开启(StrongCertificateBindingEnforcement=2)
- 2025.09: Compatibility Mode永久移除,Full Enforcement成唯一选项 → ESC9/ESC10窗口关闭
- 2024.11: ESC15(CVE-2024-49019)补丁发布 → V1模板Application Policy覆盖被修复
16.2 Shadow Credentials攻击
- 利用
msDS-KeyCredentialLink属性添加自控密钥→PKINIT→获取TGT - 前提: 目标对象可写 + Windows Server 2016+域功能级别
- 工具: Whisker / PyWhisker
16.3 重大基础设施CVE(2024-2026)
| CVE | 产品 | 影响 |
|---|---|---|
| CVE-2024-3400 | Palo Alto GlobalProtect | 任意命令执行(无需认证) |
| CVE-2024-21762 | Fortinet FortiOS | Out-of-Bound Write RCE |
| CVE-2023-46805/48788 | Ivanti Connect Secure | 认证绕过+RCE |
| CVE-2024-29847 | Ivanti EPM | SQL注入→RCE |
| CVE-2024-23897 | Jenkins | 任意文件读取通过CLI |
| CVE-2024-1709 | ConnectWise ScreenConnect | 认证绕过 |
| CVE-2025-22788 | - | Windows提权(新增) |
16.4 Linux后渗透新增
eBPF Rootkit: 利用eBPF程序在内核层拦截/修改系统调用→隐藏进程/文件/网络连接 - 工具: TripleCross / ebpfkit
K8s攻击框架: kube-hunter / kube-bench / checkov