网络安全暴力破解Linuxhashcat 暴力破解详细教程(附常见案例)lololowe2024-11-082025-01-271. hashcat 简介hashcat是一个使用C语言编写的密码破解工具,支持暴力破解多种哈希算法,是世界上最快最先进的爆破工具,可以调用CPU、GPU、DSP等多种硬件设备进行密码破解。
注意,hashcat是离线爆破工具,无法破解在线密码。
截至2024年11月,hashcat最后一次更新是2022年9月,最新版本是v6.2.6。
官网地址: https://hashcat.net开源地址:https://github.com/hashcat/hashcatbeta版本:https://hashcat.net/beta/Kali介绍页:https://www.kali.org/tools/hashcat/
2. 安装 hashcat2.1. Linux2.1.1. RHEL/CentOS123456wget https://hashcat.net/files/hashcat-6.2.6.7z # 下载hashcat预编译二进制版本yum install -y epel-release # 安装epel源yum install p7zip # 从epel源安装p7zip7za x hashcat-6.2.6.7z # 解压hashcatcd hashcat-6.2.6./hashcat.bin -V # 检查版本
如果p7zip下不动,可以尝试更换国内epel镜像源: https://www.cnblogs.com/zenghi-home/p/9965448.html
2.1.2. Debian/Ubuntu12apt install -y hashcat # 安装hashcathashcat -V # 检查版本
apt 安装hashcat时还会安装将近1GB的依赖包(包括驱动在内),如果安装过于缓慢,可以尝试更换国内镜像源:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
2.1.3. Windows下载hashcat的Windows版本,解压后在终端调用hashcat.exe即可:https://hashcat.net/files/hashcat-6.2.6.7z
2.2. 驱动安装完hashcat后,可以使用hashcat的-I参数或者--backend-info参数查看支持的驱动:
Linux软件包仓库安装的hashcat默认会安装驱动依赖,而通过官网下载的hashcat通常需要手动安装驱动。驱动未安装时的输出如下:
2.2.1. IntelRHEL/CentOS系的Linux下安装Intel驱动:
12345wget https://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/15532/l_opencl_p_18.1.0.015.tgz # 下载驱动包tar -xvf l_opencl_p_18.1.0.015.tgz # 解压驱动包cd l_opencl_p_18.1.0.015 # 进入驱动包目录./install # 安装驱动,安装过程中会有各种确认,按照提示操作即可./hashcat.bin -I # 驱动安装完成后无需重启,直接调用hashcat -I即可看到驱动信息
Windows下安装Intel驱动直接到Intel官网或者OEM官网搜索并下载安装即可:https://www.intel.cn/content/www/cn/zh/download-center/home.html
2.2.2. AMD使用AMD显卡的Linux用户可以参考AMD的官方文档进行驱动安装:https://rocm.docs.amd.com/en/docs-5.0.2/deploy/linux/os-native/install.html
Windows用户可以参考AMD的官方文档进行驱动安装:https://rocm.docs.amd.com/en/docs-5.0.2/deploy/windows/install.html
2.2.3. NVIDIALinux用户可以参考以下文章安装NVIDIA驱动以及CUDA:
https://cloud.tencent.com/developer/article/2054869
https://cloud.tencent.com/developer/article/2063866
Windows用户可以通过NVIDIA GeForce Experience安装GPU驱动,CUDA需要到NVIDIA官网下载安装:https://developer.nvidia.cn/cuda-toolkit
3. hashcat 使用3.1. 常用参数3.1.1. -I, --backend-info查看支持的GPU驱动:
3.1.2 -m, --hash-type指定hash模式,如果不指定,hashcat会自动识别hash模式并给出推荐模式:
如上图,没有指定hash模式时,hashcat自动识别到了唯一的hash模式13000,关联的文件格式是RAR5。有时候想查某个格式的hash模式,可以打印hashcat的帮助文档,然后使用grep命令查找,例如查找ZIP的hash模式:
查到多个相关模式时,建议直接拿hash值让hashcat自动识别:
自动识别出了3个ahsh模式,可以逐个模式去尝试。
常用hash模式:
hash模式
hash名称
hash示例
0
MD5
8743b52063cd84097a65d1633f5c74f5
11600
7-Zip
$7z$0$19$0$salt$8$f6196259a7326e3f0000000000000000$185065650$112$98$f3bc2a88062c419a25acd40c0c2d75421cf23263f69c51b13f9b1aada41a8a09f9adeae45d67c60b56aad338f20c0dcc5eb811c7a61128ee0746f922cdb9c59096869f341c7a9cb1ac7bb7d771f546b82cf4e6f11a5ecd4b61751e4d8de66dd6e2dfb5b7d1022d2211e2d66ea1703f96
13000
RAR5
$rar5$16$74575567518807622265582327032280$15$f8b4064de34ac02ecabfe9abdf93ed6a$8$9843834ed0f7c754
17220
ZIP
$pkzip2$3*1*1*0*8*24*a425*8827*d1730095cd829e245df04ebba6c52c0573d49d3bbeab6cb385b7fa8a28dcccd3098bfdd7*1*0*8*24*2a74*882a*51281ac874a60baedc375ca645888d29780e20d4076edd1e7154a99bde982152a736311f*2*0*e3*1c5*eda7a8de*0*29*8*e3*eda7*5096*1455781b59707f5151139e018bdcfeebfc89bc37e372883a7ec0670a5eafc622feb338f9b021b6601a674094898a91beac70e41e675f77702834ca6156111a1bf7361bc9f3715d77dfcdd626634c68354c6f2e5e0a7b1e1ce84a44e632d0f6e36019feeab92fb7eac9dda8df436e287aafece95d042059a1b27d533c5eab62c1c559af220dc432f2eb1a38a70f29e8f3cb5a207704274d1e305d7402180fd47e026522792f5113c52a116d5bb25b67074ffd6f4926b221555234aabddc69775335d592d5c7d22462b75de1259e8342a9ba71cb06223d13c7f51f13be2ad76352c3b8ed*$/pkzip2$
22000
WPA2
WPA*02*024022795224bffca545276c3762686f*6466b38ec3fc*225edc49b7aa*54502d4c494e4b5f484153484341545f54455354*10e3be3b005a629e89de088d6a2fdc489db83ad4764f2d186b9cde15446e972e*0103007502010a0000000000000000000148ce2ccba9c1fda130ff2fbbfb4fd3b063d1a93920b0f7df54a5cbf787b16171000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac028000*a2
1800
SHA512
$6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/
3000
LM
299bd128c1101fd6
1000
NTLM
b4b9b02e6f09a9bd760f388b67351e2b
完整hash模式以及hash示例列表:https://hashcat.net/wiki/doku.php?id=example_hashes
3.1.3. -a, --attack-mode指定攻击模式:
序号
攻击模式
0
字典破解
1
多字典组合破解
3
掩码破解
6
字典+掩码破解
7
掩码+字典破解
3.1.4. -O, --optimized-kernel-enable启用优化内核(会限制密码长度为32位),提高性能。不加此参数,破解过程会有提示:
3.1.5. -o, --outfile指定爆破完成后的哈希值与明文的存储位置。
3.1.6. --show破解完成后忘记保存破解内容,并且终端被清屏,可以使用--show参数重新显示已破解的哈希值与明文,只需在哈希值后面加上该参数即可:
3.1.7. -i, --increment启用密码长度范围功能。
3.1.8. --increment-min指定密码长度范围的最小值,需要与-i或者--increment参数一起使用,否则会报错:
3.1.9. --increment-max指定密码长度范围的最大值,需要与-i或者--increment参数一起使用,否则会报错。
3.1.10 -potfile-disablehash破解完成后,不将破解结果写入到potfile文件中,这样就能重复破解(例如测试hash碰撞)。如果已经写入了,则需要手动删除potfile文件中的对应记录。
最新版的linux hashcat的potfile为文件的路径是~/.local/share/hashcat/hashcat.potfile,不是~/.hashcat/hashcat.potfile。Windows的potfile文件的路径和hashcat主程序在同一目录下。
3.1.11. -d, --opencl-device-types当hashcat -I显示有多个OpenCL设备时,可以使用此参数指定使用哪个设备进行破解。默认会使用所有设备。
3.1.12. --force有时候会遇到报错导致破解失败,可以使用此参数强制继续破解。
例如有时候会提示硬件不支持某哈希模式而退出破解,此时可以使用--force参数跳过报错强制继续破解:
3.1.13. --self-test-disable禁用启动时的设备自检功能。加速进入破解过程。一般是测试时使用。
3.1.14 -h, --help此参数会打印一份超级长的帮助文档。通常结合grep命令来搜索哈希模式。
3.1.15 -v, --version查看hashcat版本:
截至2024年11月,hashcat最后一次更新是2022年9月,最新版本是v6.2.6。
beta版本下载地址:https://hashcat.net/beta/
3.2. 掩码破解(-a 3)3.2.1. 掩码占位符
占位符
含义
?l
小写字母(lowercase): a-z
?u
大写字母(uppercase): A-Z
?d
数字(digits): 0-9
?h
小写格式十六进制字符(hexadecimal): 0-9, a-f
?H
大写格式十六进制字符(hexadecimal): 0-9, A-F
?s
符号(symbols): ! “ # $ % & ‘ ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` {
?a
所有字符(ascii): 0-9, a-z, A-Z, ! “ # $ % & ‘ ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` {
?b
二进制字符(binary): 0, 1
3.2.2. 掩码示例
掩码
含义
?d?d?d?d?d?d?d?d?d?d
10位纯数字
?u?u?u?u?u?u?u?u?u?u
10位纯大写字母
?d?d?d?d?d?l?l?l?l?l
5位数字 + 5位小写字母
?l?u?d?d?d?d
第一位是小写字母,第2位是大写字母,第3-6位是数字
mkbk?a?a?a
前4位确定是mkbk,后面3位是任意字符
3.2.3. 自定义掩码
自定义掩码
自定义该掩码的字符集
?1
?l, ?d
?2
a, b, c, d
?3
e, f, g, h
?4
i, j, k, l
比如想用?1来表示m, k, b, k,这4个字符,那么可以使用-1参数来指定字符,并在后面作为占位符来使用:
1hashcat -m 0 -a 3 e9894d0cc46fa28e370ce7d94f0a72d5 -1 mkbk ?1?1?1?1?a?a?a -O
3.3. 字典破解(-a 0)推荐字典:https://github.com/wwl012345/PasswordDic
使用-a参数指定攻击模式为0,然后直接指定字典文件即可:
1hashcat -a 0 200ceb26807d6bf99fd6f4f0d1ca54d4 dict/rockyou-top15000.txt -O -o result.txt
可以看到耗时了11秒,遍历了了15000个密码,成功恢复出了哈希值,但是并没有显示出明文,原因是-o参数将哈希值与明文的对应关系存储到了result.txt文件中,因此可以直接查看该文件,或者将-o参数替换为--show参数来查看明文:
12cat result.txthashcat -a 0 -m 0 200ceb26807d6bf99fd6f4f0d1ca54d4 dict/rockyou-top15000.txt -O --show
3.4. 多字典组合破解(-a 1)hashcat最多支持将2个字典文件中的单词进行组合破解,使用-a 1参数并指定2个字典文件即可。
组合方式:Hashcat 从 dict1.txt 中选择一个单词作为前缀(Left Side),从 dict2.txt 中选择一个单词作为后缀(Right Side),然后将它们拼接在一起。
例如,假设,dict1.txt 包含:
12helloworld
dict2.txt 包含:
12123456
Hashcat 将生成以下组合:
1234hello123hello456world123world456
爆破案例:
1hashcat -m 0 -a 1 34cf9968d4b20578f61c9b26d102fb59 dict/1.txt dict/2.txt -O
3.5. 字典+掩码破解(-a 6)此模式会将字典中的每个单词作为前缀,然后使用掩码作为后缀来破解。
假设明文为sunshine123,并且字典中包含sunshine,那么可以使用该字典与掩码?d?d?d的组合来进行破解:
1hashcat -a 6 -m 0 1669972908967b4076b39d4626090817 dict/passwd-EN-Top10000.txt ?d?d?d -O
3.6. 掩码+字典破解(-a 7)此模式会将掩码作为前缀,然后使用字典中的每个单词作为后缀来破解,和-a 6模式正好相反。
假设明文为need_money,并且字典中包含money,那么可以使用该字典作为前缀,掩码?u?s?u?u?u?u?s的组合来进行破解:
1hashcat -a 6 -m 0 b4c80dd675a0d0f60d229075583d7d60 dict/passwd-EN-Top10000.txt ?l?l?l?l?s -O
4. 常见爆破案例4.1. 破解10位纯数字MD5首先将明文0123456789转换为转换为md5值:
1234567# 使用md5sum命令(末尾的 - 表示标准输入)❯ printf "0123456789" | md5sum781e5e245d69b566979b86e28d23f2c7 -# 或者使用openssl命令❯ printf "0123456789" | openssl md5MD5(stdin)= 781e5e245d69b566979b86e28d23f2c7
使用hashcat进行破解:
1hashcat -m 0 -a 3 781e5e245d69b566979b86e28d23f2c7 ?d?d?d?d?d?d?d?d?d?d
可以看到用时4秒,尝试了3072000个组合,破解出了明文0123456789。
如果后续需要查看此哈希值对应的明文,可以使用--show参数:
1234❯ hashcat -m 0 -a 3 781e5e245d69b566979b86e28d23f2c7 ?d?d?d?d?d?d?d?d?d?d --show781e5e245d69b566979b86e28d23f2c7:0123456789❯ hashcat -m 0 781e5e245d69b566979b86e28d23f2c7 --show781e5e245d69b566979b86e28d23f2c7:0123456789
4.2. 破解未知长度未知字符模式的MD5由于不知道明文的长度以及字符模式,因此将无法指定掩码规则,此时hashcat将默认使用?a(表示所有字符)进行暴力破解,并且是从较短的密码开始逐步增加,直到找到匹配为止(如果使用了-O参数,则默认最大长度为32位)。如果明文长度较长,那么破解时间将会非常长。
1hashcat -m 0 -a 3 2e8e673825e962ccd6ce3ac8be404914 -O
4.3. 破解已知长度但未知字符模式的MD5如果知道明文的长度为7位,但是不知道明文的字符模式,那么可以使用increment参数来指定密码长度范围,然后hashcat会自动使用?a进行暴力破解:
1hashcat.bin -m 0 -a 3 9a33543ee42bb7791905ab66ed0555d9 -O --increment --increment-min 7 --increment-max 7
4.4. 破解已知字符模式但未知长度的MD5假设已知明文的字符模式为小写字母和大写字母,但不知道明文的长度,那么可以使用自定义掩码规则组合?u?l来表示小写字母和大写字母,然后逐个增加?1的个数,直到找到匹配为止:
12345# 尝试1位长度./hashcat.bin -m 0 -a 3 c44a471bd78cc6c2fea32b9fe028d30a -O -1 ?l?u ?1# 尝试4位长度./hashcat.bin -m 0 -a 3 c44a471bd78cc6c2fea32b9fe028d30a -O -1 ?l?u ?1?1?1?1
4.5. 破解无线网络的WPA2密码首先需要使用aircrack-ng工具来抓取无线认证时的握手包,具体方法参考我以前写的博客:https://blog.lololowe.com/posts/9315/
抓到握手包后(.cap),使用hashcat官方提供的web站点将握手包转换成hashcat可识别的格式(.hc22000):https://hashcat.net/cap2hashcat/如果握手包大于20MB,则需要使用hcxtools本地转换,具体请看此帖子:https://www.bilibili.com/opus/653718564161716231
得到.hc22000文件后,使用hashcat进行破解:
1hashcat -m 22000 -a 0 ~/903031_1731148635.hc22000 dict/passwd-CN-Top10000.txt # 字典破解
4.6. 破解压缩包密码4.6.1. RAR首先使用WinRAR打包一个压缩包,并设置一个密码:
接着需要使用John the Ripper来提取压缩包的hash值,下面分别给出Windows和Linux下提取rar压缩包hash值的方法。
注意:也可以使用该网站在线提取:https://hashes.com/zh/johntheripper/rar2john
4.6.1.1 Windows下提取rar压缩包hash值并爆破直接下载 John the Ripper 的预编译二进制版本:https://www.openwall.com/john/k/john-1.9.0-jumbo-1-win64.7z
解压缩后,进入run目录,执行以下命令获取hash值:
1rar2john.exe
复制hash值(不要复制冒号以及前面的压缩包路径),接着执行以下命令搜索rar格式的hash模式:
1hashcat.exe -h | findstr.exe RAR
13000 表示rar5的hash模式,和上面的hash值对应。也可以直接将hash值作为唯一参数传递给hashcat,然后hashcat会自动识别出hash模式:
接着使用hashcat的-m 13000参数指定hash模式并进行破解:
1hashcat.exe -m 13000 -a 3 $rar5$16$3a8ee78dece562ff5872b81a39a3e519$15$053c164b49eb214f7a1457b8066c88c9$8$20957738b54470fd ?d?d?d?d?d?d?d?d
4.6.1.2 Linux下提取rar压缩包hash值并爆破编译安装John the Ripper:
1234567apt install git libssl-dev -y # Debian/Ubuntu 安装依赖yum install -y openssl openssl-devel # RHEL/CentOS 安装依赖git clone git@github.com:openwall/john.git # 克隆源码cd john/src ./configure && make # 编译cd ../run./john --test # 测试jtr是否可用
接着使用下面的命令提取rar压缩包的hash值以及获取hash模式:
12./rar2john
最后使用hashcat进行破解:
1hashcat -m 13000 -a 3 '$rar5$16$3a8ee78dece562ff5872b81a39a3e519$15$053c164b49eb214f7a1457b8066c88c9$8$20957738b54470fd' '?d?d?d?d?d?d?d?d'
注意:rar的hash值需要用单引号括起来(Windows系统不要加单引号),否则会报错,如果使用的shell是zsh,则还需将掩码值括起来。
得到明文密码:88888888
4.6.2. ZIP流程和rar类似,都是拿到加密压缩包后使用John the Ripper提取hash值,然后使用hashcat进行破解。
提取hash值
注意:提取出来的hash值要去掉首尾的文件路径(包括冒号)。例如1.zip :
11.zip/1.txt:$pkzip2$1*1*2*0*1a*c*594c07d2*0*23*8*1a*594c*7609*a0d026cb2bce016e791db4a9eddceb69a5b6895e457899a0b936*$/pkzip2$:1.txt:1.zip::E:\user\lololowe\Desktop\1.zip
去除文件路径后:
1$pkzip2$1*1*2*0*1a*c*594c07d2*0*23*8*1a*594c*7609*a0d026cb2bce016e791db4a9eddceb69a5b6895e457899a0b936*$/pkzip2$
获取hash模式
直接将hash值作为唯一参数传递给hashcat,然后hashcat会自动识别出hash模式:
1hashcat '$pkzip2$1*1*2*0*1a*c*594c07d2*0*23*8*1a*594c*7609*a0d026cb2bce016e791db4a9eddceb69a5b6895e457899a0b936*$/pkzip2$'
识别出3个哈希模式,可以依次尝试每种hash模式。
破解
1hashcat '$pkzip2$1*1*2*0*1a*c*594c07d2*0*23*8*1a*594c*7609*a0d026cb2bce016e791db4a9eddceb69a5b6895e457899a0b936*$/pkzip2$' -a 3 -m 17220 -O
得到明文密码:123456
4.6.3. 7-zip
提取hash值
john the ripper的7zip提取工具是7z2john.pl脚本,需要搭配Perl解释器运行,并且还不一定能正常提取:
建议使用在线网站提取7z的hash值:https://hashes.com/en/johntheripper/7z2john
获取hash模式
1hashcat '$7z$2$19$0$$16$f1ac8b88d28393a8ec6b55eda4c9f6a1$1498154962$16$16$6b60d3f0d467c15c7a3371b75733bc89$12$00'
最后一句话的意思是:这个hash模式存在hash碰撞漏洞(1个hash值对应多个密码),可以使用--keep-guessing参数在破解出第一个密码后继续破解下一个。
破解
1hashcat '$7z$2$19$0$$16$f1ac8b88d28393a8ec6b55eda4c9f6a1$1498154962$16$16$6b60d3f0d467c15c7a3371b75733bc89$12$00' -m 11600 -a 3 -O
得到明文密码:55sme
4.7. MySQL 密码破解
获取root用户密码的hash值:
1SELECT user, Host, authentication_string FROM mysql.user WHERE `User` = 'root';
注意:不要复制最前面的*符号。
获取hash模式
直接将hash值作为唯一参数传递给hashcat,然后hashcat会自动识别出hash模式:
1hashcat 81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
使用推荐300攻击模式(MySQL4.1/MySQL5)进行掩码破解:
1hashcat 81F5E21E35407D884A6CD4A731AEBFB6AF209E1B -m 300 -a 3 -O
得到明文密码:root
4.8. KeePass密码管理器破解KeePass是一个开源的密码管理器,它可以将所有密码保存在一个加密数据库文件中,该数据库文件是 KDBX 格式:
可以用 keepass2john 提取hash值:
也可尝试使用 https://hashes.com/zh/johntheripper/keepass2john 提取hash值。
将hash值(记得去掉最前面的Database:标志)作为唯一参数传递给hashcat,然后hashcat会自动识别出攻击模式:
然后使用hashcat进行破解:
1hashcat '$keepass$*2*600000*0*ff332ebf333c88d87a9592307e297d4cac49184a359dc9b655d5d8490c404640*4878daf470d66264c3b3b085cb1d0495f8d2f20459193c1cbe17722d7e61ba9d*2a021d8a51c7955ea1d06409bd8822ed*ecdd6dd88837ede059f6fe7b758975ef4ab4193261beac50b641f5fdac250093*6bfdc8f6ae7313cadb0d2ac2adecbf4eab703ac3eb7fefe4e6a9b838e7b92464' -m 13400 -a 3 -O
得到明文密码:mkbk
4.9. Windows 密码破解
推荐阅读,windows密码的抓取和利用:https://saucer-man.com/information_security/443.html
4.9.1. LM
对于早期的系统如Windows XP、Windows Server 2003来说,系统默认使用LM进行加密。LM 的空密码hash值为: AAD3B435B51404EEAAD3B435B51404EE
使用Mimikatz提取凭证(Windows Server 2008 R2):
1mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit
得到LM hash值为: af01df70036ebacfaad3b435b51404ee
LM Hash由32位16进制字符组成,前16位是用户密码的前7个字符(或更少)经LM算法处理后转换成的hash,后16位是用户密码的后7个字符(或更少)经LM算法处理后转换成的hash,如果用户密码只有7个字符,则后16位的hash固定为aad3b435b51404ee。LM限制用户密码最长为14个字符。
得到的这个hash值后16位是aad3b435b51404ee,说明密码长度等于或小于7个字符,可以直接对这个16位的hash进行暴力破解。
首先获取攻击模式:
1hashcat af01df70036ebacf
爆破:
1hashcat -m 3000 af01df70036ebacf -a 3 -O '?a?a?a?d?d?d?s'
得到明文密码:Abc123!
注意:LM算法不区分密码大小写。
4.9.2. NTLM
从Windows Vista和Windows Server 2008开始,默认情况下只存储NTLM Hash。因此提取到的hash值是空密码hash: aad3b435b51404eeaad3b435b51404eeNTLM 的空密码hash为: 31D6CFE0D16AE931B73C59D7E0C089C0
凭据提取方法同上(下图是Win10提取结果):
获取攻击模式:
1hashcat -m 1000 -a 3 32ed87bdb5fdc5e9cba88547376818d4 -O
4.10. Linux 密码破解从 /etc/shadow 文件中提取密码hash值:
1tail /etc/shadow -n 1
linux的shadow文件中每一行的第二个字段保存了加密后的密码,这个字段的格式为 $type$salt$encrypted,其中type是提示符,salt是随机生成的字符串,encrypted是明文密码和salt通过crypt函数加密后的结果。type用来标识采用了哪种加密方式,这样的标识符有以下几种:
1 代表采用了MD5加密方式
2 Blowfish,是最早的版本,有一些缺陷,不推荐使用
2a Blowfish,是修复了一些缺陷后的版本,但仍然有一些问题,不推荐使用
2b Blowfish,是修复了2a中的问题后的版本,是安全、常用的版本
2y Blowfish,Eksblowfish版本
y 是Yescrypt加密方式的前缀,是Blowfish加密方式的一个变种,提供了更高的安全性和性能,hashcat暂不支持这种算法。
5 代表采用了SHA256加密方式
6 代表采用了SHA512加密方式
获取攻击模式:
1hashcat '$1$PIdhJQ1b$6yidVdMl8VlsnVfiWsRu..'
爆破:
1hashcat '$1$PIdhJQ1b$6yidVdMl8VlsnVfiWsRu..' -m 500 -a 3 -O
得到明文密码:test
4.11. PDF密码破解首先使用WPS加密PDF文件:
接着使用 John the Ripper 的 pdf2john.pl 提取hash值:
1perl pdf2john.pl <文件路径>
或者也可以使用此网页提取:https://www.onlinehashcrack.com/tools-pdf-hash-extractor.php
获取攻击模式:
1hashcat '$pdf$4*4*128*-3904*0*16*f7b5882fa6583b73085398d2bf3e2eca*32*be6b1917664ce051136456751db1ad106681bfa2d6c40fd1996d4290804ea411*32*b33e83218acdc4e2d4bab4752bc67bf583707812d6700f8901d1012931595d58'
暴力破解:
1hashcat '$pdf$4*4*128*-3904*0*16*f7b5882fa6583b73085398d2bf3e2eca*32*be6b1917664ce051136456751db1ad106681bfa2d6c40fd1996d4290804ea411*32*b33e83218acdc4e2d4bab4752bc67bf583707812d6700f8901d1012931595d58' -m 10500 -a 3 -O '?d?d?d?d?d?d?d?d?d'
得到明文密码:789456123
4.12. 破解进度保存及恢复使用session参数指定进度保存文件的名称:
1hashcat 02cc5e493ad4e7cfacb34b7d5f335356 -m 0 -a 3 -O --session myhash
使用--restore参数来恢复进度(无需指定hash值):
1hashcat --session myhash --restore
进度文件在 ~/.local/share/hashcat/sessions/ 目录下。
5. 个人密码使用建议
https://blog.lololowe.com/posts/5a68/
密码应至少包含12个字符(理想情况下是16个字符或更多);
密码应包含字母(大写和小写)、数字和特殊字符 4 种组合;
每个账户都必须有一个独特的密码(防止被撞库);
密码不应包含任何个人信息,如生日或地址,因为身份盗窃和数据泄露可能会泄露这些信息。
密码不应包含任何连续的字母或数字(例如:ABCD,1234,666888 等等)。
6. 参考
https://hashcat.net/forum/printthread.php?tid=9594
https://hashcat.net/wiki/
https://www.sqlsec.com/2019/10/hashcat.html
https://hashcat.net/wiki/doku.php?id=example_hashes
https://superuser.com/questions/1329977/jtr-requires-openssl-and-openssl-devel-being-installed
https://blog.csdn.net/qq_43750882/article/details/130713566