现在的位置: 首页 > 综合 > 正文

RainbowCrack:极具创新性的密码哈希破解器

2014年08月24日 ⁄ 综合 ⁄ 共 2521字 ⁄ 字号 评论关闭

RainbowCrack是一个使用内存时间交换技术(Time-Memory Trade-Off Technique)加速口令破解过程的口令破解器。RainbowCrack使用了彩虹表,也就是一张预先计算好的明文和散列值的对照表。通过预先花费时间创建这样的彩虹表,能够在以后破解口令时节约大量的时间。

AD:2013云计算架构师峰会课程资料下载

RainbowCrack是一个使用内存时间交换技术(Time-Memory Trade-Off Technique)加速口令破解过程的口令破解器。RainbowCrack使用了彩虹表,也就是一张预先计算好的明文和散列值的对照表。通过预先花费时间创建这样的彩虹表,能够在以后破解口令时节约大量的时间。

下载链接:http://down.51cto.com/data/149270

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

命令行各参数的意义和取值如表所示。

表 彩虹表生成器使用的参数

参    数
取    值 意    义
Hash_algorithm lm, md5, sha1 散列算法,其中lm表示LANMAN,为Windows口令的散列方法
plain_charset alpha, alphanumeric, alphanumeric- symbol14, all, numeric, loweralpha, lower-alphanumeric1 明文所用字符集,使用byte表示将256个字符全作为字符集
plain_len_min 数字 明文的最小长度
plain_len_max 数字 明文的最大长度
rainbow_table_index 数字 彩虹表的索引
rainbow_chain_length 数字 彩虹链长度
rainbow_chain_count 数字 要生成彩虹链的个数
file_title_suffix 字符串 添加到文件标题后面的字符串,用于书写彩虹表的注释
-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

除非我们已经对密码分析和内存时间交换技术训练有素,否则就应该使用建议值创建自己的彩虹表。示例8-9演示了如何创建一个128MB的彩虹表。

示例:创建一个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.

创建彩虹表可能要花费数小时、甚至数天的时间。在生成了彩虹表之后,我们会在当前目录下找到一个名称为lm_alpha#1-7_0_2100x8000000_all.rt的文件,其中all是我们在命令中输入的文件后缀。

接下来的工作是使用彩虹表排序程序(rtsort.exe)进行排序,目的是加快彩虹表的查找速度。这个命令的语法很简单,格式为:

rtsort rainbow_table_pathname

其中rainbow_table_pathname是要排序彩虹表的文件名。例如,排序前面创建的彩虹表,可以使用下面的命令:

C:\rainbowcrack-1.2-win>rtsort lm_alpha#1-7_0_2100x8000000_all.rt

这个命令需要执行几分钟的时间。

最后,使用彩虹表破解程序(rcrack.exe)破解散列值。对于Windows口令破解来说,需要从SAM数据库中提取出散列值,我们可以使用Pwdump程序来完成这个任务,该程序可以从http://www.bindview.com/Services/razor/Utilities/Windows/pwdump2_readme. cfm处下载。使用下面的命令将Windows口令散列值转储到文件hashes.txt中:

C:\rainbowcrack-1.2-win>pwdump2.exe > hashes.txt

得到了口令的散列值之后,就可以使用口令破解程序rcrack.exe和已经排好序的彩虹表进行口令破解了:

C:\rainbowcrack-1.2-win>rcrack alpha#1-7_0_2100x8000000_all.rt -f hashes.txt

虽然创建彩虹表是要花费大量的时间,但是,一旦创建了彩虹表之后,口令的破解速度就会大大提高。通常需要数小时才能够破解的口令可能在使用预定义的彩虹表之后仅仅花费数秒钟的时间就破解出来。

原文章地址:点击打开链接 

抱歉!评论已关闭.