<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tools/655

            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/

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线