黄金票据
此时,我们已经拿到了域管理员的身份,并且可以随意地查询到任何用户的凭证,那么怎么进行之后的利用呢?
黄金票据
回顾一下 Kerberos 的认证流程,当用户申请 TGT 的时候,DC使用 krbtgt 的 NTLM 哈希加密了 TGT。当然了,krbtgt 的 NTLM 哈希仅对域控制器所知。正因为如此,如果我们得到了 krbtgt 的密码哈希,那么我们可以用来任意地创建 TGT 票据。我们会在下文也提到白银票据,相比伪造一张服务票据,伪造 TGT 的优势在于可以以模仿的用户访问域内任何主机任何资源。
获得 krbtgt 的哈希也很简单,因为在制作黄金票据的时候,我们往往已经拿下了整个域,因此可以是通过 DCSync 获取 krbtgt 的哈希,可以在域控制器上从 Lsass.exe 进程中提取。
有了 krbtgt 的哈希后,我们还需要指定要模仿的用户、域的 FQDN、以及域的 SID。最终,我们可以使用 Rubeus 来制作黄金票据:
Rubeus.exe golden /aes256:-1-5-21-1674258736-4167122442-1078531953 /user:administrator /domain:prod.raven-med.local /sid:S-1-5-21-1674258736-4167122442-1078531953 /nowrap
制作之后,可以将票据保存为 kirbi 文件,然后通过 CobaltStrike 的 kerberos_ticket_use 命令导入从而访问任意资源。
KB5008380 补丁
白银票据
而伪造的 TGS 服务票据则是使用了特定主机的 AES256 密钥或者 NTLM 签名所伪造的白银票据,有了白银票据,我们可以模仿任何用户访问该主机上的任何服务,对于中短期的持久化具较有帮助。虽然白银票据支持 AES256 密钥以及 NTLM 哈希,但是依旧更建议使用 AES256 密钥,原因在 Overpass The Hash 篇密钥传递小节哪里说过。我们依旧可以使用 mimikatzRubeus 来制作白银票据。我们需要这些以下参数:
要模仿的用户
域的FQDN
目标主机
目标及服务
主机帐号的的AES256 密AES256密钥
域的SID
最终,通过以下命令生成如果要制作一张访问 File01 主机上服务的白银票据,命令如下:
kerberos::goldenrubeus.exe silver /service:cifs/file01.prod.raven-med.local /aes256:c9e598cd2a9b08fe31936f2c1846a8365d85147f75b8000cbc90e3c9de50fcc7 /user:Administratoradministrator /domain:<域FQDN> /target:<主机> /service:<服务名> /aes256:<主机帐号 aes256密钥>prod.raven-med.local /sid:<SID>S-1-5-21-1674258736-4167122442-1078531953 /ticket:<保存文件名>nowrap
制作之将创建的白银票据保存在本地,然后,依旧可以通过 Rubeus 或者 mimikatz 导入票据到牺牲会话中,发现得以成功访问目标服务了。