kali工具集-hash-identifier哈希算法识别

实验简介

本实验旨在通过实际操作,掌握常见哈希算法(如 MD5、SHA-1、SHA-256)的生成方法,并使用 hash-identifier 工具对哈希值进行识别。同时,了解不同哈希算法输出长度的区别,以及如何批量识别多个哈希值。实验还进一步探讨了加盐哈希的生成与识别,分析 hash-identifier 在面对加盐哈希时的局限性。

技能增长

通过本次实验的学习,能掌握在 Kali Linux 环境下使用命令行生成 MD5、SHA-1、SHA-256 哈希值的方法并学会使用 hash-identifier 工具识别未知哈希算法类型。

预备知识

常见的哈希算法

  • MD5(Message Digest Algorithm 5): MD5是最常见的哈希算法之一,产生一个128位的哈希值。然而,由于其存在碰撞攻击的风险,现在通常不推荐用于安全敏感的应用场景。

  • SHA家族(Secure Hash Algorithm):

SHA-1:产生160位的哈希值。尽管曾经非常流行,但由于发现了理论上的碰撞攻击方法,其安全性已经受到质疑。

SHA-2:包括了不同长度的变种,如SHA-256、SHA-384和SHA-512等。其中,SHA-256生成256位的哈希值,是目前比较常用的安全哈希算法之一。

SHA-3:作为SHA-2的后续者,虽然SHA-2依然被认为是安全的,但SHA-3提供了一种不同的设计以应对未来可能的威胁。它支持多种输出长度,如224、256、384或512位。

加盐哈希在密码存储中的作用

防止彩虹表攻击:通过为每个密码添加随机生成的盐值,使得使用预先计算的彩虹表进行哈希逆向工程变得无效。

增加破解难度:盐值的存在增加了密码的复杂度,即使两个用户使用相同的密码,它们的哈希值也会不同,从而增加了暴力破解的难度和时间。

确保唯一性:每个用户的密码都加上了独特的盐值,保证了即使是相同的密码,其存储的哈希值也是独一无二的,增强了安全性。

实验环境

主机名:kali 用户名/密码:root/随机

IP地址:192.168.0.3

实验操作

进入kali虚拟机,执行echo -n "password123" | md5sum |awk '{print $1}' >/md5.txt命令使用MD5哈希算法将password123的哈希值写入md5.txt文件中(awk '{print $1}' 可以确保只有哈希值被写入md5.txt文件中,而不会包含后面的 - 或任何其他多余的信息。)

 

执行echo -n "password123" | sha1sum |awk '{print $1}' >/sha1.txt命令使sha1哈希算法将password123的哈希值写入sha1.txt文件中

 

执行echo -n "password123" | sha256sum |awk '{print $1}' >/sha256.txt命令使sha256哈希算法将password123的哈希值写入sha256.txt文件中

 

从哈希值输出的结果可以看出,不同哈希算输出的长度不一致,MD5生成的是128位(16字节)的哈希值;SHA-1生成的是160位(20字节)的哈希值;SHA-256生成的是256位(32字节)的哈希值。下面将使用hash-identifier工具对各种不同哈希算法所输出的哈希值进行判别,执行hash-identifier命令启动工具,成功将哈希值482c811da5d5b4bc6d497ffa98491e38判定为MD5哈希算法

 

再次将sha1.txt文件中的哈希值复制到hash-identifier工具hash栏中,成功判别为sha1哈希算法

 

最后将sha256.txt文件中的哈希值复制到hash-identifier工具hash栏中,成功判别为sha256哈希算法

 

这样一个个执行过于重复,下面将多个hash值进行批量判别。执行echo -e "482c811da5d5b4bc6d497ffa98491e38\ncbfdac6008f9cab4083784cbd1874f76618d2a97\nef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f" >/hashes.txt命令将多个hash值写入hashes.txt文件中

 

执行vim /batch_hash-identifier.sh命令创建sh文件,并将以下命令写到sh文件中。下面代码实现了逐行读取hashes.txt文件中的每个hash值,然后使用hash-identifier进行识别分析。(注意:hashes.txt文件内的哈希值可以自定义)

while read hash; do

echo "Analyzing: $hash"

echo "$hash" | hash-identifier

done < hashes.txt

 

 

执行chmod 755 /batch_hash-identifier.sh命令修改文件权限(注意:当前用户一定要具备该文件的执行权限)

 

执行sh /batch_hash-identifier.sh命令执行脚本,成功识别多个hash值

 

接下来进行加盐哈希识别,运行mkpasswd工具执行mkpasswd --method=md5 password命令使用MD5算法生成一个密码的哈希值,并生成一个随机盐值。

 

执行hash-identifier命令对md5加盐哈希进行识别分析,成功识别是md5算法

 

mkpasswd 是一个命令行工具,通常用于生成用户密码哈希。它支持多种哈希算法,包括 bcrypt。下面将使用mkpasswd工具对sha256哈希算法生成加盐哈希值,运行mkpasswd工具执行mkpasswd --method=sha-256 password命令使用sha256算法生成一个密码的哈希值,并生成一个随机盐值。

 

执行hash-identifier命令对sha-256加盐哈希进行识别分析,无法识别,从中可以看出hash-identifier 主要设计用于识别标准的未加盐哈希值(如纯 MD5、SHA-1、SHA-256 等),而不是专门针对加盐哈希的复杂格式。对于加盐哈希,尤其是那些具有特定格式标记(如 $1$、$5$)的哈希,如果 hash-identifier 没有相应的模式匹配规则,则无法正确识别。

 

特别声明:

此文章仅供参考,如用作非法交易造成一定损失或触犯法律,作者一概不负!!!!! 请勿用于非法途径,仅供参考。传送门 -----------> 《中华人民共和国网络安全法》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值