hashcat的前世今生

2021-09-24 19:57:23 字數 2740 閱讀 7368

hashcat 號稱世界上最快的密碼破譯軟體,真的沒人好奇hashcat的發展歷程嗎?hashcat 如何進行密碼破譯的呢?簡單的命令也會有不俗的效果。

hashcat是一款基於gpu進行快速密碼破譯的開源軟體。目前官網更新的最新版本是hashcat 4.1.0。我們可以在官網上找到3.00及之後的版本。

hashcat是在2023年寫出來的,在hashcat出現之前,已經有很多接近完美的工具了,比如「passwordpro」,」john the ripper」。但是由於某些不為人知的原因,這兩個工具都不支援多執行緒。於是就出現了利用現代cpu的多個核心進行運算的hashcat。

下面我們以4.1.0版本的hashcat為例,了解一下它的功能。

hashcat-legacy是乙個基於cpu的密碼恢復工具。hashcat是在2023年寫出來的,在hashcat出現之前,已經有很多接近完美的工具了,比如「passwordpro」,」john the ripper」。但是由於某些不為人知的原因,這兩個工具都不支援多執行緒。於是就出現了利用現代cpu的多個核心進行運算的hashcat

當然了,hashcat進行密碼破譯並不是百分百正確,john the ripper也可以通過補丁來支援mpi,只不過它只能用於暴力破解攻擊,對於那些通過基於規則的攻擊支援mpi的md5,john the ripper並沒有合適的方法進行破解。

hashcat的第乙個版本,叫做「atomcrack」。這個版本特別簡單,功能也非常單一,但是最起碼它的md5核心是多執行緒的。atomcrack破解md5只用到了最簡單簡單的字典攻擊,但是atomarack的攻擊速度非常快。發行hashcat第一版一段時間之後,逐漸增加了更多的演算法型別,乙個字典變種的規則引擎,還增加了乙個windows版本和不同攻擊模式。hashcat的這些發展大概花費了半年時間,而且完全是非公開的。

在0.29版本中,「atomcrack」更名為「dr.hash」,直到2023年12月24日發布了第一版官方正式版hashcat0.30,才正式更名為「hashcat」。

2023年8月5日發布了hashcat0.40,在這個版本中增加了mac oxs二進位制。也正是這樣一點一點形成我們現在使用的hashcat

hashcat的另乙個組成部分是oclhashcat,它是乙個基於gpgpu的多雜湊破解程式。它的功能包括暴力攻擊,組合攻擊,字典攻擊,掩碼攻擊和基於規則的攻擊等。這個gpu cracker是oclhashcat-plusoclhashcat-lite的融合版本,這兩個工具都是很致命的元件,現在已經被棄用了。

oclhashcat的主要問題與它的體系結構有關。oclhashcat是專為combinator攻擊設計的,它對於高速演算法很有效,但是和慢速演算法結合就會變得低效。

正因為這一原因,人們仍然習慣使用基於cpu的hashcat,因為hashcat可以使用簡單的字典攻擊。要想在gpu上進行基於字典的攻擊,首先要解決的問題就是oclhashcat的演算法問題。而這一問題的解決方案是創造全新的方法oclhashcat-plus。在這一過程中oclhashcat開發者提出了乙個非常專業化的gpu cracker即oclhashcat-lite,它專注於掩碼攻擊和強力攻擊。這個工具專注於單個hash值的分析。為了讓使用者受到更少的限制,會與oclhashcat-plus並行存在。

gpu上的字典攻擊確實會對md4,md5這樣的快速演算法很有效,但是效率並沒有那麼高,因為把單詞表上傳到gpu需要更多的時間,所以在cpu上攻擊這些快速演算法就可以了,但是像md5crypt,phpass這樣的慢速演算法,在gpu上的執行速度就非常快。這是因為這些演算法在設計時候就會降低它的可碰撞性。

2023年12月6日,發布了oclhashcat1.00版本,開發人員宣稱這一版本融合了oclhashcat-lite的優勢,同時擁有oclhashcat-plus的一些功能。對於某些型別的hash值,oclhashcat1.00的破解速度與oclhashcat-lite相當,甚至有可能更快。也正是從1.00版本開始,oclhashcat代替了oclhashcat-liteoclhashcat-plus的功能。也就是說oclhashcat是這兩個元件的合併版本。

oclhashcat的另乙個主要特點是基於gpu的規則引擎。有了這個引擎就可以進行基於規則的攻擊。

快速演算法利用基於gpu的規則引擎來提高gpu利用率。使用這種策略,在gpu上的簡單的字典攻擊都會變得高效。 gpu上的規則引擎速度非常快。根據規則本身,您可以達到與oclhashcat中的combinator攻擊幾乎相同的速度。這是乙個獨一無二的功能,可以抵禦其它的hash cracker。

慢速演算法利用基於cpu的規則引擎來增加單詞表的大小。這樣就可以用非常小的字典進行攻擊。這些小字典其實是由規則引擎在記憶體中擴充套件出來的。這樣我們就可以忽略把單詞表儲存到gpu的時間。

經過上述發展,oclhashcat變得有一點像基於cpu的hashcat

LinkedList前世今生

1 linkedlist元素在內部儲存的實現,節點定義即指向前一元素的指標,後一元素的指標,當前元素的值。private static class entry 2 建立乙個空鍊錶。預設有個頭指標header。private transient entryheader new entry null,n...

前世今生 STL

嘛,string就是乙個用於字串處理的標準類庫,但是需要注意的是其速度可能會比直接操縱char陣列要慢一些。reverse這個方法是我一直都想找到但是沒有找到的,在判斷回文的時候格外好用。string s abcdef string ss s ss abcdef reverse ss.begin s...

位址 前世今生

alu arithemetic and logic unit 書面意思是 算術與邏輯部件,運算器,算術與邏輯單元,通俗來講 cpu處理的資料位數。從4位 8位 16位 32位,處理能力越來越強。發問 16位計算能力如何處理20位的位址呢?cs ip 是一組暫存器,用於告知 cpu 當前將要讀取的彙編...