Mimikatz 哈希与票据传递
NTLM 协议以及 Mimikatz 哈希与票据传递
NTLM 协议
A 想访问 B, 双方先确定协议版本(NTLM v1/NTLM v2).
A 向 B 发送用户名信息, B 接受到用户名后用该用户的 NTLM Hash 加密 Challenge (8位/16位随机数) 作为 Challenge1 (Net-NTLM v1 Hash/Net-NTLM v2 Hash), 之后将 Challenge 发送给 A.
A 使用登录账号的 NTLM Hash 加密 Challenge 作为 Response 发送给 B.
B 接收到 Response 将其与 Challenge1 进行比对, 一致则为认证通过.
pth (Pass the Hash)
从 NTLM 协议可以知道, 主机间的访问其实跟明文密码是一点关系也没有的, 正常请求时输入的密码也会被加密成 NTLM Hash, 再生成 Net-NTLM Hash.
由此引申出一个手段, 叫做 Pass the Hash
, 顾名思义, pth
通过目标主机的用户名和 Hash 来访问指定机器.
mimikatz
|
|
|
|
crackmapexec
|
|
UAC
注意 windows 2008 及以上系统在默认情况下开启 UAC 策略, 不允许 administrator 以外的其它本地管理员用户访问远程资源.
可通过更改注册表关闭 UAC 策略.
域内用户不受此限制.
|
|
另有更多工具, 在此不再赘述.
ptt (Pass the Ticket)
ptt 多用于 Kerberos 协议中, 即域环境内. 例如 Golden Ticket, Silver Ticket 以及 ms14-068 都通过 ptt 方式来提升权限.
ptt 相较于 pth 的好处是它无须本地管理员权限, 默认在 mimikatz 中进行 sekurlsa::pth
时须将其以管理员权限运行. 但 ptt 只能用于域环境内, 而 pth 在工作组和域内都可以使用.
ptt 的原理类似于 Golden Ticket, 它通过指定账户的用户名和 Hash 来生成一份高权限的 TGT 以请求不同的 TGS Ticket 来达到访问域内资源的目的.
通过 keko 生成 TGT.
|
|
通过 mimikatz 导入 TGT.
|
|
ptk (Pass the Key/Over Pass the Hash)
ptk 为什么没有说呢, 因为自己在本地测试的时候总是不成功. 这里仅给出示例代码.
|
|