破解神器Hashcat使用簡介


0x00 背景


目前GPU的速度越來越快,使用GPU超強的運算速度進行暴力密碼破解也大大提高了成功率,曾經看到老外用26塊顯卡組成的分布式破解神器讓我羡慕不已。要說目前最好的GPU破解HASH的軟件,非HashCat莫屬了。下面我就為大家具體介紹一下HashCat系列軟件。

0x01 所需硬件及系統平台


HashCat系列軟件在硬件上支持使用CPU、NVIDIA GPU、ATI GPU來進行密碼破解。在操作系統上支持Windows、Linux平台,並且需要安裝官方指定版本的顯卡驅動程序,如果驅動程序版本不對,可能導致程序無法運行。

 

如果要搭建多GPU破解平台的話,最好是使用Linux系統來運行HashCat系列軟件,因為在windows下,系統最多只能識別4張顯卡。並且,Linux下的VisualCL技術(關於如何搭建VisualCL環境,請參考官方文檔http://hashcat.net/wiki/doku.php?id=vcl_cluster_howto),可以輕松的將幾台機器連接起來,進行分布式破解作業。 在破解速度上,ATI GPU破解速度最快,使用單張HD7970破解MD5可達到9000M/s的速度,其次為NVIDIA顯卡,同等級顯卡GTX690破解速度大約為ATI顯卡的三分之一,速度最慢的是使用CPU進行破解。

0x02 HashCat軟件簡介


HashCat主要分為三個版本:Hashcat、oclHashcat-plus、oclHashcat-lite。這三個版本的主要區別是:HashCat只支持CPU破解。oclHashcat-plus支持使用GPU破解多個HASH,並且支持的算法高達77種。oclHashcat-lite只支持使用GPU對單個HASH進行破解,支持的HASH種類僅有32種,但是對算法進行了優化,可以達到GPU破解的最高速度。如果只有單個密文進行破解的話,推薦使用oclHashCat-lite。

目前最新的軟件版本為HashCat v0.46、oclHashcat-plus v0.15、oclHashcat-lite v0.15。但是經過一段時間的測試,發現有時候版本越高,速度越慢。所以推薦在使用沒有問題的情況下,無需升級到最新版本。根據測試,oclHashcat-lite v0.10的運算速度比v0.15的運算速度快20%,所以單個密文破解還是推薦使用oclHashcat-lite v0.10。

0x03 HashCat軟件使用


HashCat系列軟件擁有十分靈活的破解方式,可以滿足絕大多數的破解需求,下面我就為大家簡單介紹一下。

1.指定HASH類型

在HashCat中--hash-type ?參數可以指定要破解的HASH類型,運行hashcat主程序加上--help參數,在* Generic hash types:中可以看到各種HASH類型的代號,如圖所示:  enter image description here

不同版本的HashCat所支持的hash類型有所不同,如果沒有指定--hash-type參數,那么程序默認為MD5類型。

2.指定破解模式

在HashCat中--attack-mode ?參數可以可以指定破解模式,軟件一共支持5種破解模式,分別為

0 Straight(字典破解)
1 Combination(組合破解)
3 Brute-force(掩碼暴力破解)
6 Hybrid dict + mask(混合字典+掩碼)
7 Hybrid mask + dict(混合掩碼+字典)

下面為大家介紹兩個最常用的破解方式:字典破解和掩碼暴力破解。

使用字典破解MD5:

oclHashcat-plus64.exe --hash-type 0 --attack-mode 0 {HASH文件} [字典1] [字典2] [字典3]…

如:

oclHashcat-plus64.exe --hash-type 0 --attack-mode 0 d:md5.txt d:dict1.txt d:dict2.txt

字典破解由於受到磁盤和內存速度的影響,速度無法達到GPU的最大運算速度,基本上一個5GB的字典,對於MD5破解來說10分鍾內可以跑完。

使用掩碼暴力破解SHA1:

oclHashcat-plus64.exe --hash-type 100 --attack-mode 3 {HASH文件} [掩碼]

{掩碼的設置}

對於掩碼,這邊需要稍微做一個說明。Hashcat默認的掩碼一共有9種,如圖所示:

enter image description here

?l表示a-z,?u表示A-Z,?d表示0-9,?a表示鍵盤上所有的特殊字符,?s表示鍵盤上所有的可見字符,?h表示8bit 0xc0-0xff的十六進制,?D表示8bit的德語字符,?F表示8bit的法語字符,?R表示8bit的俄語字符。

那么有同學可能會問了,如果我要用掩碼表示小寫+數字怎么辦呢?這就需要用到自定義字符集這個參數了。軟件支持用戶最多定義4組字符集,分別用

--custom-charset1 [chars]
--custom-charset2 [chars]
--custom-charset3 [chars]
--custom-charset4 [chars]

來表示,在掩碼中用?1、?2、?3、?4來表示。

比如說我要設置自定義字符集1為小寫+數字,那么就加上

-- custom-charset1 ?l?d

如果要設置自定義字符集2為abcd1234,那么就加上

--custom-charset2 abcd1234

如果要破解8位的小寫+數字,那么需要設置自定義字符集1為

--custom-charset1 ?l?d

設置掩碼為?1?1?1?1?1?1?1?1。 如果已知密碼的第一位為數字,長度為8位,后幾位為大寫+小寫,那么需要設置自定義字符集1為

--custom-charset1 ?l?u

設置掩碼為?d?1?1?1?1?1?1?1。

{掩碼的長度}

對於已知長度的密碼,可以使用固定長度的掩碼進行破解。比如要破解11位數字,就可以這樣寫掩碼?d?d?d?d?d?d?d?d?d?d?d。

對於想要破解一些未知長度的密碼,希望軟件在一定長度范圍內進行嘗試的,可以使用--increment參數,並且使用--increment-min ?定義最短長度,使用--increment-max ?定義最大長度。比如要嘗試6-8位小寫字母,可以這樣寫

--increment --increment-min 6 --increment-max 8 ?l?l?l?l?l?l?l?l

{舉例}

破解8-11位數字+小寫

oclHashcat-plus64.exe --hash-type 100 --attack-mode 3 --increment --increment-min 8 --increment-max 11 --custom-charset1 ?l?d d:sha1.txt ?1?1?1?1?1?1?1?1?1?1?1

0x04 HashCat參數優化


HashCat本身考慮到系統資源的分配,默認參數下並沒有最大化的來使用硬件資源。如果我們想要讓破解速度最大化,就需要對一些參數進行配置。

1.Workload tuning 負載調優。

該參數支持的值有1,8,40,80,160

--gpu-accel 160

可以讓GPU發揮最大性能。

2.Gpu loops 負載微調

該參數支持的值的范圍是8-1024(有些算法只支持到1000)。

--gpu-loops 1024

可以讓GPU發揮最大性能。

3.Segment size 字典緩存大小

該參數是設置內存緩存的大小,作用是將字典放入內存緩存以加快字典破解速度,默認為32MB,可以根據自身內存情況進行設置,當然是越大越好XD。

--segment-size 512

可以提高大字典破解的速度。

0x05 結束語


本文只是簡單介紹HashCat的一些常見用法,希望能夠讓大家更快的學會HashCat的使用。本人剛接觸Hashcat不久,如果文章有什么缺點或不足也希望大家能夠及時提出,在使用過程當中有什么疑問可以跟帖提問。如果想要更加詳細的了解HashCat,請大家參閱官方文檔:http://hashcat.net/wiki/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM