APT404-不作恶

在路上,一直在路上!

利用 Rainbowcrack 快速破解 Ntlm



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


0x02 关于 RainbowCrack 套件的基本使用流程,如下

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


0x03 开始创建彩虹表
    简单来说,彩虹表内部其实就是由所有可能组合的明文和其所对应的hash组成,类似nosql中的键值对形式[难道是因为这样效率就会很高吗,其实具体的数据结构自己也并不是非常清楚,还是那句话,实际渗透中能上就好],其实说白点还是基于字典,只不过这个字典是经过优化的,rtgen具体参数作用如下:

1
# rtgen.exe hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index

rtgen.exe

1
2
3
4
5
6
7
8
生成指定散列类型的彩虹表,不同的散列类型,只能用其对应类型的彩虹表,比如,你要破解NTLM的hash,就要用NTLM的彩虹表
明文所使用的字符集范围,比如,大小写字母,数字,特殊字符等等...
指定明文密码最小长度
指定明文密码最大长度,它会按所你给定的长度,来生成对应的hash,范围越大,组合自然就越多,彩虹表也就会越大
彩虹表索引[其实是指生成彩虹表的最大单文件个数]
彩虹链长度[单文件密码串长度]
彩虹连数量[数量越大密码就越多]
其实是彩虹表的标识[比如有很多单文件,它们就是靠这个标识来判断是否属于同一个彩虹表]

RainbowCrack支持的一些散列类型:

1
2
3
4
5
lm
ntlm 可能是用的最多的,我自己一般都是为了跑它才用的
md5
sha1
.......

RainbowCrack 支持的所有字符集:

1
2
3
4
5
6
7
8
9
10
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!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/ ]

更多详细内容请直接参考官方文档:

1
http://project-rainbowcrack.com/documentation.htm

实例生成彩虹表,创建的过程可能会非常耗时,尤其当你的彩虹连数量和字符集范围特别大,机器性能又不是特别好的情况下,跑上好几天都很正常,不过好在,一次生成好,即可永久使用,前提是你的硬盘要能装下才行:

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



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



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



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


可以看到,在生成彩虹表的过程中,cpu基本一直是保持百分百,吃的比较狠,不过,这也相对正常

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

1
# rtsort.exe md5_numeric#1-4_5_3800x33554432_0.rt


0x05 上述准备工作完成后,就可以开始我们的hash破解过程了,如下是rcrack的简单使用帮助

1
2
3
4
-h hash                破解单条hash
-l hash_list_file 从指定的文件中读取hash
-f pwdump_file 导入pwdump获取的lm hash
-n pwdump_file 导入pwdump获取的ntlm hash

实例破解md5 hash,关于其他的类型,大家可自行尝试,自己的机器性能实在有限,就暂时先到这里吧:

1
# rcrack.exe md5_numeric#1-4_5_3800x33554432_0.rt -l hash.txt



0x06 后话
    是不是感觉RainbowCrack使用非常简单呢,起码比之前的hashcat和john都要简单的太多太多了,嘿嘿……是的,自己也觉得,全程傻瓜化,并不需要你知道太多的内部工作细节,大家实际破解中,大可根据自己的实际需求和喜好来,优秀工具很多,面面俱到,毕竟不太现实,找个容易上手的即可,关键是能干活儿就行