中国领先的IT技术网站
|
|

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

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

作者:佚名来源:网络整理|2010-12-22 11:23

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


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

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

【责任编辑:陈博文 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

基于Project2003的项目管理

本书的上一版本《基于Project 2002的项目管理》上市以后得到了读者的欢迎,为了更好地将Project 2003新版本的应用介绍给读者,我们重新进行...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× CTO训练营(深圳站)