解码哈希 — Crypto 101

admin 2024年7月14日10:47:25评论25 views字数 5328阅读17分45秒阅读模式
解码哈希 — Crypto 101
哈希加密 101

了解哈希的基础知识是学习密码学的重要一步。TryHackMe 室 Hashing Crypto 101 提供了简单而全面的哈希介绍。

这个房间涵盖了一些关键概念,例如什么是哈希,它是如何工作的,以及为什么它在网络安全领域是必不可少的。

在这篇博客中,我们将介绍“哈希加密 101”房间的练习和见解,帮助您掌握哈希的基础知识及其在密码学中的应用。

关键术语

明文 — 数据加密或散列,通常是文本,但并不总是像文件或纯段落本身那样。

编码 — 这不是加密,只是数据表示的原始形式,如 base64 io 十六进制。它是立即可逆的。

哈希 — 哈希是哈希函数的输出。哈希也可以用作动词。哈希意味着产生某些数据的哈希值。

蛮力 — 通过尝试每个不同的密码或密钥来攻击密码学

密码分析 — 通过发现底层数学中的弱点来攻击密码学。

回答以下问题

阅读单词,并理解其含义!
是 base64 加密还是编码

正确答案 — 编码

什么是哈希函数?

哈希函数不同于加密。没有键,这意味着不可能从输出回到输入(技术上困难)

哈希函数接受一些任何大小的输入数据,并创建该数据的摘要或“摘要”。输出是固定大小。因此,很难预测输入的输出,反之亦然。好的哈希算法对计算机来说是快速的,而反向的则是缓慢的。输入中的任何微小变化都意味着输出中的巨大变化。

您与哈希的间接交互比您想象的要多,主要是在密码的上下文中。

当 2 个不同的输入给出相同的输出时,就会发生哈希冲突。哈希函数旨在尽可能地避免这种情况,尤其是能够设计碰撞。但是根据鸽子洞效应,如果输入多于输出数量,则某些输入肯定会给出相同的输出。

同样,MD5 和 SHA1 也受到攻击,并且由于工程哈希冲突而在技术上不安全。因此,您不应信任任何一种算法来散列密码或数据。您甚至无法避免哈希冲突。

MD5 和 SHA1 受到攻击,并且由于工程哈希冲突而在技术上不安全。但是,还没有攻击同时在两种算法中产生冲突,因此如果您使用 MD5 哈希和 SHA1 哈希进行比较,您会发现它们是不同的。MD5 冲突示例可从 https://www.mscs.dal.ca/~selinger/md5collision/ 获得,SHA1 冲突的详细信息可从 https://shattered.io/ 获得。因此,您不应信任任何一种算法来散列密码或数据。

回答以下问题

MD5 哈希函数的输出大小(以字节为单位)是多少?

解码哈希 — Crypto 101

正确答案 — 16

你能避免哈希冲突吗?(是/否)

由于哈希函数将理论上无限输入的数据压缩为固定长度的哈希值,因此无法防止哈希冲突,因为哈希冲突是两个任意长输入的相同哈希值。事实上,对于任何给定的有意义的输入,都有具有相同哈希键的随机输入。— 谷歌

正确答案 —

如果您有 8 位哈希输出,则有多少个可能的哈希?

若要确定 8 位哈希输出的可能哈希数,可以使用以下数学概念:

哈希中的每个位可以有两个可能的值:0 或 1。因此,对于 8 位哈希,可能组合的总数(以及可能的哈希总数)由下式给出:

2^n

其中
n
n 是哈希输出中的位数。

对于 8 位哈希,这将变为:

2⁸=256

因此,8 位哈希输出有 256 个可能的哈希值。

正确答案 — 256

散列的用途

网络有两个主要用途

  • 验证数据的完整性
  • 用于验证密码

您可能熟悉 Kali 上的“rockyou.txt”作为密码单词列表。他们以明文形式存储密码,该公司发生了数据泄露事件。txt 文件包含超过 1400 万个密码(尽管有些不太可能是用户密码。

可以相对检索明文密码。使用像 SHA1 这样的哈希值,MD5 可以很快地使用 GPU 进行计算。

您无法加密密码,因为密钥必须存储在某个地方。如果有人拿到密钥,他们只需解密密码即可。

哈希概念在这里发挥作用,而不是存储密码(明文),您将存储哈希。但是,当用户具有相同的密码并且将为相同的密码生成相同的哈希值时,问题就出现了。这意味着,如果有人破解了哈希值,他们会得到多个帐户。这也意味着有人可以创建一个“彩虹表”来打破哈希值。

解码哈希 — Crypto 101
彩虹表示例

彩虹表是明文哈希值的查找表,在磁盘上创建需要时间。但是在排序的哈希列表中进行查找确实非常快,比破解哈希要快得多。与CrackStation网站一样,它有一个巨大的彩虹表,无需哈希即可快速破解密码。

The salt is randomly generated and stored in the database, 
unique to each user. In theory, you could use the same salt 
for all users but that means that duplicate passwords would 
still have the same hash, and a rainbow table could still be 
created specific passwords with that salt.

为了保护自己免受彩虹表的侵害,我们在密码中添加了盐。在进行哈希处理之前,它会添加到密码的开头或结尾。这意味着,即使每个用户具有相同的密码,他们也会有不同的密码哈希。bcrypt、argon 和 sha512crypt 等哈希函数会自动处理此问题。盐不需要是私人的。

还有另一种成分可以完成食谱,胡椒

  • pepper 是在哈希之前添加到密码中的秘密值,类似于盐,但保密且不存储在数据库中。
  • 这增加了一层额外的安全保护。

回答以下问题

使用彩虹表手动破解哈希“d0199f51d2728db6011945145a1b607a”。

(答案在彩虹表中粘贴,检查一次)

正确答案 — 篮球

使用在线工具破解哈希“5b31f93c09ad1d065c0491b764d04933”

(使用工具 — https://hashes.com/en/decrypt/hash)

正确答案 — tryhackme

你应该加密密码吗?是/否

答案是否定的,它是可逆的和可破解的。您应该始终对哈希值进行加盐处理。

正确答案 —

识别密码哈希

自动解密工具在许多情况下是不可靠的。像 https://pypi.org/project/hashID/ 这样的工具存在,但不适用于许多格式。如果您在 Web 应用程序数据库中找到哈希值,则它更有可能是 md5 而不是 NTLM,并且这些自动化工具在这里被混淆了。

因此,学习自己的重要性很重要。

Unix 风格的密码哈希非常容易识别,因为它们有一个前缀。前缀告诉您用于生成哈希的哈希算法。标准格式为****。$format$rounds$salt$hash

Windows 密码使用 NTLM(md4 的变体)进行哈希处理。它们在视觉上与 md4 和 md5 哈希相同。

在 Linux 上,密码哈希存储在 /etc/shadow 中,通常可由 root 读取。它们曾经存储在 /etc/passwd 中,但每个人都可以读取。

在Windows中,密码存储在SAM(安全帐户管理器)中。Windows 会阻止普通用户转储它们,但 mimikatz 工具就在那里。在 SAM 中找到的哈希值分为 NT 和 LM 哈希值。

下面是一个快速表格,列出了您将看到的最具 Unix 风格的密码前缀。

解码哈希 — Crypto 101

查找更多哈希格式和密码前缀的好地方是 hashcat 示例页面,可在此处找到:https://hashcat.net/wiki/doku.php?id=example_hashes。

对于其他哈希类型,您通常需要按长度、编码或对生成它们的应用程序进行一些研究。

永远不要低估研究的力量。

回答以下问题

sha512crypt ($6$) 默认使用多少轮?

by default, sha512crypt takes 5000 rounds. 
But what is a “round”, in the context of hashing it means the number of 
times hashing algorithm is applied to the input data. 
This process of iterating the hashing function multiple times is 
called key-stretching. The main goal is to make brute-force attacks more 
difficult by increasing the computational effort required to compute the hash.

以下是所发生情况的简化版本:

  1. 输入:密码 () 和盐 ()。PS
  2. 初始哈希:H0 = SHA-512(P + S)
  3. 后续回合:H1 = SHA-512(H0 + P + S)
  4. H2 = SHA-512(H1 + P + S)
  5. …H4999 = SHA-512(H4998 + P + S)
  6. …5000 次迭代

正确答案 — 5000

Citrix Netscaler 哈希的 hashcat 示例哈希(来自网站)是什么?

(在这里查看 https://hashcat.net/wiki/doku.php?id=example_hashes)

解码哈希 — Crypto 101

正确答案 — 1765058016a22f1b4e076dccd1c3df4e8e5c0839ccded98ea

Windows NTLM 哈希值(以字符为单位)有多长?

解码哈希 — Crypto 101

正确答案 — 32

密码破解

您无法解密密码哈希,因为它们未加密。它们未加密。哈希值需要被破解。像 JTR 和 HashCat 这样的工具也做了同样的事情,从大量的密码列表(如 rockyou)中,他们可能会在哈希后继续添加盐并比较目标哈希。这意味着,您将通过对大量不同的输入进行哈希处理来破解密码。

GPU 非常擅长哈希函数中涉及的一些数学运算。一些哈希函数,特别是 bcrypt,被设计成 GPU 上的哈希与 CPU 上的哈希速度大致相同,这有助于防止破解。您可以使用 GPU 破解大多数哈希值,因为它们有数千个内核。

VM 无法直接访问主机显卡。就像,你运行hashcat的速度可能比在你自己的主机上破解更糟糕。John The Ripper 默认使用 CPU,因此可以在开箱即用的 VM 中工作。同样,在主机操作系统上运行这些工具将是最佳选择,因为它将具有更多线程,并且不会因在 VM 中运行而产生开销。

NEVER(我再说一遍,NEVER!)使用 — hashcat 的强制。它可能导致误报(给您错误的密码)和漏报(跳过正确的哈希值)。

更新:从 Kali 2020.2 开始,hashcat 6.0 将在 CPU 上运行,而无需强制。如果您有 GPU,我仍然建议破解您的主机操作系统,因为它会快得多。

不要害怕使用提示。Rockyou 或在线工具应该足以找到所有这些。但我们将没有提示。😉

回答以下问题

对于所有情况,我都使用 https://hashes.com/en/decrypt/hash 在线工具来检查在线工具的电位,是的,到目前为止可以节省计算资源。随意使用开膛手约翰或哈希猫。如果您不知道如何使用它,以下是供您参考的命令。

开膛手约翰命令——john --format=[format] --wordlist=[path to wordlist] [path to file]

hashcat 命令 —hashcat -m [format number] [cipher text file] [path to wordlist]

欲了解更多信息,请查看此博客

破解此哈希值:$2a$06$7yoU3Ng8dHTXphAg913cyO6Bjs3K5lBnwq5FJyA6d01pMSrddr1ZG

正确答案 — 85208520

破解这个哈希值:9eb7ee7f551d2f0ac684981bd1f1e2fa4a37590199636753efe614d4db30e8e1

正确答案——万圣节

破解此哈希值:$6$GQXVvW4EuM$ehD6jWiMsfNorxy5SINsgdlxmAEl3.yif0/c3NqzGLa0P.S7KRDYjycw5bnYkF5ZtB8wQy8KnskuWQS3Yr1wQ0

正确答案 — 太空人

厌倦了吗?破解这个哈希值:b6b0d451bbf6fed658659a9e7e5598fe

(虽然是一个无聊的哈希,哈哈)

正确答案 — funforyou

用于完整性检查的哈希处理

您可以使用哈希来检查文件是否被修改或确保文件下载正确。你也可以用它来查找重复的文件,如果两张图片具有相同的哈希值,它们就是同一张图片。

HMAC,它是一种使用加密函数来验证数据完整性真实性的方法。与 TryHackMe 一样,VPN 使用 HMAC-SHA512 进行消息身份验证。HMAC 用于确保创建它的人是谁(真实),并且消息没有被修改(完整性)。他们也使用密钥和哈希算法来生成哈希。

回答以下问题

amd64 Kali 2019.4 ISO 的 SHA1 总和是多少? http://old.kali.org/kali-images/kali-2019.4/

(无需下载 Kali ISO 或 Kleopatra)

解码哈希 — Crypto 101

单击链接,然后下载突出显示的文件

解码哈希 — Crypto 101

这里提到了检查 SHA1sum 对于所需的 kali 版本,复制 sha1sum。

正确答案 — 186c5227e24ceb60deb711f1bdc34ad9f4718ff9

HMAC-SHA512 的 hashcat 模式编号是多少(key = $pass)?

解码哈希 — Crypto 101
进行谷歌搜索

正确答案 — 1750

完成 TryHackMe 上的“Hashing Crypto 101”房间为理解哈希的原理和应用奠定了基础。

我希望我能帮助您解决上述挑战。

谢谢

原文始发于微信公众号(安全狗的自我修养):解码哈希 — Crypto 101

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月14日10:47:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   解码哈希 — Crypto 101https://cn-sec.com/archives/2951054.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息