當前位置:
首頁 > 新聞 > 滲透技巧——通過SAM資料庫獲得本地用戶hash

滲透技巧——通過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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

Adobe Flash 漏洞利用分析:從CVE-2015-5119到CVE-2018-4878(上)
F5做負載均衡時,如何通過修改cookie查找敏感信息

TAG:嘶吼RoarTalk |