一、什么是hashcat及其应用场景
Hashcat是一款密码破解工具,支持依据哈希值进行破解,可以通过CPU、GPU等硬件资源加速破解,支持常见的加密算法,如MD5、SHA1、PBKDF2等。Hashcat可以用于渗透测试、恢复丢失密码、评估密码策略等。在渗透测试中,通过破解密码获取管理员权限或重要信息是常见攻击手段之一。
二、提升密码安全性的方法
1.密码策略
一个好的密码策略可以大大提高密码的安全性。包含以下几方面:
(1)密码长度要足够长,至少12个字符。
(2)不要使用常见的单词或组合,如password、123456等。
(3)允许使用字母、数字、特殊符号等多种字符,并推荐使用大小写混合。
(4)建议定期更换密码,避免重复使用密码。
2.加密算法
密码加密算法的复杂性决定了密码被破解的难度,选用合适的加密算法可以提高密码的安全性。推荐使用较为复杂的哈希算法,如bcrypt、PBKDF2等。
3.密码哈希
或者说密码学哈希是指将用户密码以特定的算法生成一个哈希值,存储在系统中,登录时对输入的密码进行相同的哈希操作与存储的哈希值比对,确认密码的正确性。密码哈希保证了用户密码不会明文存储在系统中,一般采用单向哈希,无法从哈希值反推出原密码。
推荐使用较为复杂的哈希算法,如bcrypt、PBKDF2等。哈希长度与存储的哈希值的唯一性也会影响密码的安全性。
三、使用hashcat破解密码
1.常见加密算法的破解
hashcat -m 0 -a 0 md5hashes.txt rockyou.txt
其中md5hashes.txt为包含待破解密码哈希值的文件,rockyou.txt为可能的密码字典,常见的加密算法和对应的模式如下:
(1)MD5:0
(2)SHA1:100
(3)SHA256:1400
(4)bcrypt:3200
(5)PBKDF2:10000
2.使用GPU加速
hashcat -a 0 -m 0 -w 3 md5hashes.txt rockyou.txt
其中-w参数指定GPU的工作负载(工作负载越高,速度越快,但电力消耗也越大),值越高代表越大的负载。
3.使用规则
hashcat -a 0 -m 0 -r rules/dive.rule md5hashes.txt rockyou.txt
可以使用自带的规则或自定义规则,规则可以对密码字典进行修改、加强组合等操作,提高破解成功率。
4.使用掩码
hashcat -a 3 -m 0 md5hashes.txt ?l?l?l?l?l?l?l?l
可以使用掩码技术,指定某些位置必须是某些字符,某些位置必须是某些数字等等,提高破解成功率。
5.使用分布式计算
可以通过hashcat-utils中的distrib目录下的一些工具实现分布式计算,如VCL(Virtual OpenCL)可以通过多个计算机的CPU或GPU合作来加速破解过程。
总结
通过密码策略、加密算法、密码哈希等手段可以提高密码的安全性,使用hashcat等密码破解工具可以对密码进行渗透测试或检查密码策略的实际效果。但是要注意不要将其用于非法用途。