登录
首页 >  文章 >  软件教程

彩虹表破解Hash的终极攻略

时间:2025-05-09 19:11:36 390浏览 收藏

本文以RainbowCrack为例,详细介绍了如何利用彩虹表破解hash。RainbowCrack是一款基于预先生成的各种散列类型的彩虹表的hash破解工具,支持GPU加速,常用于破解Windows系统用户密码hash(NTLM)。文章详细讲解了RainbowCrack的使用流程,包括创建彩虹表、排序彩虹表以及实际破解hash的步骤,并提供了具体的命令示例,帮助读者掌握这款工具的使用方法。

本文以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!@#$%^&*()-_+=~`[]{}|\:;"',.?/ ]

更多详细内容请参考官方文档:http://project-rainbowcrack.com/documentation.htm

实际测试实例生成彩虹表的过程可能非常耗时,尤其是在彩虹链数量和字符集范围很大时,可能需要几天时间,但一旦生成好,即可永久使用:

rtgen md5 numeric 1 4 5 3800 33554432 0

创建1到4位的由纯数字组成的md5 hash彩虹表

利用彩虹表破解Hash

rtgen ntlm numeric 1 2 5 3800 33554432 0

创建1到2位的由纯数字组成的ntlm hash彩虹表

利用彩虹表破解Hash

rtgen sha1 numeric 1 4 5 3800 33554432 0

创建1到4位的由纯数字组成的sha1 hash彩虹表

利用彩虹表破解Hash

rtgen lm numeric 1 4 5 3800 33554432 0

创建1到4位的由纯数字组成的lm hash彩虹表

利用彩虹表破解Hash

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

利用彩虹表破解Hash

彩虹表创建成功后,需要立即对其进行排序,如下:

rtsort.exe md5_numeric#1-4_5_3800x33554432_0.rt

利用彩虹表破解Hash

正式开始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

利用彩虹表破解Hash

后话你是否觉得RainbowCrack非常简单?至少比之前的hashcat和john简单很多。是的,确实非常简单。在实际破解中,你可以根据自己的需求和喜好选择工具,优秀的工具很多,面面俱到不太现实,找一个容易上手且能完成任务的工具就足够了。

文中关于GPU加速,NTLM,RainbowCrack,彩虹表,hash破解的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《彩虹表破解Hash的终极攻略》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>