通過SAM數據庫獲得本地用戶HASH的方法和原理


了解

sam文件:是用來存儲本地用戶賬號密碼的文件的數據庫
system文件:里面有對sam文件進行加密和加密的密鑰

不知道講的對不對,自己感覺是這樣理解的,有錯誤麻煩說下

SAM文件路徑:%SystemRoot%\system32\config

SYSTEM文件路徑:%SystemRoot%\system32\config

利用方式:

導出sam和system:

reg save hklm\sam sam.hiv
reg save hklm\system system.hiv

解密工具mimikatz:

lsadump::sam /sam:sam.hiv /system:system.hiv

原理:

1、讀取HKLM\SYSTEM,獲得syskey

syskey的由來: 讀取注冊表項HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa下的鍵值JDSkew1GBGData中的內容,拼接成syskey

syskey的作用: Syskey中的加密的是賬號數據庫,也就是位於%SystemRoot%\system32\config的SAM文件

代碼可參考:

https://github.com/johannwmeyer/quarkspwdump/blob/a68aa6330f37eb8d00055c73e6a4e3cb52bcdd6d/src/crypt.cpp#L222

https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_lsadump.c#L219

完整計算代碼可參考:

https://raw.githubusercontent.com/3gstudent/Writeup/master/getsyskey.cpp

(Steal from http://www.zcgonvh.com/post/ntds_dit_pwd_dumper.html)

2、使用syskey解密HKLM\SAM:

讀取注冊表項HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users下每個用戶中F項和V項的內容,使用syskey進行一系列的解密

詳細解密過程可參考鏈接:http://www.xfocus.net/articles/200306/550.html


總結:

綜上,想要通過SAM數據庫獲得用戶hash,需要獲得兩個文件:HKLM\SYSTEMHKLM\SAM

最直接的導出方式是讀取當前系統下的注冊表HKLM\SYSTEMHKLM\SAM,但需要獲得system權限

admin切換到system權限參考文章:https://www.secshi.com/goto/zkv7

參考文章:https://www.secshi.com/21709.html


免責聲明!

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



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