利用彩虹表破解Hash
jpg 改 pdf
在前面我们讲过利用神器hashcat来破解WiFi和压缩包的密码。其原理是通过破解文件对应的hash值来实现的。本文我们简单的来看看利用彩虹表来破解hash。
关于彩虹表
rainbowCrack
本质是基于事先生成好的对应的各种散列类型的彩虹表,支持GPU加速,用来破解hash的。相比之下他没有hashcat那么强大,但它使用非简单,极易上手,平台支持也相对比较好。
特征
-
彩虹表的生成、排序、合并、转换和查找 -
支持LM、NTLM、MD5、SHA1、SHA256 和可自定义哈希算法的彩虹表 -
可自定义字符集的彩虹表 -
使用 AMD GPU 进行 GPU 加速(OpenCL 技术) -
使用 NVIDIA GPU 进行 GPU 加速(CUDA 技术) -
使用多个 GPU 进行 GPU 加速 -
支持命令行和图形用户界面 -
支持Windows 和 Linux
工具下载
我们只需到官网下载对应的程序即可。
解压后,文件如下:
生成彩虹表
所谓生成彩虹表就是生成对应的hash字典。通过跑hash字典来完成相应的hash的值。(这个和我们跑WiFi密码,需要对用的密码字典一个道理。)
格式如下
rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index
说明
-
hash_algorithm
指定生成的彩虹表对应的hash类型,不同hash类型的彩虹表只能用于破解对应类型的hash -
hashcharset
明文所使用的字符集范围,比如,大小写字母,数字,特殊字符等等... -
plaintext_len_min
指定明文密码最小长度 -
plaintext_len_max
指定明文密码最大长度,它会按所你给定的长度,来生成hash,范围越大,组合自然就越多,彩虹表也就会越大 -
table_index
彩虹表索引
示例生成一个只能解密md5的密码位数为4位(必须是4位)的纯数字的彩虹表
rtgen.exe md5 numeric 4 4 0 3000 4000 0
因为是四位数字,所以在不到1s的时间内便生成了彩虹表。如下图中的md5_numeric#4-4_0_3000x4000_0.rt
便是我们生成的彩虹表。
彩虹表的排序.
彩虹表是一串彩虹链。每条彩虹链都有一个起点和一个终点。rtsort
程序通过终点对彩虹链进行排序,使二进制搜索成为可能。运行以下命令对当前目录中的所有.rt
彩虹表进行排序:
rtsort.exe . #不要漏掉后面的点
解密MD5
rainbowCrack 解密的md5必须是32位的。我们随便找个MD5加密网站,进行加密测试。
执行解密
rcrack.exe . -h CF79AE6ADDBA60AD018347359BD144D2
可以看到,只用了0.2s的时间便得到了md5的值。
图形化工具
根据自己的GPU来使用相同的exe文件.当然rcrack_gui.exe
是可以什么GPU都能使用的,在File中Add Hashes中添加md5密文,每一行输入一组密文。
点击 Rainbow Table
中的 Search Rainbow tables
选择需要用到的彩虹表开始破解。如下GPU参与破解。
总结
rainbowCrack
相对来说是一款比较轻巧的md5破解工具。虽然没有hashcat支持的类型多。但小而巧是他最大的亮点。当然在使用GPU加速时,需要显卡的支持。如果不能正常使用显卡,建议更新驱动程序或者检查显卡是否支持CUDA
技术。