专栏首页信安之路利用彩虹表破解Hash

利用彩虹表破解Hash

本文以RainbowCrack为例来利用彩虹表破解hash。

RainbowCrack简介

另一款相对比较实用的hash破解工具,其本质是基于事先生成好的对应的各种散列类型的彩虹表,支持GPU[amd/英伟达]加速,通常自己都是专门用来跑windows系统用户密码hash[ntlm]的,想比之下,要比之前所介绍的两款hash工具弱很多,虽然没那么智能,但它使用非简单,极易上手,平台支持也相对比较好,此次暂以win平台为例进行简单演示

关于 RainbowCrack 套件的基本使用流程

创建彩虹表[rtgen] -> 对彩虹表进行排序[rtsort] -> 开始真正的hash破解过程[rcrack]

开始创建彩虹表

简单来说,彩虹表内部其实就是由所有可能组合的明文和其所对应的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类型的彩虹表只能用于破解对应类型的hashcharset             明文所使用的字符集范围,比如,大小写字母,数字,特殊字符等等...
plaintext_len_min   指定明文密码最小长度
plaintext_len_max	指定明文密码最大长度,它会按所你给定的长度,来生成hash,范围越大,组合自然就越多,彩虹表也就会越大 
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 彩虹表

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都要简单的太多太多了呢,嘿嘿……是的,确实非常简单,大家实际破解中,大可根据自己的实际需求和喜好来,优秀工具很多,面面俱到,不太现实,找个容易上手的,能干活儿就行。

本文分享自微信公众号 - 信安之路(xazlsec),作者:klion

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 初探密码破解工具JTR

    JTR是John The Ripper的缩写本身是用来专门破解linux系统用户hash的,但现在已经不再那么局限了,它同样也提供了非常多的散列类型,虽然,跟h...

    信安之路
  • 密码破解那些事

    最近恰巧刚好搞到一批hash,所以就寻思着,要不顺手小结一点关于hash破解的东西吧,反正经常要用,就当留备忘了,顺便也分享给大家,主要还是希望大家都能在实际渗...

    信安之路
  • ring3层恶意代码实例汇总

    之前一期我们学习了 IAT 的基本结构,相信大家对 C++ 有了一个基本的认识,这一期放点干货,我把 ring3 层恶意代码常用的编程技术给大家整理了一下,所有...

    信安之路
  • 【C语言笔记】变量的初始值是?

    可见,全局变量的默认初值为0。局部变量的默认是随机的,没有规律的。所以,我们在使用局部变量之前应该首先进行初始化,否则可能会出现意想不到的错误。

    正念君
  • Linux 基础快速入门教程:全栈必备基础知识

    Linux 几乎无处不在,不论是服务器构建,还是客户端开发,操作系统的基础技能对全栈来说都是必备的。

    小小科
  • linux下3种高效Kill掉所有python进程的方法(包括编写运行脚本 .sh)

    linux下3种kill所有python进程的方法 这篇文章主要介绍了linux下3种kill所有python进程的方法,需要的朋友可以参考下

    陈哈哈
  • Mac下使用iTerm2保存ssh登录密码方便无密登录

    mac下使用iTerm2,通过命令ssh需输入密码访问liunx,现在跟大家分享一个无密的方法。

    飞奔去旅行
  • dirsearch:基于Python的网站目录结构扫描器

    dirsearch是一个基于python的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件。 ? 系统支持 WindowsXP/7/8/10 GNU/L...

    FB客服
  • Linux常用命令速查-网络管理

    Java学习录
  • 【NLP】一文完全搞懂序列标注算法

    序列标注模型用到了长短期记忆网络(LSTM),条件随机场(CRF),Highway网络,本文循序渐进的介绍了序列标注算法,Be patience ! 跟着小编的...

    yuquanle

扫码关注云+社区

领取腾讯云代金券