john-彩虹表攻击

本文介绍了彩虹表作为一种预计算的密码哈希值与明文密码对应表,如何通过JohntheRipper进行快速破解。重点讨论了加盐技术如何增强密码安全性,以及彩虹表的生成原理、使用方法和获取途径。
摘要由CSDN通过智能技术生成

介绍

彩虹表是一种预先计算好的密码哈希值和明文密码的对应关系表。John the Ripper可以使用彩虹表进行密码破解,避免了实时计算哈希值的过程,从而提高破解速度。然而,彩虹表攻击的效果受限于所使用的彩虹表的大小和覆盖范围。

彩虹表破解仅适用于密码未加盐值的情况下使用

关于盐值

(Salt),在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”。
安全因素

通常情况下,当字段经过散列处理(如MD5),会生成一段散列值,而散列后的值一般是无法通过特定算法得到原始字段的。但是某些情况,比如一个大型的彩虹表,通过在表中搜索该MD5值,很有可能在极短的时间内找到该散列值对应的真实字段内容。

加盐后的散列值,可以极大的降低由于用户数据被盗而带来的密码泄漏风险,即使通过彩虹表寻找到了散列后的数值所对应的原始内容,但是由于经过了加盐,插入的字符串扰乱了真正的密码,使得获得真实密码的概率大大降低。

原理

虹表存储预先计算好的哈希链。例如P代表可能的密码集合,Q是哈希后的集合,即Q=H(P); R代表reduction function(缩减函数),即将哈希值转变成一个key。彩虹表的生成过程如下:

先随机生成一个p0,对p0进行一次H(hash)操作,然后再R(reduction)操作,再H,形成一条hash链,即过程如下:
p0-H->q1-R->p1-H- >q2-R->p2-.....-H->q(n-1)-R->p(n-1)-H->qn-R->pn
表中会存在很多这种哈希链,比如对q(与查询的哈希值)进行破解,对p进行一次R操作,及pR->c1(结果记成c1),拿c1和pn进行比较(即和一条链的终点进行比较),如果可以,则找到这条链的起点p0,找到这条链,直到找到q,破解后的密码就是p(n-1)。有时候从起点进行查找,找不到q,原因可能就是在碰撞点进行了合并。

使用

如果有一个预先计算好的彩虹表文件 "rainbowtable.txt" ,其中包含了一系列密码哈希值和对应的明文密码,我们可以使用John the Ripper执行彩虹表攻击,命令如下:

john --format=raw --show --rainbow-table=rainbowtable.txt hash.txt

"--format=raw"指定了密码哈希值的格式为原始格式,"--show"用于显示破解结果,"--rainbow-table=rainbowtable.txt"指定了使用的彩虹表文件,"hash.txt"是存储密码哈希值的文件。

获取

以下是在网上查阅的资料:

彩虹表下载:List of Rainbow Tables

可以自己编程生成彩虹表,也可以使用RainbowCrack或Cain等软件来生成,彩虹表的生成时间与字符集的大小、哈希链的长度成正比(主流的彩虹表的大小普遍在100G以上,想要自己生成是几乎不可能的事)

彩虹表工具:(RainbowCrack) ​RainbowCrack - Crack Hashes with Rainbow Tables

                                                      Rainbow Table File Format

通用的,一般的破解软件如saminside都支持,命令行界面,黑客的最爱,支持CUDA,可以自己生成表,支持HASH类型:LM, NTLM, MD5, SHA1, MYSQLSHA1, HALFLMCHALL, NTLMCHALL,扩展名:rt

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
John-Theo是一个机器翻译服务提供商,他们的主打产品是Google Translate Server(谷歌翻译服务器)。 Google Translate Server是一个强大的在线翻译服务,提供多种语言之间的互译。它的能力和质量得益于谷歌强大的机器学习和人工智能技术。Google Translate Server基于大量的双语语料库,并使用先进的神经网络模型进行训练和优化。通过不断学习和改进,它能够识别和理解各种语言的语法、句法和语境。 使用Google Translate Server非常简便,用户只需输入待翻译文本,选择源语言和目标语言,点击翻译按钮即可获得快速的翻译结果。这个服务器不仅支持常见的语言如英语、法语、德语、西班牙语等,还覆盖了许多其他语言如中文、阿拉伯语、俄语、日语等。 Google Translate Server的应用非常广泛。它能够帮助人们在国际交流中消除语言障碍,促进不同国家和文化之间的交流与合作。它也是学习外语和翻译工作的有力助手,可以快速准确地翻译大量文本。 然而,尽管Google Translate Server在翻译的速度和准确度上取得了很大进展,但由于机器翻译的局限性,它仍然无法完全替代人工翻译。在某些情况下,特别是涉及到复杂的专业领域、俚语、文化特色等方面,Google Translate Server可能会出现一些错误或不准确的翻译结果。因此,在使用Google Translate Server时,我们仍然需要慎重对待翻译结果,并结合自己的语言能力和实际情况做出判断。 总的来说,John-Theo的Google Translate Server是一个功能强大、易用的在线翻译服务,可以帮助人们迅速获取翻译结果,解决跨语言交流的问题,但在一些特殊场景下仍然需要谨慎使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值