【總結】關於彩虹表學習階段性總結


PS:這玩意偶前幾天用了一下,確實強悍無比,在這個表面前,md5、sha1等公開的加密算法不堪一擊啊。聽說以后md5、sha1這類加密算法都要被淘汰了,sha256要大行其道了。

彩虹表(Rainbow Table)是一種破解哈希算法的技術,是一款跨平台密碼破解器,主要可以破解MD5、HASH等多種密碼。它的性能非常讓人震驚,在一台普通PC上輔以NVidia CUDA技術,對於NTLM算法可以達到最高每秒103,820,000,000次明文嘗試(超過一千億次),對於廣泛使用的MD5也接近一千億次。更神奇的是,彩虹表技術並非針對某種哈希算法的漏洞進行攻擊,而是類似暴力破解,對於任何哈希算法都有效。

一、彩虹表原理

先講述一些基本概念:

Tables

可以說長期進行密碼學研究的人很少有不知道這個的。在很多年前,國外的黑客們就發現單純地通過導入字典,采用和目標同等算法破解,其速度其實是非常 緩慢的,就效率而言根本不能滿足實戰需要。之后通過大量的嘗試和總結,黑客們發現如果能夠實現直接建立出一個數據文件,里面事先記錄了采用和目標采用同樣 算法計算后生成的Hash散列數值,在需要破解的時候直接調用這樣的文件進行比對,破解效率就可以大幅度地,甚至成百近千近萬倍地提高,這樣事先構造的 Hash散列數據文件在安全界被稱之為Table表(文件)。

Rainbow Tables

最出名的Tables是Rainbow Tables,即安全界中常提及的彩虹表。彩虹表就是一個龐大的、針對各種可能的字母組合預先計算好的哈希值的集合,不一定是針對MD5算法的,各種算法的都有,有了它可以快速的破解各類密碼。越 是復雜的密碼,需要的彩虹表就越大,現在主流的彩虹表都是100G以上,目前主要的算法有LM, NTLM, MD5, SHA1, MYSQLSHA1, HALFLMCHALL, NTLMCHALL, ORACLE-SYSTEM, MD5-HALF。

原理

(在網上也找了一些,大部分都是直譯過來的,看得人不知所雲,這里以后再補上吧。)

二、獲得彩虹表

彩虹表可以使用RainbowCrack或Cain來生成,也可以到網上下載,國外有大牛共享出來的。表分割得越細,成功率就越高,生成的表體積也越大,所需時間也越長。但下載比生成快得多,有人做過測試,4核4GB內存的機器,生成2GB彩虹表,需要花 費7天時間,而7天按2MB的帶寬(256K/S左右)幾乎可以下載48GB左右,效率明顯要超過生成。當然,你要是有超級計算機群生成的話,也不妨自己 生成。對於廣大網絡安全愛好者來說,還是直接下載來得靠譜!

RainbowCrack生成

RainbowCrack 是一個使用內存時間交換技術(Time-Memory Trade-Off Technique)加速口令破解過程的口令破解器。RainbowCrack使用了彩虹表,也就是一張預先計算好的明文和散列值的對照表。通過預先花費 時間創建這樣的彩虹表,能夠在以后破解口令時節約大量的時間。
軟件下載地址: http://www.project-rainbowcrack.com ,這也是官方的下載地址,網站上有具體的使用方法( http://www.project-rainbowcrack.com/crack.htm),這里就不再贅述。

Cain生成

cain也是一個強大的工具,網上很容易就可以找到下載地址,具體使用方法參見我的另一篇博文(http://www.cnblogs.com/phpCHAIN/p/3515115.html)。

網上下載

下載鏈接:①http://freerainbowtables.mirror.garr.it/mirrors/freerainbowtables/

http://freerainbowtables.mirror.garr.it/mirrors/freerainbowtables/RTI2/md5/

這2個地址都是官方的,第①個很早以前出來的,第②個是后來出來的。

三、彩虹表格式

下載到的彩虹表一般格式是(hash_algorithm)_(plain_charset)#(plain_len_min)-(plain_len_max)_(rainbow_table_index)_(rainbow_chain_length)X(rainbow_chain_count)_(file_title_suffix)-(bench).rt

如:lm_alpha#1-7_0_2100x8000000_yeetrack.rt

其中,hash_algorithm:指定密碼的加密算法,包括lm, md5, sha1,mysqlsha1等,其中lm是windows密碼的加密算法。

plain_charset指定密碼的字符集一般有大寫字母、小寫字母、數字和特殊字符。詳細參數信息如下:

numeric = [0123456789]

alpha = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
alpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]

loweralpha = [abcdefghijklmnopqrstuvwxyz]
loweralpha-numeric = [abcdefghijklmnopqrstuvwxyz0123456789]

mixalpha = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
mixalpha-numeric = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]

ascii-32-95 = [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~]
ascii-32-65-123-4 = [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~]
alpha-numeric-symbol32-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/ ]

plain_len_min 指定密碼的最小長度。

plain_len_max指定密碼的最大長度。

