RainbowCrack:極具創(chuàng)新性的密碼哈希破解器
RainbowCrack是一個(gè)使用內(nèi)存時(shí)間交換技術(shù)(Time-Memory Trade-Off Technique)加速口令破解過程的口令破解器。RainbowCrack使用了彩虹表,也就是一張預(yù)先計(jì)算好的明文和散列值的對(duì)照表。通過預(yù)先花費(fèi)時(shí)間創(chuàng)建這樣的彩虹表,能夠在以后破解口令時(shí)節(jié)約大量的時(shí)間。
下載鏈接:http://down.51cto.com/data/149270
>>去網(wǎng)絡(luò)安全工具百寶箱看看其它安全工具
RainbowCrack包含了下述實(shí)用程序:
— rtgen.exe——彩虹表生成器,生成口令、散列值對(duì)照表。
— rtsort.exe——排序彩虹表,為rcrack.exe提供輸入。
— rcrack.exe——使用排好序的彩虹表進(jìn)行口令破解。
首先使用彩虹表生成器(rtgen.exe)生成自己的彩虹表。其命令行格式為:
rtgen hash_algorithm \
plain_charset plain_len_min plain_len_max \
rainbow_table_index \
rainbow_chain_length rainbow_chain_count \
file_title_suffix
rtgen hash_algorithm \
plain_charset plain_len_min plain_len_max \
rainbow_table_index \
-bench
命令行各參數(shù)的意義和取值如表所示。
表 彩虹表生成器使用的參數(shù)
參 數(shù)
|
取 值
|
意 義
|
Hash_algorithm
|
lm, md5, sha1
|
散列算法,其中l(wèi)m表示LANMAN,為Windows口令的散列方法
|
plain_charset
|
alpha, alphanumeric, alphanumeric- symbol14, all, numeric, loweralpha, lower-alphanumeric1
|
明文所用字符集,使用byte表示將256個(gè)字符全作為字符集
|
plain_len_min
|
數(shù)字
|
明文的最小長(zhǎng)度
|
plain_len_max
|
數(shù)字
|
明文的最大長(zhǎng)度
|
rainbow_table_index
|
數(shù)字
|
彩虹表的索引
|
rainbow_chain_length
|
數(shù)字
|
彩虹鏈長(zhǎng)度
|
rainbow_chain_count
|
數(shù)字
|
要生成彩虹鏈的個(gè)數(shù)
|
file_title_suffix
|
字符串
|
添加到文件標(biāo)題后面的字符串,用于書寫彩虹表的注釋
|
-bench
|
-bench
|
測(cè)試選項(xiàng),用于性能測(cè)試
|
下面是使用彩虹表生成器的幾個(gè)命令行示例:
rtgen lm alpha 1 7 0 100 16 test
rtgen md5 byte 4 4 0 100 16 test
rtgen sha1 numeric 1 10 0 100 16 test
rtgen lm alpha 1 7 0 -bench
除非我們已經(jīng)對(duì)密碼分析和內(nèi)存時(shí)間交換技術(shù)訓(xùn)練有素,否則就應(yīng)該使用建議值創(chuàng)建自己的彩虹表。示例8-9演示了如何創(chuàng)建一個(gè)128MB的彩虹表。
示例:創(chuàng)建一個(gè)128MB的彩虹表。
C:\rainbowcrack-1.2-win>rtgen lm alpha 1 7 0 21 00 8000000 all
hash routine: lm
hash length: 8
plain charset: ABCDEFGHIJKLMNOPQRSTUVWXYZ
plain charset in hex: 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a
plain length range: 1 - 7
plain charset name: alpha
plain space total: 8353082582
rainbow table index: 0
reduce offset: 0
generating...
100000 of 8000000 rainbow chains generated (8 m 5 s)
done.
創(chuàng)建彩虹表可能要花費(fèi)數(shù)小時(shí)、甚至數(shù)天的時(shí)間。在生成了彩虹表之后,我們會(huì)在當(dāng)前目錄下找到一個(gè)名稱為lm_alpha#1-7_0_2100x8000000_all.rt的文件,其中all是我們?cè)诿钪休斎氲奈募缶Y。
接下來的工作是使用彩虹表排序程序(rtsort.exe)進(jìn)行排序,目的是加快彩虹表的查找速度。這個(gè)命令的語法很簡(jiǎn)單,格式為:
rtsort rainbow_table_pathname
其中rainbow_table_pathname是要排序彩虹表的文件名。例如,排序前面創(chuàng)建的彩虹表,可以使用下面的命令:
C:\rainbowcrack-1.2-win>rtsort lm_alpha#1-7_0_2100x8000000_all.rt
這個(gè)命令需要執(zhí)行幾分鐘的時(shí)間。
最后,使用彩虹表破解程序(rcrack.exe)破解散列值。對(duì)于Windows口令破解來說,需要從SAM數(shù)據(jù)庫中提取出散列值,我們可以使用Pwdump程序來完成這個(gè)任務(wù),該程序可以從http://www.bindview.com/Services/razor/Utilities/Windows/pwdump2_readme. cfm處下載。使用下面的命令將Windows口令散列值轉(zhuǎn)儲(chǔ)到文件hashes.txt中:
C:\rainbowcrack-1.2-win>pwdump2.exe > hashes.txt
得到了口令的散列值之后,就可以使用口令破解程序rcrack.exe和已經(jīng)排好序的彩虹表進(jìn)行口令破解了:
C:\rainbowcrack-1.2-win>rcrack alpha#1-7_0_2100x8000000_all.rt -f hashes.txt
雖然創(chuàng)建彩虹表是要花費(fèi)大量的時(shí)間,但是,一旦創(chuàng)建了彩虹表之后,口令的破解速度就會(huì)大大提高。通常需要數(shù)小時(shí)才能夠破解的口令可能在使用預(yù)定義的彩虹表之后僅僅花費(fèi)數(shù)秒鐘的時(shí)間就破解出來。