RainbowCrack:極具創(chuàng)新性的密碼哈希破解器
RainbowCrack是一個使用內(nèi)存時間交換技術(shù)(Time-Memory Trade-Off Technique)加速口令破解過程的口令破解器。RainbowCrack使用了彩虹表,也就是一張預(yù)先計算好的明文和散列值的對照表。通過預(yù)先花費時間創(chuàng)建這樣的彩虹表,能夠在以后破解口令時節(jié)約大量的時間。
下載鏈接:http://down.51cto.com/data/149270
>>去網(wǎng)絡(luò)安全工具百寶箱看看其它安全工具
RainbowCrack包含了下述實用程序:
— rtgen.exe——彩虹表生成器,生成口令、散列值對照表。
— rtsort.exe——排序彩虹表,為rcrack.exe提供輸入。
— rcrack.exe——使用排好序的彩虹表進行口令破解。
首先使用彩虹表生成器(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個字符全作為字符集
|
plain_len_min
|
數(shù)字
|
明文的最小長度
|
plain_len_max
|
數(shù)字
|
明文的最大長度
|
rainbow_table_index
|
數(shù)字
|
彩虹表的索引
|
rainbow_chain_length
|
數(shù)字
|
彩虹鏈長度
|
rainbow_chain_count
|
數(shù)字
|
要生成彩虹鏈的個數(shù)
|
file_title_suffix
|
字符串
|
添加到文件標(biāo)題后面的字符串,用于書寫彩虹表的注釋
|
-bench
|
-bench
|
測試選項,用于性能測試
|
下面是使用彩虹表生成器的幾個命令行示例:
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)對密碼分析和內(nèi)存時間交換技術(shù)訓(xùn)練有素,否則就應(yīng)該使用建議值創(chuàng)建自己的彩虹表。示例8-9演示了如何創(chuàng)建一個128MB的彩虹表。
示例:創(chuàng)建一個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)建彩虹表可能要花費數(shù)小時、甚至數(shù)天的時間。在生成了彩虹表之后,我們會在當(dāng)前目錄下找到一個名稱為lm_alpha#1-7_0_2100x8000000_all.rt的文件,其中all是我們在命令中輸入的文件后綴。
接下來的工作是使用彩虹表排序程序(rtsort.exe)進行排序,目的是加快彩虹表的查找速度。這個命令的語法很簡單,格式為:
rtsort rainbow_table_pathname
其中rainbow_table_pathname是要排序彩虹表的文件名。例如,排序前面創(chuàng)建的彩虹表,可以使用下面的命令:
C:\rainbowcrack-1.2-win>rtsort lm_alpha#1-7_0_2100x8000000_all.rt
這個命令需要執(zhí)行幾分鐘的時間。
最后,使用彩虹表破解程序(rcrack.exe)破解散列值。對于Windows口令破解來說,需要從SAM數(shù)據(jù)庫中提取出散列值,我們可以使用Pwdump程序來完成這個任務(wù),該程序可以從http://www.bindview.com/Services/razor/Utilities/Windows/pwdump2_readme. cfm處下載。使用下面的命令將Windows口令散列值轉(zhuǎn)儲到文件hashes.txt中:
C:\rainbowcrack-1.2-win>pwdump2.exe > hashes.txt
得到了口令的散列值之后,就可以使用口令破解程序rcrack.exe和已經(jīng)排好序的彩虹表進行口令破解了:
C:\rainbowcrack-1.2-win>rcrack alpha#1-7_0_2100x8000000_all.rt -f hashes.txt
雖然創(chuàng)建彩虹表是要花費大量的時間,但是,一旦創(chuàng)建了彩虹表之后,口令的破解速度就會大大提高。通常需要數(shù)小時才能夠破解的口令可能在使用預(yù)定義的彩虹表之后僅僅花費數(shù)秒鐘的時間就破解出來。