密钥传递 Overpass The Hash / Pass The Key
Overpass The Hash,又称为 Pass The Key,是 PTH 的一种延伸,我们通常在 NTLM 认证被禁用、只有 Kerberos 认证可用的情况下使用。相比与 PTH 直接用 NTLM 哈希进行认证,OTH 认证通过目标用户的 NTLM 或者 AES 密钥申请对应的 TGT 或者 TGS,从而访问响应的主机或者服务。
大家对 NTLM 已经不再陌生,那么 AES 密钥是什么呢?我们在 mimikatz 终端里执行命令 sekurlsa::ekeys,并且如果 PPL 未启用(或者已绕过)的话,我们可以提取出 AES 密钥。
在申请 TGT的时候,我们可以使用工具 Rubeus 来帮助我们实现 Rubeus.exe asktgt /user:<用户名> /domain:<域名fqdn> /aes256:<aes 密钥> /ptt /nowrap
我们可以通过 /ptt 选项立刻导入请求到的 TGT,也可以保存为文件,为之后所用,例如在 CobaltStrike 中先生成一个牺牲会话,然后导入。
需要注意的是,/aes256 也可以替换成 /rc4,即 NTLM 哈希。但是,请求 TGT 会产生 4768 事件,并且我们会看到 密钥类型是RC4-HMAC (0x17),但是 Windows 系统中的默认密钥类型是 AES256 (0X12)。因此,我们依旧选用 AES256,可以使我们的活动被正常操作所淹没。
我们也可以通过 impacket 在 Linux 端申请 TGT,生成 ccache 格式文件。