Purple Rain攻擊——躺著也能破解哈希?
大家好,今天教給大家一個破解哈希的方法。
山窮水盡
在滲透測試時,你是否面臨著這樣的窘境:
你看了翻遍各種筆記並逐一嘗試了一番,沒用!
你分析了密碼策略和當前破解的結果,依然沒用!
你甚至一頁頁翻閱哈希破解手冊,還是沒用!
它成功的引起了你的興趣,可是你突然發現自己並沒有什麼方法可以解決這隻攔路虎!更重要的是,你沒有太多的時間!
柳暗花明
是時候嘗試一波「Purple Rain攻擊」了!這是一個完美的即時攻擊,它可以一直運行,且僅僅受限於你提供的字典大小。
Purple Rain攻擊能幹什麼?
它會給你帶來永遠想不出來的密碼模式和規則集。它非常適用於將可用的模式和密碼鏈接在一起,如果只使用簡單的字典,就可以在24小時內輕鬆地破解75%的LinkedIn數據集。
這會有幾個問題,比如是否所有的模式和密碼都是有效的?當然不是!
我們會不會花了很長時間卻拿不到關鍵的哈希結果?答案是肯定的。
但想像一下,在長時間的攻擊過程中,某一天夢想中的哈希突然在控制台上現身,這是多麼美妙的一個場景。
那時,你肯定會回頭瀏覽這篇文章,由衷感嘆這種攻擊的巧妙性,感謝這些工具開發者的天才思想。
Purple Rain
為什麼叫這個名字?
我們玩了一個文字遊戲,因為在攻擊過程中用到了PRINCEprocessor Hashcat工具,再與Prince的著名歌曲《Purple rain》相結合,最終取了這個名字。
在本文中,我們會假設你正在破解諸如NTLM這樣的哈希,並且已經枚舉完7個字元以內的所有密碼(所以我們只需要命令PRINCE生成超過8個字元的密碼)。
最後,你還需要一套破解平台,可以選擇Budget Cracking Rig或者Portable Cracking Rig
資源:
Hashcat
PRINCEprocessor Hashcat 工具
字典列表
Purple Rain攻擊命令:
shuf dict.txt | pp64.bin --pw-min = 8 | hashcat -a 0 -m #type -w 4 -O hashes.txt -g 300000
隨機生成
Purple Rain攻擊的靈感來源於PRINCE(可傳性無限鏈式元素)攻擊和隨機規則生成,網上有兩篇很好的文章,我建議大家可以看一下:
Matt Weir關於PRINCEPROCESSOR及其功能的文章:
https://github.com/evilmog/evilmog/wiki/Hashcat-Raking---generated2.rule
@evilmog寫的有關「raking」(隨機密碼候選生成)技術的書面報告:
https://github.com/evilmog/evilmog/wiki/Hashcat-Raking---generated2.rule
與此同時,建立你自己的環境,以使用hashcat 中的隨機規則生成結果。
簡而言之,PRINCE可以根據輸入的字典集,通過隨機組合產生輸入詞鏈表。加上Hashcat的隨機規則生成選項-g,可以增強PRINCE密碼候選生成結果。
選擇字典
你可以通過兩種方法為Purple Rain攻擊選擇輸入詞典:目標詞表或通用詞表。
如果你已經根據你的目標創建了自定義字典,那麼你可以從「目標」字典開始。如果沒有,那麼你可以繼續使用像rockyou.txt數據集一樣好的「通用」字典。
我不建議你使用一個非常大的字典,比如使用PRINCE(500 MB+)。你可以直接使用最常用的1000萬個密碼集(只有3.8MB),也可以參考http://weakpass.com,根據實際需要選擇合適的詞典。
最後,先把shuffle命令shuf發送到你的字典上,再將其傳送到PRINCEprocessor上。這種方式將確保你每次開始Purple Rain攻擊時,PRINCEprocessor不會創建相同的詞鏈。
你只需多次嘗試以下命令並比較輸出便可明白我在說什麼:
pp64.bin --pw-min=8 < dict.txt | head -20
shuf dict.txt | pp64.bin --pw-min=8 | head -20
當選擇規則的時候,我建議先從Hashcat包含的dive.rule開始。這至少將已知的密碼變化與PRINCEprocessor隨機生成的密碼候選組合在一起,而且由於dive.rule按概率順序排序,所以你可能很快就能獲得密碼。
接下來,你要設置規則數為50000-1000000的Hashcat隨機規則生成選項。我會建議你每次使用300000個,這在命令行中是-g 300000。
注意,你嘗試生成的隨機規則集越大,Hashcat啟動的時間就越長,因為Hashcat每次都在動態生成這些規則。
命令結構
讓我們來談談完整的Purple Rain攻擊命令結構:
shuf dict.txt | pp64.bin --pw-min = 8 | hashcat -a 0 -m #type -w 4 -O hashes.txt -g 300000
shuf:在進入PRINCEPROCESSOR之前,隨機化我們的字典
dict.txt:你選擇的字典文件
pp64.bin: Hashcat的 PRINCEPROCESSOR 工具
--pw-min = 8:命令PRINCE生成最小長度為8的字元密碼
hashcat -a 0:直接啟動Hashcat以獲取stdin輸入
-m #type:指定哈希模式編號,例如-m 1000是NTLM
-w 4:命令Hashcat使用最高的工作負載設置
hashes.txt:你的文件包含的待破解哈希
-g 300000:命令Hashcat生成300,000個隨機規則
我們建議限制運行時間為1到24小時,然後重新啟動相同的攻擊。
收集成功的隨機規則:
--debug-mode = 1 --debug-file = success_purplerain.rules
高級命令語法
你是否想隨機選擇你的字典?那麼指向你的字典:
ls dict / | sort -R | shufdict /`tail -1` | pp64.bin --pw-min = 8 | hashcat -a 0 -m #type -w 4 -O hashes.txt -g 300000
想要在多個詞典中隨機化以增加多樣性?
cat dict1.txt dict2.txt | shuf | pp64.bin --pw-min = 8 | hashcat -a 0 -m #type -w 4 -O hashes.txt -g 300000
高級選項
在PRINCEprocessor中,我們可以使用--elem-cnt-min和--elem-cnt-max選項,從輸入字典中增加詞鏈的數量。
在Hashcat隨機生成規則中,我們可以使用--generate-rules-func-min和--generate-rules-func-max選項,增加或減少規則函數的數量。
運行測試
這裡有一些簡單的步驟來運行一個簡易的Purple Rain攻擊測試。
首先讓我們隨機化,從rockyou字典中取出前三萬個密碼:
shuf rockyou.txt | head -30000 > test_rockyou.txt
然後,我們將test_rockyou.txt文件進行md5編碼(這將需要時間):
while read line; do echo -n $line | md5sum; done < test_rockyou.txt | awk -F " " {print$1} > hashes.txt
接下來我們將創建一個小字典來運行我們的新測試哈希:
hashcat -a 3 -i?a?a --stdout >> test_dict.txt
另外,我們從網上抓取谷歌最常用的20,000個英語單詞字典並添加它:
cat google-20k.txt >> test_dict.txt
現在先用dive.rule運行Purple Rain攻擊1小時:
shuf test_dict.txt | pp64.bin | hashcat -a 0 -m 0 -w 4 -O hashes.txt -r dive.rule
你可以看到它在Hashcat中生成的候選密碼。
現在我們將讓Purple Rain攻擊以20萬隨機生成的規則運行8小時:
shuf test_dict.txt | pp64.bin | hashcat -a 0 -m 0 -w 4 -O hashes.txt -g 200000
通過8小時的運行時間,你可以了解到這種方法不需要過多人工參與,可以持續、自主完成攻擊過程。你會看到你根本無法想到的一些密碼組合。請記住一點:不確定的輸出結果是你最好的朋友。
當然,在破解過程中,差之毫厘則失之千里,我們不能放棄絲毫的可能性。
更多精彩
挖礦,泄密,微軟成幫凶,惡意軟體Zyklon捲土重來間諜軟體Skygofree潛伏4年,你的秘密還在嗎?內含POC | 又一個漏洞可以遠程控制你的電腦!佛系工具:如果我應該被知道,那就會被知道QQ圖片未加密,可被黑客替換成支付寶付款碼!*IDEA值得分享 | 轉載註明出處
http://weixin.qq.com/r/00jcxCrEInddrW6n9x3B (二維碼自動識別)
推薦閱讀:
※滲透,挖洞,後門,0day,肉雞等等這些詞都是和哪個方向有關的,我想入門卻不知從何學起…?
※想學習黑客方面的知識,有哪些書值得推薦?
※阿里月餅門事件的技術原理?
※敲代碼的,如何轉行挖掘漏洞?
※如何進行系統的黑客學習?