在我們抓取到系統的hash值之后,需要通過一些工具來破解密碼
hashcat是一款可以基於顯卡暴力破解密碼的工具,幾乎支持了所有常見的加密,並且支持各種姿勢的密碼搭配
在kali Linux中自帶的有,也支持Windows Mac平台,可以在官網下載:https://hashcat.net
得到一個壓縮包,加壓后其中有各種版本的可執行文件.sh .exe

這里我使用的是windows版,在windows中使用hashcat只需要在根目錄進入命令行

進入命令行輸入hashcat64.exe如果你是機器是x32位的可以使用hashcat32.exe

使用hashcat64.exe -h可以查看工具相關的幫助
會列出很多幫助,首先是命令參數,然后是命令參數的值
-m hash的類型
指定hash的加密類型,默認是MD5類型

在對應的類型前面有它的id,可以通過id來指定類型
當我們想要找一個類型在hashcat支不支持的時候,例如windows系統加密的是NTML,可以執行命令
hashcat64.exe -h | findstr NTLM

可以看到NTLM的ID號為1000
-a 攻擊方式
破解密碼的方式
分別有:
0 | Straight 字典破解
1 | Combination 組合破解
3 | Brute-force 掩碼破解
6 | Hybrid Wordlist + Mask 混合字典 + 掩碼
7 | Hybrid Mask + Wordlist 混合掩碼 + 字典

掩碼
當沒有字典的時候,可以使用掩碼指定密碼的每一位是什么類型的字符,首先我們知道密碼有多少位

例如:?d?d?d?d?d?d?d?d代表密碼為8為數字,?u?l?l?l?l?d?d?d代表密碼為7位,首個字母大寫,然后三個小寫字母,最后三個數字
破解windows hash密碼
使用字典爆破windows hash
hashcat64.exe -a 0 -m 1000 hash或者hashfile 字典文件
准備好我們的密碼本,這里我使用的是手寫的2.txt

hashcat64.exe -a 0 -m 1000 e45a314c664d40a227f9540121d1a29d 2.txt
執行后會進入這樣一個狀態,這里每個可能不一樣,在破解成功或者跑完字典后會自動停止


可以看到我們的密碼已經被破解出來,為Admin123
在破解后,會在根目錄下的hashcat.potfile文件記錄這個hash的緩存

這里我們將改文件清空,方便后續做實驗
使用掩碼破解windows hash
hashcat64.exe -a 3 -m 1000 e45a314c664d40a227f9540121d1a29d ?u?l?l?l?l?d?d?d


破解成功
在我們爆破的同事,會有
[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>
分別:查看破解狀態,暫停,繞過,檢查,退出
破解Linux hash密碼
在linux中,我們知道,密碼分別存儲在/etc/passwd和/etc/shadow中,只需要more /etc/shadow,將其中的文件復制出來,使用工具破解即可

將root和jackson用戶的密碼保存到/var/www/html/passWeb服務目錄中
root:$6$90/diajJs2fHcIGa$hB5wj4tMF8Qdd6o5VNRTY4v4vEpV8x0NP4O1N/tpJ8ns7JmJ8RyvSih7.W8TQdfwweUFh16dJejFpKw07i2uR1::0:99999:7:::
jackson:$6$Zje1WaoS$eH24JFr5n67149yBcDWWsfxME5cYlOXMmJxnf2uinbvYm8vWc0BmjvAoXIFY/0ZUJItRpPhHkCGDiqjXT10EV0:19066:0:99999:7:::

注意這里的換行,一個用戶的hash值是一行

啟動Web服務

並在實驗機器下載,這里使用certutil將pass文件內容下載到了D盤下的pass文件中去

Linux使用的是 sha512crypt加密方式,在hashcat中尋找是否有該方法
hashcat64.exe -h|findstr sha512crypt

代號為1800
繼續使用我們的2.txt對d:\pass文件進行暴力破解
hashcat64.exe -a 0 -m 1800 d:\pass 2.txt


這里我更換了root和jackson用戶在文件中的位置
爆破成功,得到jackson的密碼為root,但是只爆破出了一個密碼,應該只支持一個密碼的破解
注意:復制的時候一定不要有換行,不然是無法破解成功的
