type
status
date
slug
summary
tags
category
icon
password
前言:
由于靶场非公开化,此文仅以提供学习思路,不可用于其他用途。
目的
让学员通过该系统的练习主要掌握:
- Pash the hash的具体工作原理
- 使用mimikatz获取hash凭据、以及进行PTH
环境
域内主机:win_one
域控制器:win_control
工具
- mimikatz
原理
NTLM是Windows的一种认证方式(可以简单理解为密码的一种形式),其认证过程如下:
1:客户端向要访问的机器发送用户名,这个被访问的机器称为服务端。
2:服务端向客户端发送一个challenge。
3:客户收到challenge后用自己的 NTML hash对其进行加密生成response , 并将response发送给服务端
4:服务端将response、challenge、客户端的用户名一起发送给域控。
5:域控将用户名对应的hash用challenge进行加密后与response进行对比,如果一样那么认证成功。
Pass The Hash,即哈希传递简称PTH,可以在不需要明文密码的情况下,利用LM HASH和NTLM HASH(为Micosoft的认证凭据)直接远程登录。responder可以仿照用户骗取其NTLM进行认证,并将其NTLM打印到终端中,利用该NTLM可以获取对应用户的权限。
通过了解NTLM身份认证步骤我们可知,当客户端向服务端发起协商消息后,将接收到由服务端返还的challenge,客户端使用用户hash与challenge进行加密得到respond后,再将challenge,respond以及username等信息发送至服务端完成身份认证。我们不难发现,身份认证过程中计算respond所需要的只有用户的hash,整个过程中均不需要用户明文密码的参与。PTH正是借助"无需明文参与"这一身份认证特性才得以实现。
步骤
1.登陆域控制器Win_control,运行mimikatz
其是一个轻量级的调试工具,它可以从内存中提取明文密码、哈希值、PIN码和Kerberos票据。mimikatz还可以执行传递哈希值、传递票据或建立金票。
首先,以管理员身份运行命令行,由于mimikatz涉及到程序调试,而Windows默认赋予administrator以上用户的权限调试程序的权限,因此,使用mimikatz的前提条件是获得本地管理员权限的账户
切换到
c:\x64
后输入mimikatz.exe
,然后输入 privilege::debug
提权2.输入sekurlsa::logonpasswords
工具会输出所用缓存目标用户的NTLM-hash,默认为10条,取决于注册表中Credential Caching项的值,当获得到目标的NTLM值后,就可以利用mimikatz进行PTH
3.登陆到域内主机Win_one,打开mimikatz
首先提权
privilege::debug
,之后利用已经获得的目标用户的hash进行PTH然后输入
sekurlsa::pth /user:administrator /domain:zlg.com /ntlm:xx
(上图)4.尝试使用现有凭据通过smb连接域控制器的c盘:
net use \WIN-8k3utpqn76k\c$
(保持域控制器打开)一直报错
一开始以为是hostname(
WIN-8k3utpqn76k
)问题在域控服务器查了一下
也没问题呀
怀疑是网络问题
win_one ping一下
也没问题
改用ip名而不是主机名(解决dns解析问题
5.成功连接,获得域控制器权限
另外
连接不上确实是dns解析问题
总结
掌握PTH的背景知识以及具体操作。
鸣谢:《》
- 作者:fnigkl
- 链接:https://www.fnigkl.com/article/006
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。