本文以rainbowcrack为例,展示如何利用彩虹表破解hash。
RainbowCrack简介作为一款实用的hash破解工具,其核心是基于预先生成的各种散列类型的彩虹表,支持GPU(AMD/英伟达)加速,常用于破解Windows系统用户密码hash(NTLM)。与之前介绍的其他两款hash工具相比,RainbowCrack在功能上相对较弱,虽然智能性不如其他工具,但使用简单,易于上手,且平台支持度较高。本文将以Windows平台为例进行简单演示。
关于RainbowCrack套件的基本使用流程首先是创建彩虹表。简单来说,彩虹表内部是由所有可能组合的明文及其对应的hash组成,类似NoSQL中的键值对形式(这是否是高效的原因,具体的数据结构我并不完全清楚,但能用就好)。本质上,彩虹表基于字典,只不过这个字典是经过优化的。rtgen的具体参数作用如下:
rtgen.exe hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index
参数解释:
hash_algorithm 指定生成的彩虹表对应的hash类型,不同类型的彩虹表只能用于破解相应类型的hash charset 明文所使用的字符集范围,如大小写字母、数字、特殊字符等 plaintext_len_min 指定明文密码的最小长度 plaintext_len_max 指定明文密码的最大长度,长度范围越大,组合越多,彩虹表也越大 table_index 彩虹表索引(指生成彩虹表的最大单文件个数) chain_len 彩虹链长度(单文件密码串长度) chain_num 彩虹链数量(数量越大,密码就越多) part_index 彩虹表的标识(用于判断多个单文件是否属于同一个彩虹表)
常用hash类型:
lm ntlm 可能是最常用的,我通常是为了破解它而使用 md5 sha1
可用字符集:
numeric = [0123456789]
alpha = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
alpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
loweralpha = [abcdefghijklmnopqrstuvwxyz]
loweralpha-numeric = [abcdefghijklmnopqrstuvwxyz0123456789]
mixalpha = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
mixalpha-numeric = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
ascii-32-95 = [ !"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~]
ascii-32-65-123-4 = [ !"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~]
alpha-numeric-symbol32-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"',.?/ ]更多详细内容请参考官方文档:https://www.php.cn/link/d1edf20f48ee7e16b40444610da9b971
实际测试实例生成彩虹表的过程可能非常耗时,尤其是在彩虹链数量和字符集范围很大时,可能需要几天时间,但一旦生成好,即可永久使用:
rtgen md5 numeric 1 4 5 3800 33554432 0
创建1到4位的由纯数字组成的md5 hash彩虹表

rtgen ntlm numeric 1 2 5 3800 33554432 0
创建1到2位的由纯数字组成的ntlm hash彩虹表

rtgen sha1 numeric 1 4 5 3800 33554432 0
创建1到4位的由纯数字组成的sha1 hash彩虹表

rtgen lm numeric 1 4 5 3800 33554432 0
创建1到4位的由纯数字组成的lm hash彩虹表

在生成彩虹表的过程中,CPU基本一直处于百分百使用状态,这是正常现象。

彩虹表创建成功后,需要立即对其进行排序,如下:
rtsort.exe md5_numeric#1-4_5_3800x33554432_0.rt

正式开始hash破解过程,rcrack的简单使用帮助:
-h hash 破解单条hash -l hash_list_file 从指定的文件中读取hash -f pwdump_file 导入pwdump获取的lm hash -n pwdump_file 导入pwdump获取的ntlm hash
实例破解md5 hash,其他类型的破解可自行尝试,由于机器性能有限,暂且到此为止:
rcrack.exe md5_numeric#1-4_5_3800x33554432_0.rt -l hash.txt

后话你是否觉得RainbowCrack非常简单?至少比之前的hashcat和john简单很多。是的,确实非常简单。在实际破解中,你可以根据自己的需求和喜好选择工具,优秀的工具很多,面面俱到不太现实,找一个容易上手且能完成任务的工具就足够了。
以上就是利用彩虹表破解Hash的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号