利用原理
黄金票据发生在AS-REP
的阶段,黄金票据就是伪造TGT票据。
由Kerberos认证过程中可以知道,TGT票据是通过krbtgt用户的hash值进行加密的,而krbtgt用户的hash值
只存在域控制器上面的ntds
文件中。
需要知道域控上面krbtgt用户的hash来进行伪造TGT票据,即为Golden Ticket黄金票据。
黄金票据的作用:横向移动、权限维持
利用条件
必须知道域控
krbtgt
用户的Hash值域名
域的SID值
需要伪造的用户(一般都为
Administrator
用户)
域的SID值
在域内执行whoami /all
,去掉最后的的值即为域的SID值,如:
这里:S-1-5-21-3067532395-4024955116-1698367832
即为域的SID值。
在域内任意用户进行执行该命令都可以获取域的SID值,并且都一样,只是最后的数字不同。
krbtgt-Hash获取
1、控制域控后可以通过复制和克隆影盘的方法来获取ntds文件,并进行解密该文件来获取krbtgt的hash值。(krbtgt是域用户,不是域控上的本地用户,所以它的hash值不储存在SAM文件中,而是NTDS文件中)。
2、可以通过dcsync的技术来获取,利用Mimikatz的dcsync来进行获取krbtgt的hash值。
这里使用dcsync方法进行测试:
该方法需要用户权限为:
Administrator组内的用户
Domain Admin组内的用户
Enterprise Admin组内的用户
域控制器的计算机用户
域控的Administrator和system用户也可以
方法1
这里使用impacket工具包中的Ticketer工具来进行生成黄金票据。
.\ticketer.exe -domain-sid [域SID] -nthash [krbtgt的hash值] -domain [域名] [伪造管理员用户名]
然后使用MimiKatz或其他工具进行注入黄金票据,这里使用Mimi Katz进行测试利用:
先清除票据:klist purge
由于生成的是.ccache文件,则mimikatz执行命令:kerberos::ptc [票据文件名]
注入票据后执行查看票据命令:klist
和查看域控文件:dir \\dc.abc.com\c$
方法2
直接利用mimiKatz进行生成票据,或者直接将票据注入内存之中
清除票据:
使用mimikatz进行生成黄金票据,命令:
kerberos::golden /user:[伪造的管理用户名] /domain:[域名] /sid:[Sid值] /krbtgt:[krbtgt的hash值] #生成TGT黄金票据
kerberos::golden /user:[伪造的管理用户名] /domain:[域名] /sid:[Sid值] /krbtgt:[krbtgt的hash值] /ptt #加上/ptt会直接注入到内存中
这里直接使用命令将票据注入内存中:
查看票据,并查看域控文件: