1、Hash算法的检测
(1)借助Hashid对Hash密文进行算法辨认
我们先以明文是“1”为例,生成经MD5加密后的密文;
得到的密文为:c4ca4238a0b923820dcc509a6f75849b
将Hash密文放入Hashid中进行算法检测,会发现它识别出的可能使用的算法有不少;
要是想要把Hash加盐的算法都展示出来,那可以在后面添加一个-e参数;
这时或许会有疑问,一个Hash密文检测出来有这么多算法可能性,会不会检测得不准确,或者是不是输入任何Hash密文都会检测出相同的Hash算法;
于是采用SHA-256密文来对比,能看到识别出的算法和之前的有区别,说明识别的算法还算准确;
推测hashid工具对算法识别是基于密文长度来计算的,都知道Hash算法不管输入的明文多长多大,输出的密文长度是固定的,所以hashid工具依据Hash算法这个特征来识别算法;
(2)利用Hash-identifier对Hash密文进行算法识别
通过hashid工具大概能识别对应的算法,但得到的数量还是偏多,现在介绍另一个识别工具Hash-identifier;
界面简洁,使用简单,不用加任何前缀和参数,直接把密文输入进去回车;
发现输出内容分为两部分,第一部分是工具识别出的密文最有可能使用的算法,第二部分是次可能使用的算法。
小结:要是在渗透过程中拿到一个Hash密文,想要解密,首要的一步是知道使用了什么算法,这样才能针对性解密,而hashid工具检测的算法太繁杂,一个个尝试解密会增加时间成本,而Hash-identifier对可能使用的算法进行最大可能分类和次可能分类,能更高效完成密文解密;
2、Hash的解密
前面用Hashid和Hash-identifier工具知道了密文加密可能用的算法,接下来就要针对性进行密文解密。
使用Hashcat工具对Hash密文解密;
(1)首先输入前缀hashcat然后跟一个-a参数;
一步步分析参数
-a表示攻击模板,定义以什么方式解密密文,可以生成或自制字典解密,也能用设置掩码的方式解密,还能通过字典+掩码等混合攻击模式解密。这里用3的参数,就是用掩码解密密文;
0 Straight 直接解密 直接用字典文件中的密码逐个尝试破解。
1 Combination 组合攻击 将两个或多个字典文件中的密码组合生成新密码来解密
3 Brute-force 掩码暴力解密
6 Hybrid Wordlist +Mask 混合攻击:字典+掩码,将字典中密码与指定掩码结合解密
7 Hybrid Mask + Wordlist 混合攻击:掩码+字典,先使用掩码模式生成密码,再与字典中密码结合解密
9 Association 联合攻击 结合多种攻击方式,如暴力解密、字典攻击等,提高解密效率和成功率
(2)添加-m参数指定Hash算法;
-m参数用来指定密文使用的算法,前面识别出Hash密文的算法,这里就对应使用,之前识别出是MD5,所以填写-m 0;
每个算法都有对应的数字参数;
输入hashcat -h就能查看所有Hash算法对应的数字参数,输出的算法非常多;
(3)后面输入密文内容,再加上掩码格式;
掩码格式按照下面字符类型对应不同字母表示,中间用“?”隔开,因为明文是数字“1”,所以对应的掩码是“?d”;
? | Charset
===+=========
l | abcdefghijklmnopqrstuvwxyz [a-z] //小写字母
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ [A-Z] //大写字母
d | 0123456789 [0-9] //数字
h | 0123456789abcdef [0-9a-f] //数字0-9,小写字母a-f
H | 0123456789ABCDEF [0-9A-F] //数字0-9,大写字母A-F
s | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ //特殊字符
示例:
1100 ----> ?d?d?d?d
11abc-----> ?d?d?l?l?l
11abCD---->?d?d?l?l?u?u
(4)回车输出结果;
发现没得到对应的明文,还有红色警示,复制翻译后大概意思是没有足够GPU内存资源来执行密文解密过程,Hashcat强大且解密快是因为基于GPU加速密码解密,支持多GPU并行运算,有更高效率的密码解密能力。
以下是DeepSeek的解说回答:
HashCat主要基于GPU进行哈希破解,但也支持CPU模式。详细说明如下:
1. 主要设计目标:GPU加速
核心优化:HashCat是为GPU并行计算设计的,特别擅长利用NVIDIA(CUDA)和AMD(OpenCL)显卡的并行处理能力,速度远超CPU。
性能优势:GPU的数千个计算核心可同时处理大量哈希任务,适合暴力破解、字典攻击等密集计算场景。
2. CPU模式支持
备用选项:HashCat提供-D 1参数强制使用CPU(通过OpenCL驱动),但性能通常远低于GPU。
适用场景:无显卡或调试时使用,实际破解中很少作为首选。
3. 版本区别
HashCat(开源版):支持CPU和GPU,但GPU是主力。
oclHashCat(旧版闭源分支):仅支持GPU,现已合并回主项目。
4. 推荐配置
硬件:高性能显卡(如NVIDIA RTX 4090、AMD RX 7900 XT)能最大化HashCat效率。
驱动:需安装最新显卡驱动(CUDA或ROCm)以启用GPU加速。
我们当前使用的kali部署在虚拟机上,估计没分配足够资源,在自己物理机上输入同样内容能成功解密出明文。
(5)
拓展测试:
识别以下密文使用的Hash算法并解密;
提示:11位小写字母
DE25B05B8BB5CFAA5FA8532030FCCD7D31B5E8464A66D4E3B518B85F36C81463
首先识别算法,很大可能是SHA-256算法或者Haval-256,而SHA-256是比较常见的Hash算法,所以先用这个算法指定解密;
小技巧:
用hashid识别时,后面加上-m参数,能显示在Hashcat工具中对应算法的参数,减少查找对应算法数值的时间,提高效率;
在hashcat中解密;
然后会出现这样的信息输出,输入S键能查看目前解密状态,如果Status对应为Running,就是后台正在解密,P键暂停,B键任务挂起,C键检查输入命令,F键终止进程,Q键退出程序;
11位的数字估计解密得挺久,这取决于每台电脑的性能。