滲透技巧——通過SAM資料庫獲得本地用戶hash
0x00 前言
在滲透測試中,獲得了Windows系統的訪問許可權後,通常會使用mimikatz的sekurlsa::logonpasswords命令嘗試讀取進程lsass的信息來獲取當前登錄用戶的密碼信息,但想要全面獲取系統中的密碼信息,還要對SAM資料庫中保存的信息進行提取,導出當前系統中所有本地用戶的hash。
0x01 簡介
本文將要介紹以下內容:
·通過SAM資料庫獲得用戶hash的多種方法
·原理分析
0x02 通過SAM資料庫獲得用戶hash的方法
1、在線讀取SAM資料庫
讀取當前系統的SAM資料庫文件,獲得系統所有本地用戶的hash
(1) mimikatz
privilege::debug
token::elevate
lsadump::sam
測試如下圖
(2) pwdump7
下載地址:
http://passwords.openwall.net/b/pwdump/pwdump7.zip
管理員許可權執行,如下圖
(3) powershell
下載地址:
https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-PowerDump.ps1
管理員許可權執行,測試如下圖
2、離線讀取SAM資料庫
獲取當前系統的SAM資料庫文件,在另一系統下進行讀取
導出SAM資料庫文件有以下兩種實現方法:
(1) 保存註冊表
管理員許可權
reg save HKLMSYSTEM SystemBkup.hiv
reg save HKLMSAM SamBkup.hiv
(2) 複製文件
C:WindowsSystem32configSYSTEM
C:WindowsSystem32configSAM
默認無法被複制,如下圖
需要藉助NinjaCopy,作者Joe Bialek,參考下載地址:
https://github.com/3gstudent/NinjaCopy
導出SAM資料庫文件後,在另一系統,可通過以下方式導出用戶hash:
(1) mimikatz
lsadump::sam /sam:SystemBkup.hiv /system:SamBkup.hiv
如下圖
註:
mimikatz的官方說明有問題,地址如下:
https://github.com/gentilkiwi/mimikatz/wiki/module-~-lsadump
導出命令:
lsadump::sam SystemBkup.hiv SamBkup.hiv
會報錯,如下圖
可用的命令由@我愛這個世界提供
補充:
以下工具在讀取Win7系統的SAM資料庫文件會報錯
(1) Pwdump7
如下圖
(2) Pwdump5
下載地址:
http://passwords.openwall.net/b/pwdump/pwdump5.zip
讀取結果不正確,如下圖
(3) cain
測試如下圖
0x03 原理分析
1、讀取HKLMSYSTEM,獲得syskey
讀取註冊表項HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa下的鍵值JD、Skew1、GBG和Data中的內容,拼接成syskey
代碼可參考:
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解密HKLMSAM
讀取註冊表項HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers下每個用戶中F項和V項的內容,使用syskey進行一系列的解密
詳細解密過程可參考如下鏈接:
http://www.xfocus.net/articles/200306/550.html
綜上,想要通過SAM資料庫獲得用戶hash,需要獲得兩個文件:HKLMSYSTEM和HKLMSAM
最直接的導出方式是讀取當前系統下的註冊表HKLMSYSTEM和HKLMSAM,但需要獲得system許可權
從admin切換到system許可權的方法可參考之前的文章:《滲透技巧——從Admin許可權切換到System許可權》
0x04 總結
本文介紹了通過SAM資料庫獲得所有用戶hash的多種方法,關鍵在於讀取HKLMSYSTEM和HKLMSAM
※Adobe Flash 漏洞利用分析:從CVE-2015-5119到CVE-2018-4878(上)
※F5做負載均衡時,如何通過修改cookie查找敏感信息
TAG:嘶吼RoarTalk |