rainbow_table_index指定彩虹表的索引。

rainbow_chain_length指定彩虹鏈的長度。

rainbow_chain_count指定要生成彩虹鏈的個數。

file_title_suffix指定生成的彩虹表文件名的注釋。

bench 用戶性能測試。

再說說下載的彩虹表的后綴,分2種。一種是由.bin .index .start這3個文件類型組成,這是用來破解lm加密算法的,可以用ophcrack軟件;還有一種是以.rt或.rtc結尾的,可以用rainbowcrack軟件。后來由.rt發展出來.rti和.rti2,這2中是用rcracki.exe來跑的,rainbowcrack是不支持這2中格式的。有別於傳統的.rt格式,.rti比.rt的多了一個目錄.index文件,據說遍列速度比.rt的更快(未曾對比過,無法確定是否屬實),而rti2就是在rti后來發展出來的。

四、彩虹表的使用

彩虹表工具很多,常用到的彩虹表工具有Ophcrack、rainbowcrack、rcracki_mt、Cain等。

Ophcrack

下載地址:http://ophcrack.sourceforge.net/tables.php

特點:不支持md5破解,最常用的,界面友好,與眾不同,壓縮儲存,有自己獨特的彩虹表結構,還有Live CD。

支持的HASH類型:LM,NTLM

擴展名:.bin .index .start

RainbowCrack

下載地址:http://project-rainbowcrack.com/table.htm

特點:通用的,一般的破解軟件如saminside都支持,命令行界面,黑客的最愛,支持CUDA。

支持HASH類型:LM, NTLM, MD5, SHA1, MYSQLSHA1, HALFLMCHALL, NTLMCHALL

擴展名:rt

Rcracki_mt

下載地址:http://sourceforge.net/projects/rcracki/

特點:只支持MD5 32位加密的,不支持16位的。

支持HASH類型:LM, NTLM, MD5, SHA1, MYSQLSHA1, HALFLMCHALL, NTLMCHALL

擴展名:rti, rti2

Cain

下載地址:http://www.onlinedown.net/soft/53494.htm

具體使用方法參見我的另一篇博文(http://www.cnblogs.com/phpCHAIN/p/3515115.html)。

彩虹表的使用方法很簡單,這里就只以rcracki_mt破解md5為例了。

進入到rcracki_mt.exe安裝目錄,破解單個md5,格式:rcracki_mt.exe -h f96b697d7cb7938d525a2f31aaf161d0 D:/rt/*.rti 
破解多個md5,格式:rcracki_mt.exe -l hash_list_file.txt D:/rt/*.rti
其中D:/rt是存放彩虹表的路徑,hash_list_file.txt是存放md5值的文件,一行填一個hash

 下面是具體例子

D:/test>rcracki_mt.exe -h f96b697d7cb7938d525a2f31aaf161d0 *.rti  
Using 1 threads for pre-calculation and false alarm checking...  
Found 4 rainbowtable files...  
 
md5_hybrid(loweralpha#6-6,numeric#1-3)#0-0_0_10000x63130363_distrrtgen[p][i]_0.rti:  
reading index... 57605680 bytes read, disk access time: 0.84 s  
reading table... 505042904 bytes read, disk access time: 8.34 s  
verifying the file... ok  
searching for 1 hash...  
cryptanalysis time: 32.02 s  
 
md5_hybrid(loweralpha#6-6,numeric#1-3)#0-0_1_10000x63248067_distrrtgen[p][i]_0.rti:  
reading index... 57605581 bytes read, disk access time: 0.98 s  
reading table... 505984536 bytes read, disk access time: 7.53 s  
verifying the file... ok  
searching for 1 hash...  
cryptanalysis time: 31.97 s  
 
md5_hybrid(loweralpha#6-6,numeric#1-3)#0-0_2_10000x63196772_distrrtgen[p][i]_0.rti:  
reading index... 57605581 bytes read, disk access time: 0.94 s  
reading table... 505574176 bytes read, disk access time: 8.13 s  
verifying the file... ok  
searching for 1 hash...  
cryptanalysis time: 32.14 s  
 
md5_hybrid(loweralpha#6-6,numeric#1-3)#0-0_3_10000x63223300_distrrtgen[p][i]_0.rti:  
reading index... 57605614 bytes read, disk access time: 0.86 s  
reading table... 505786400 bytes read, disk access time: 8.25 s  
verifying the file... ok  
searching for 1 hash...  
cryptanalysis time: 31.88 s  
 
statistics  
-------------------------------------------------------  
plaintext found:          0 of 1 (0.00%)  
total disk access time:   35.88 s  
total cryptanalysis time: 128.00 s  
total chain walk step:    199940004  
total false alarm:        25587  
total chain walk step due to false alarm: 94671091  
 
result  
-------------------------------------------------------  
f96b697d7cb7938d525a2f31aaf161d0        <notfound>      hex:<notfound>  

 

 總結到這里就告一段落了,也不知道講沒講清楚,不清楚的@世人皆醒我獨醉,大家互相探討。

 


免責聲明!

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



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