就是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对MD5算法的,各种算法的都有,有了它可以快速的破解各类密码。越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是100G以上。
RainbowCrack是一个使用内存时间交换技术(Time-Memory Trade-Off Technique)加速口令破解过程的口令破解器,这个工具可以在地址 http://project-rainbowcrack.com/下载。RainbowCrack使用了彩虹表,也就是一张预先计算好的明文和散列值的对照表。通过预先花费时间创建这样的彩虹表,能够在以后破解口令时节约大量的时间。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
命令行各参数的意义和取值如表8-4所示。
[update=1]

下面是使用彩虹表生成器的几个命令行示例:
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的彩虹表。
示例8-9:创建一个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.514.es/Pwdump7.zip处下载。使用下面的命令将Windows口令散列值转储到文件hashes.txt中:
C:\rainbowcrack-1.2-win>pwdump7.exe > hashes.txt
得到了口令的散列值之后,就可以使用口令破解程序rcrack.exe和已经排好序的彩虹表进行口令破解了:
C:\rainbowcrack-1.2-win>rcrack alpha#1-7_0_2100x8000000_all.rt -f hashes.txt
虽然创建彩虹表是要花费大量的时间,但是,一旦创建了彩虹表之后,口令的破解速度就会大大提高。通常需要数小时才能够破解的口令可能在使用预定义的彩虹表之后仅仅花费数秒钟的时间就破解出来。
rainbowcrack 是一个多功能的密码破解软件。
它不仅能够破解windows密码,
同时也是杂乱算法加密的破解利器。
比如可以破解im,md5,sha1,customizable等
其它的加密方式破解也可以很容易地添加到该软件中。
软件同时支持windows和linux系统
而且在一个系统上生成的表单可以直接转换到另一种系统上使用
用它来破解md5密码,数分钟即可让十位数内与字符密码还原,
它的功能虽然强大,但是在使用时却是比较复杂的,因此我要详细的介绍一番
第一步:
生成表单文件
下载来的软件压缩包中有几个执行程序,。
我们在破解md5密码时,要用到的是前两个可执行文件,是rcrack.exe rtgen.exe
其中的"rtgen.exe"程序就是用来生成包含预设密码表单文件的
表单文件中有许多大量的md5加密密文,rainbowcrack的原理不是暴力破解
而是通过查询预先做好的密码与密文一一对应的文件来快速破解密。优点是速度快,
缺点是生成的文件非常大,
在命令提示符窗口中,运行"rtgen.exe"命令
也可以输入cmd在那里面,找到,你解压缩文件的路径,然後运行
由於rainbowcrack是一个多功能的密码破解器,因此提示信息比较复杂,
我们只需破解md5密码,在这里可以按下面的格式生成md5密码表单:
"rtgen md5 byte 1 7 5 2400 40000 all";
命令执行後,提示"generateing...."正在生成密码文件
其中"md5"参数指定生成md5表单。
如果是破解windows密码之类的,还可以使用相应的"lm/sha1"参数
详细的,可以看帮助文件。
"byte"参数用来指定生成密码表单中所包含的明密类型为所有字符和数字
如果想破解的是纯数字密码或是纯字符密码。
可以将其改为相应的"numeric"或"alpha"参数
具体的参数可见目录下"charset.txt"文件
其中1和7分别代表密码最小和最大长度
2400代表每个表单文件中密码串的长度
数字5用来表示生成表单文件的数目
而40000则代表每个表单文件中的密码数目
後面这两个数目越大,生成表单文件的速度越慢
但是表单文件中的密码就越多。
相应的破解速度也会越快
命令执行後,提示"generateing...."正在生成密码文件
执行完毕後。就会在当前目录下生成5个文件名类似为"md5_byte#1-7_5_2004X40000_all.rt"的文件
其中"all"是我们刚才在生成命令中指定用来添加标识文件的参数
有点慢.我们先继续(这是刚才生成的表单文件)
第二步:
瞬间破解密码
生成密码表单文件後,就可以利用"rcrack.exe"文件来查询表单文件,
快速破解出指定的密码了。
直接执行命令後,即可看到程序使用帮助
从帮助信息中,我们可以看到能对单个md5密文件进行破解
也可以一次破解多个密文。
当我们要破解单个md5密码时,可以使用"-h"参数来指定要破解的密文,
假设这里要破解密文为"49ba59abbe56e057"可以输入如下命令
"rcrack *.rt -h 49ba59abbe56e057";
其中"*.rt"参数表示查询当前目录下所有密码表单文件。
如果密码表单文件制作 得好
命令执行後很快就可以从这些表单文件中找到要还原後的密码明文了
如果要一次破解多个密码。首先打开记事本。
将所有待破解的密码按行输入
保存为一个没有後缀的文件中。
这里文件名为"mima"然後执行命令:
"rcrack *.rt -l mama";
程序将会查询所有的表单文件,并将其与待破解密码文件中的密文一一对比,很快就可以将大部分的密码破
解出来了
提示一下:rainbowcrack软件可以说是md5密码的克星。我们完全可以在平时电脑不工作时,利用相当长的时间来生成个比较大的密码表单文件库