zoukankan      html  css  js  c++  java
  • 【总结】关于彩虹表学习阶段性总结

    PS:这玩意偶前几天用了一下,确实强悍无比,在这个表面前,md5、sha1等公开的加密算法不堪一击啊。听说以后md5、sha1这类加密算法都要被淘汰了,sha256要大行其道了。

    彩虹表(Rainbow Table)是一种破解哈希算法的技术,是一款跨平台密码破解器,主要可以破解MD5、HASH等多种密码。它的性能非常让人震惊,在一台普通PC上辅以NVidia CUDA技术,对于NTLM算法可以达到最高每秒103,820,000,000次明文尝试(超过一千亿次),对于广泛使用的MD5也接近一千亿次。更神奇的是,彩虹表技术并非针对某种哈希算法的漏洞进行攻击,而是类似暴力破解,对于任何哈希算法都有效。

    一、彩虹表原理

    先讲述一些基本概念:

    Tables

    可以说长期进行密码学研究的人很少有不知道这个的。在很多年前,国外的黑客们就发现单纯地通过导入字典,采用和目标同等算法破解,其速度其实是非常 缓慢的,就效率而言根本不能满足实战需要。之后通过大量的尝试和总结,黑客们发现如果能够实现直接建立出一个数据文件,里面事先记录了采用和目标采用同样 算法计算后生成的Hash散列数值,在需要破解的时候直接调用这样的文件进行比对,破解效率就可以大幅度地,甚至成百近千近万倍地提高,这样事先构造的 Hash散列数据文件在安全界被称之为Table表(文件)。

    Rainbow Tables

    最出名的Tables是Rainbow Tables,即安全界中常提及的彩虹表。彩虹表就是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对MD5算法的,各种算法的都有,有了它可以快速的破解各类密码。越 是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是100G以上,目前主要的算法有LM, NTLM, MD5, SHA1, MYSQLSHA1, HALFLMCHALL, NTLMCHALL, ORACLE-SYSTEM, MD5-HALF。

    原理

    (在网上也找了一些,大部分都是直译过来的,看得人不知所云,这里以后再补上吧。)

    二、获得彩虹表

    彩虹表可以使用RainbowCrack或Cain来生成,也可以到网上下载,国外有大牛共享出来的。表分割得越细,成功率就越高,生成的表体积也越大,所需时间也越长。但下载比生成快得多,有人做过测试,4核4GB内存的机器,生成2GB彩虹表,需要花 费7天时间,而7天按2MB的带宽(256K/S左右)几乎可以下载48GB左右,效率明显要超过生成。当然,你要是有超级计算机群生成的话,也不妨自己 生成。对于广大网络安全爱好者来说,还是直接下载来得靠谱!

    RainbowCrack生成

    RainbowCrack 是一个使用内存时间交换技术(Time-Memory Trade-Off Technique)加速口令破解过程的口令破解器。RainbowCrack使用了彩虹表,也就是一张预先计算好的明文和散列值的对照表。通过预先花费 时间创建这样的彩虹表,能够在以后破解口令时节约大量的时间。
    软件下载地址:http://www.project-rainbowcrack.com ,这也是官方的下载地址,网站上有具体的使用方法(http://www.project-rainbowcrack.com/crack.htm),这里就不再赘述。

    Cain生成

    cain也是一个强大的工具,网上很容易就可以找到下载地址,具体使用方法参见我的另一篇博文(http://www.cnblogs.com/phpCHAIN/p/3515115.html)。

    网上下载

    下载链接:①http://freerainbowtables.mirror.garr.it/mirrors/freerainbowtables/

    http://freerainbowtables.mirror.garr.it/mirrors/freerainbowtables/RTI2/md5/

    这2个地址都是官方的,第①个很早以前出来的,第②个是后来出来的。

    三、彩虹表格式

    下载到的彩虹表一般格式是(hash_algorithm)_(plain_charset)#(plain_len_min)-(plain_len_max)_(rainbow_table_index)_(rainbow_chain_length)X(rainbow_chain_count)_(file_title_suffix)-(bench).rt

    如:lm_alpha#1-7_0_2100x8000000_yeetrack.rt

    其中,hash_algorithm:指定密码的加密算法,包括lm, md5, sha1,mysqlsha1等,其中lm是windows密码的加密算法。

    plain_charset指定密码的字符集一般有大写字母、小写字母、数字和特殊字符。详细参数信息如下:

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

    plain_len_min 指定密码的最小长度。

    plain_len_max指定密码的最大长度。

    rainbow_table_index指定彩虹表的索引。

    rainbow_chain_length指定彩虹链的长度。

    rainbow_chain_count指定要生成彩虹链的个数。

    file_title_suffix指定生成的彩虹表文件名的注释。

    bench 用户性能测试。

    再说说下载的彩虹表的后缀,分2种。一种是由.bin .index .start这3个文件类型组成,这是用来破解lm加密算法的,可以用ophcrack软件;还有一种是以.rt或.rtc结尾的,可以用rainbowcrack软件。后来由.rt发展出来.rti和.rti2,这2中是用rcracki.exe来跑的,rainbowcrack是不支持这2中格式的。有别于传统的.rt格式,.rti比.rt的多了一个目录.index文件,据说遍列速度比.rt的更快(未曾对比过,无法确定是否属实),而rti2就是在rti后来发展出来的。

    四、彩虹表的使用

    彩虹表工具很多,常用到的彩虹表工具有Ophcrack、rainbowcrack、rcracki_mt、Cain等。

    Ophcrack

    下载地址:http://ophcrack.sourceforge.net/tables.php

    特点:不支持md5破解,最常用的,界面友好,与众不同,压缩储存,有自己独特的彩虹表结构,还有Live CD。

    支持的HASH类型:LM,NTLM

    扩展名:.bin .index .start

    RainbowCrack

    下载地址:http://project-rainbowcrack.com/table.htm

    特点:通用的,一般的破解软件如saminside都支持,命令行界面,黑客的最爱,支持CUDA。

    支持HASH类型:LM, NTLM, MD5, SHA1, MYSQLSHA1, HALFLMCHALL, NTLMCHALL

    扩展名:rt

    Rcracki_mt

    下载地址:http://sourceforge.net/projects/rcracki/

    特点:只支持MD5 32位加密的,不支持16位的。

    支持HASH类型:LM, NTLM, MD5, SHA1, MYSQLSHA1, HALFLMCHALL, NTLMCHALL

    扩展名:rti, rti2

    Cain

    下载地址:http://www.onlinedown.net/soft/53494.htm

    具体使用方法参见我的另一篇博文(http://www.cnblogs.com/phpCHAIN/p/3515115.html)。

    彩虹表的使用方法很简单,这里就只以rcracki_mt破解md5为例了。

    进入到rcracki_mt.exe安装目录,破解单个md5,格式:rcracki_mt.exe -h f96b697d7cb7938d525a2f31aaf161d0 D:/rt/*.rti 
    破解多个md5,格式:rcracki_mt.exe -l hash_list_file.txt D:/rt/*.rti
    其中D:/rt是存放彩虹表的路径,hash_list_file.txt是存放md5值的文件,一行填一个hash

     下面是具体例子

    D:/test>rcracki_mt.exe -h f96b697d7cb7938d525a2f31aaf161d0 *.rti  
    Using 1 threads for pre-calculation and false alarm checking...  
    Found 4 rainbowtable files...  
     
    md5_hybrid(loweralpha#6-6,numeric#1-3)#0-0_0_10000x63130363_distrrtgen[p][i]_0.rti:  
    reading index... 57605680 bytes read, disk access time: 0.84 s  
    reading table... 505042904 bytes read, disk access time: 8.34 s  
    verifying the file... ok  
    searching for 1 hash...  
    cryptanalysis time: 32.02 s  
     
    md5_hybrid(loweralpha#6-6,numeric#1-3)#0-0_1_10000x63248067_distrrtgen[p][i]_0.rti:  
    reading index... 57605581 bytes read, disk access time: 0.98 s  
    reading table... 505984536 bytes read, disk access time: 7.53 s  
    verifying the file... ok  
    searching for 1 hash...  
    cryptanalysis time: 31.97 s  
     
    md5_hybrid(loweralpha#6-6,numeric#1-3)#0-0_2_10000x63196772_distrrtgen[p][i]_0.rti:  
    reading index... 57605581 bytes read, disk access time: 0.94 s  
    reading table... 505574176 bytes read, disk access time: 8.13 s  
    verifying the file... ok  
    searching for 1 hash...  
    cryptanalysis time: 32.14 s  
     
    md5_hybrid(loweralpha#6-6,numeric#1-3)#0-0_3_10000x63223300_distrrtgen[p][i]_0.rti:  
    reading index... 57605614 bytes read, disk access time: 0.86 s  
    reading table... 505786400 bytes read, disk access time: 8.25 s  
    verifying the file... ok  
    searching for 1 hash...  
    cryptanalysis time: 31.88 s  
     
    statistics  
    -------------------------------------------------------  
    plaintext found:          0 of 1 (0.00%)  
    total disk access time:   35.88 s  
    total cryptanalysis time: 128.00 s  
    total chain walk step:    199940004  
    total false alarm:        25587  
    total chain walk step due to false alarm: 94671091  
     
    result  
    -------------------------------------------------------  
    f96b697d7cb7938d525a2f31aaf161d0        <notfound>      hex:<notfound>  

     总结到这里就告一段落了,也不知道讲没讲清楚,不清楚的@世人皆醒我独醉,大家互相探讨。

     

  • 相关阅读:
    centos基于.net的第一个asp项目
    centos创建第一个 .NET app
    centos搭建.net3.1环境
    ASP.NET Core 的 Docker 映像
    centos+python2+django+nginx+uwsgi环境搭建
    centos+python2+flask+nginx+uwsgi环境搭建
    centos+python2+apache2+flask环境搭建
    小程序字体转换
    小程序播放语音之wx.createInnerAudioContext()
    小程序隐藏scroll-view滚动条的实现
  • 原文地址:https://www.cnblogs.com/phpCHAIN/p/3514800.html
Copyright © 2011-2022 走看看