几年前自己也曾用rtgen尝试过生成彩虹表,当时摸索的很艰难,没有什么可用的资料,只能自己去对照参数去翻译,去猜测用途,总之最后也没有取得什么好的进展。最近凑巧注意到彩虹表工具Rainbowcrack和rtgen更新了(实际上是2年前更新的),而且rainbowcrack网站上有一个示例说明页了,总之比什么都没有可强多了,我尝试着把说明翻译成中文,如果有朋友要测试这款工具,可以去原网站下载,对照说明来使用,相信能比什么资料都没有强多了。
目前暂时不打算自己生成彩虹表了,看到有朋友偶尔问这个问题……主要是我的目标是NTLM彩虹表,而一个完善的NTLM彩虹表都实在太大了,对我个人来说存储成本不低,而收益并没有那么大,我需要找到更平衡的方式。总之这次就是把资料和工具都放出来,希望对朋友们有用。以下是翻译的资料。
彩虹表的生成和排序
介绍
RainbowCrack软件通过彩虹表查找来破解哈希。彩虹表是存储在硬盘上的普通文件。
本文档介绍了rtgen和rtsort程序。rtgen程序根据用户指定的参数生成彩虹表, rtsort程序对彩虹表进行后处理,以实现快速查找。
完成上述两个步骤后,彩虹表可用于通过rcrack程序破解哈希。
使用 rtgen 程序生成彩虹表
rtgen 程序的命令行语法:
rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index rtgen 哈希类型 字符集 最小位数 最大位数 表索引 链长度 链数量 索引块
生成包含 6 个彩虹表的彩虹表的示例:
rtgen md5 loweralpha-numeric 1 7 0 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 1 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 2 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 3 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 4 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 5 3800 33554432 0
选项:
hash_algorithm 哈希类型 | 彩虹表是特定于哈希算法的。某个哈希算法的彩虹表仅有助于破解该类型的哈希。 |
charset 字符集 | 字符集包括纯文本的所有可能字符。 |
plaintext_len_min 最小位数 最大位数 | 这两个参数限制了彩虹表的明文长度范围。 |
table_index 1 表索引 | table_index参数选择缩减函数。 |
chain_len 1 链长度 | 这是彩虹链的长度。更长的彩虹连锁店存储更多的明文,需要更长的时间来生成。 |
chain_num 1 链数量 | 要生成的彩虹链数。 |
part_index 索引块 | 要将大型彩虹表存储在许多较小的文件中,请对此部分使用此参数中的不同数字,并保持所有其他参数相同。 |
1 为了充分理解还原函数的含义和彩虹表的结构,阅读Philippe Oechslin的论文是必要的。
有许多彩虹表特征由表生成参数隐式确定:
Table Size 表容量 | 使用 .rt 彩虹表格式时,彩虹表的文件大小等于chain_num参数乘以16。 |
Key Space 键空间 | 键空间是可能的明文数,根据字符集和明文长度范围参数中的字符数计算得出。 |
Success Rate 成功率 | 时间记忆权衡算法是一种概率算法。 |
要开始生成第一个彩虹表,请在命令窗口中运行以下命令:
rtgen md5 loweralpha-numeric 1 7 0 3800 33554432 0
CPU将开始计算彩虹链。在具有多核处理器的系统上,所有内核都得到了充分利用。
要暂停表生成,只需按Ctrl + C , rtgen程序将退出。下次如果rtgen程序使用完全相同的参数执行,则将恢复表生成。
在一般处理器上,此命令需要数小时才能完成。
完成后,大小为 512 MB 的文件"md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt"位于当前目录中。文件名包含所有表生成参数。
现在生成剩余的 5 个彩虹表:
rtgen md5 loweralpha-numeric 1 7 1 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 2 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 3 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 4 3800 33554432 0 rtgen md5 loweralpha-numeric 1 7 5 3800 33554432 0
最后,生成了 6 个彩虹表:
536,870,912 md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt 536,870,912 md5_loweralpha-numeric#1-7_1_3800x33554432_0.rt 536,870,912 md5_loweralpha-numeric#1-7_2_3800x33554432_0.rt 536,870,912 md5_loweralpha-numeric#1-7_3_3800x33554432_0.rt 536,870,912 md5_loweralpha-numeric#1-7_4_3800x33554432_0.rt 536,870,912 md5_loweralpha-numeric#1-7_5_3800x33554432_0.rt
使用rtsort程序对彩虹表进行排序
彩虹表是彩虹链的阵列。每个彩虹链都有一个起点和一个终点。rtsort程序按端点对彩虹链进行排序,以使二进制搜索成为可能。
运行以下命令对当前目录中的所有 .rt 彩虹表进行排序:
rtsort .
切勿中断 rtsort 程序,否则,正在排序的彩虹表可能会损坏。
如果可用内存空间小于要排序的彩虹表的大小,则需要与彩虹表大小一样大的临时硬盘空间来存储中间结果。
© 2020 RainbowCrack Project
下载
Version 1.8 (August 25, 2020)
Software | Operating System | GPU Supported | Note |
Windows 7, 10 | - | ||
Windows 7, 10 | AMD GPU: gfx1010, gfx1011, gfx1012 | only works with purchased tables | |
Ubuntu 18.04, 20.04 | - | ||
Ubuntu 18.04, 20.04 | AMD GPU: gfx1010, gfx1011, gfx1012 | only works with purchased tables |
评论列表: