首页 > 其他分享 >密码学基础:最快的哈希逆向方法彩虹表技术

密码学基础:最快的哈希逆向方法彩虹表技术

时间:2024-08-11 15:52:11浏览次数:15  
标签:彩虹 逆向 numeri 32 rtmerge 哈希 密码学 rt2rtc

文章目录

一、前期准备

1.1 前缀知识

哈希函数:是一种从任何一种数据中创建数字“指纹” 的方法。 散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。 该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。 散列值通常用一个短的随机字母和数字组成的字符串来代表。

1.2 工具准备

kali

二、彩虹表技术

2.1 什么是彩虹表?

彩虹表是一种预先计算的表,用于缓存加密哈希函数的输出,通常用于破解长度固定且包含的字符范围固定的密码(如信用卡、数字等)。表通常用于恢复由有限字符集组成的长度不超过一定长度的密钥派生函数。它是空间与时间权衡的一个实际例子,与每次尝试都计算哈希值的暴力攻击相比,它使用更少的计算机处理时间和更多的存储空间。

彩虹表是马丁·赫尔曼早期提出的简单算法的应用。

注意:黑客逆向出散列的密码时,并不能仅通过输入散列后的用户加密摘要来提升权限,如果这样,认证系统会将加密摘要再次进行加密,产生与存储的加密摘要不匹配的摘要。为了提升权限,黑客需要产生一个相同加密摘要的密码。

2.2 彩虹表预先计算的散列链原理

这里简单说一下
获取字符串的哈希值 在哈希值中通过简单函数减少它创建一个新的字符串,使用相同的哈希算法对这个新的哈希字符串进行哈希值计算,依次重复此操作直到达到链的末端。
wikipedia 解释

假设有哈希方程H和有限的密码集合P,需要预先计算出一个数据结构来决定哈希方程H的任一输出结果h是否可以通过密码集合P里面的一个元素p经哈希函数H§=h得到。实现这一目的的最简单的方法是计算出P集合内所有密码p的哈希值H§。但是这个方法需要的储存空间为Θ(|P|n),(n代表哈希函数H的一个输出值的大小)对于较大的|P|,其对于存储空间的要求会过高

哈希链可以用来减少对于储存空间的需求。大致想法是通过定义一个归约函数(上述所说的简单函数)(reduction
function)R来映射散列值h在集合P中对应的密码p。(注意,这里的归约函数并不是真正意义上哈希函数的反函数。)通过交替施行哈希函数与归约函数,形成交替的明文与哈希值。

在这里插入图片描述
这里的归约函数的唯一要求就是能将任意散列值映射为特定字符的纯文本值。

2.3 其他通过加密摘要攻击用户密码的技术

穷举攻击:穷举攻击尝试每一种可能的密码组合,逐个将其转换为哈希值,直到找到匹配的哈希值为止。缺点是需要读取依次读取每行数据。

哈希链攻击(Hash Chain Attack):是一种类似彩虹表的技术,通过生成哈希链,将哈希结果再输入到哈希函数中,直到生成较短的哈希表。这种链表可以在生成和查找过程中减少存储空间,但牺牲了查找时间。

掩码攻击(Mask Attack):穷举攻击的优化,在已知密码的结构的情况下进行高效爆破。

长度扩展攻击(Length extension attack):攻击者可以利用H(消息1)和消息1的长度,不知道消息1内容的情形下,将攻击者控制的消息2计算出H(消息1 ‖ 消息2)。

总的来说,彩虹表攻击是最快的散列值爆破技术,但是占用的存储空间也更多,一般的彩虹表规格都要达到几百GB。

2.4 彩虹表存储规格

算法表 ID字符集明文长度密钥空间成功率表大小
LMimglm_ascii-32-65-123-4#1-7ASCII-32-65-123-41 至 77,555,858,447,479 ≈ 2 42.899.9%27 GB
NTLMimgntlm_ascii-32-95#1-7ASCII-32-951 至 770,576,641,626,495 ≈ 2 46.099.9%52 GB
NTLMimgntlm_ascii-32-95#1-8ASCII-32-951 至 86,704,780,954,517,120 ≈ 2 52.696.8%460 GB
NTLMimgntlm_mixalpha-numeric#1-8混合字母数字1 至 8221,919,451,578,090 ≈ 2 47.799.9%127 GB
NTLMimgntlm_mixalpha-数字#1-9混合字母数字1 至 913,759,005,997,841,642 ≈ 2 53.696.8%690 GB
NTLMimgntlm_loweralpha-数字#1-9小写字母数字1 至 9104,461,669,716,084 ≈ 2 46.699.9%65 GB
NTLMimgntlm_loweralpha-数字#1-10小写字母数字1 至 103,760,620,109,779,060 ≈ 2 51.796.8%316 GB
MD5imgmd5_ascii-32-95#1-7ASCII-32-951 至 770,576,641,626,495 ≈ 2 46.099.9%52 GB
MD5imgmd5_ascii-32-95#1-8ASCII-32-951 至 86,704,780,954,517,120 ≈ 2 52.696.8%460 GB
MD5imgmd5_mixalpha-数字#1-8混合字母数字1 至 8221,919,451,578,090 ≈ 2 47.799.9%127 GB
MD5imgmd5_mixalpha-数字#1-9混合字母数字1 至 913,759,005,997,841,642 ≈ 2 53.696.8%690 GB
MD5imgmd5_loweralpha-numeric#1-9小写字母数字1 至 9104,461,669,716,084 ≈ 2 46.699.9%65 GB
MD5imgmd5_loweralpha-numeric#1-10小写字母数字1 至 103,760,620,109,779,060 ≈ 2 51.796.8%316 GB
SHA1imgsha1_ascii-32-95#1-7ASCII-32-951 至 770,576,641,626,495 ≈ 2 46.099.9%52 GB
SHA1imgsha1_ascii-32-95#1-8ASCII-32-951 至 86,704,780,954,517,120 ≈ 2 52.696.8%460 GB
SHA1imgsha1_mixalpha-数字#1-8混合字母数字1 至 8221,919,451,578,090 ≈ 2 47.799.9%127 GB
SHA1imgsha1_mixalpha-数字#1-9混合字母数字1 至 913,759,005,997,841,642 ≈ 2 53.696.8%690 GB
SHA1imgsha1_loweralpha-数字#1-9小写字母数字1 至 9104,461,669,716,084 ≈ 2 46.699.9%65 GB
SHA1imgsha1_loweralpha-数字#1-10小写字母数字1 至 103,760,620,109,779,060 ≈ 2 51.796.8%316 GB

2.6 彩虹表生成、排序、合并和转换命令

算法表 ID表生成表排序表合并表转换
LMimg lm_ascii-32-65-123-4#1-7rtgenrtsort .rtmerge .rt2rtc . -s 30 -e 34 -c 4096 -p
NTLMimg ntlm_ascii-32-95#1-7rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
NTLMimg ntlm_ascii-32-95#1-8rtgenrtsort .rtmerge .rt2rtc . -s 35 -e 37 -c 8192 -p
NTLMimg ntlm_mixalpha-numeric#1-8rtgenrtsort .rtmerge .rt2rtc . -s 32 -e 32 -c 4096 -p
NTLMimg ntlm_mixalpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 36 -e 36 -c 8192 -p
NTLMimg ntlm_loweralpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
NTLMimg ntlm_loweralpha-numeric#1-10rtgenrtsort .rtmerge .rt2rtc . -s 34 -e 38 -c 8192 -p
MD5img md5_ascii-32-95#1-7rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
MD5img md5_ascii-32-95#1-8rtgenrtsort .rtmerge .rt2rtc . -s 35 -e 37 -c 8192 -p
MD5img md5_mixalpha-numeric#1-8rtgenrtsort .rtmerge .rt2rtc . -s 32 -e 32 -c 4096 -p
MD5img md5_mixalpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 36 -e 36 -c 8192 -p
MD5img md5_loweralpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
MD5img md5_loweralpha-numeric#1-10rtgenrtsort .rtmerge .rt2rtc . -s 34 -e 38 -c 8192 -p
SHA1img sha1_ascii-32-95#1-7rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
SHA1img sha1_ascii-32-95#1-8rtgenrtsort .rtmerge .rt2rtc . -s 35 -e 37 -c 8192 -p
SHA1img sha1_mixalpha-numeric#1-8rtgenrtsort .rtmerge .rt2rtc . -s 32 -e 32 -c 4096 -p
SHA1img sha1_mixalpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 36 -e 36 -c 8192 -p
SHA1img sha1_loweralpha-numeric#1-9rtgenrtsort .rtmerge .rt2rtc . -s 31 -e 33 -c 4096 -p
SHA1img sha1_loweralpha-numeric#1-10rtgenrtsort .rtmerge .rt2rtc . -s 34 -e 38 -c 8192 -p

三、彩虹表攻击示例

3.1 安装 rainbowcrack

sudo apt-get install rainbowcrack

3.2 生成指定算法的彩虹表

语法:

rtgen 散列算法 字符集 最小长度 最大长度 表索引(标识生成的表)散列链长度 散列链数量 分隔表索引

示例

sudo rtgen md5 loweralpha 1 3 0 1000 1000 0

在这里插入图片描述
彩虹表存放位置

在这里插入图片描述
彩虹表索引排序

sudo rtsort .

在这里插入图片描述
创建一个md5散列值用于解密

echo -n "qbc" | md5sum 

在这里插入图片描述
使用rcrack爆破散列值

sudo rcrack . -h 45f78ad16bf4471d9407c0a4025d9f01

在这里插入图片描述
仅需要0.04秒就爆破出来

五、阅读资源

生成表来源:彩虹表官网
部分内容摘自:https://zh.wikipedia.org/wiki/%E5%BD%A9%E8%99%B9%E8%A1%A8

六、结语

感谢你花时间阅读这篇关于彩虹表攻击技术的文章!希望通过这篇文章,你能够初步的了解FTP响应代码的作用。希望能为你带来实用的帮助和新的知识。

在这里也需要说明一下,尽管我努力确保每个步骤和细节都准确无误,但难免会有描述不当或疏漏之处。如果在操作过程中遇到任何问题,欢迎提出宝贵意见和建议,帮助我改进和完善这篇文章。再次感谢你的支持和理解!

标签:彩虹,逆向,numeri,32,rtmerge,哈希,密码学,rt2rtc
From: https://blog.csdn.net/m0_68483928/article/details/141105280

相关文章

  • Buuctf-Mysterious另类逆向题解
    下载发现是一个exe可执行文件双击运行,输入密码123456没有任何反应,当然没反应,密码肯定不对请出IDApro,我这里用IDAProv8.3演示,把exe文件拖拽到IDA打开按shift+F12快捷键搜索字符串我们发现第二行有可疑字符串,有flag嫌疑,双击上面的welldonewelldone里“Buff3r_0......
  • C--密码学高级教程-全-
    C#密码学高级教程(全)原文:ProCryptographyandCryptanalysis协议:CCBY-NC-SA4.0一、密码学基础介绍密码学的历史很长,也很有趣。完整的密码学非技术参考,推荐破译者[1]。这本书介绍了从大约4000年前埃及人首次使用密码学到近代历史,当时密码学在两次世界大战的结局中......
  • HashMap 中处理哈希冲突,红黑树对于没有实现 Comparable 接口的 Key 处理
    背景:假设有两个对象,分别是stu和teach(都没有实现Comparable接口),将它们添加进去HashMap里,假设这两个对象发生哈希冲突,那么红黑树怎么判断它们谁在左谁在右?依据是什么?​ 当两个对象stu和teach的哈希值相同,且它们没有实现Comparable接口时,Java8的HashMap会使用t......
  • 私钥密码学
    "What'sthatyouarereading?""It'saboutCrytography.""Likesecretmessages?""Notsecret,that'sthebrilliantpart.Messagesthatanyonecanseebutnooneknowswhattheymean,unlessyouhavetheke......
  • 黑马Java零基础视频教程精华部分_15_基本查找/顺序查找、二分查找/折半查找、插值查找
    系列文章目录文章目录系列文章目录一、基本查找/顺序查找核心思想:从0索引开始挨个往后查找代码:练习:定义一个方法利用基本查找,查询某个元素在数组中的索引,数组包含重复数据。二、二分查找/折半查找核心思想:属于有序查找算法。用给定值先与中间结点比较,每次排除一半的......
  • 【实战】文件加密器进行逆向
    前言实战可以大大提高自己,学习技术的目的就是能够在实战中运用。本次实战与实际息息相关,该软件具有加密某文件的功能。界面还挺好看的,功能很简单,输入文件和PIN(4位)进加解密。这是被加密的文件需要将其进行解密,拿到flag思路因为PIN是4位,因此可以写一个python脚本,对其进行......
  • 最新雪王 type__1286 参数逆向分析,K哥带你免费喝一杯~
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • 【验证码逆向专栏】某安登录流程详解与验证码逆向分析与识别
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • Android逆向:修改APK并重打包签名
    在Android逆向中,经常需要对APK修改,然后重新打包并签名。这篇文章中,介绍了如何使用各个工具来完成这个过程。各个步骤以及所需工具:解压APK文件; 工具:apktool进行修改;     工具:看修改需求重新打包APK; 工具:apktool将APK对齐;   工具:zipalign生成密钥文件,并对AP......
  • 快速解密哈希算法利器Hasher:解密MD5、SHA256、SHA512、RIPEMD160等最佳工具
    文章目录一、工具概述1.1主要功能点1.2支持多种哈希算法二、安装方法三、使用教程四、结语一、工具概述Hasher是一个哈希破解工具,支持多达7种类型的哈希算法,包括MD4、MD5、SHA1、SHA224、SHA256、SHA384、SHA512等。它具有自动检测哈希类型、支持Windows......