宇宙最强开源破解密码利器:Hashcat 第一篇
-a 指定要使用的破解模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。
-m 指定要破解的hash类型,如果不指定类型,则默认是MD5
-o 指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定的文件中
--force 忽略破解过程中的警告信息,跑单条hash可能需要加上此选项
--show 显示已经破解的hash及该hash所对应的明文
--increment 启用增量破解模式,你可以利用此模式让hashcat在指定的密码长度范围内执行破解过程
--increment-min 密码最小长度,后面直接等于一个整数即可,配置increment模式一起使用
--increment-max 密码最大长度,同上
--outfile-format 指定破解结果的输出格式id,默认是3
--username 忽略hash文件中的指定的用户名,在破解linux系统用户密码hash可能会用到
--remove 删除已被破解成功的hash
-r 使用自定义破解规则
宇宙最强开源破解密码利器:Hashcat 第一篇
Hashcat介绍
Hashcat号称宇宙最强密码破解工具,是一款开源软件。它提供了针对Windows、Mac和Linux的版本,支持多种计算核心,包括CPU、GPU、APU、DSP和FPGA等。Hashcat还支持多种hash散列算法,能够破解rar、office、pdf、windows账户、wifi等多种密码。本文将介绍在Windows 10系统下安装配置Hashcat,以及具体的密码破解方法和密码保护技巧。
安装配置
首先,前往Hashcat官网下载软件包。我下载的版本是v6.1.1。请注意下载hashcat binaries后面的软件包,它已经编译生成了可直接运行的exe可执行文件。而hashcat sources需要使用类似MinGW的编译工具对Hashcat源码进行编译才能生成可执行文件。下载好Hashcat软件包后,可以在主目录下通过命令行运行Hashcat(Hashcat以命令行模式工作)。建议在软件包主目录的地址栏直接输入cmd,这样命令行窗口会直接跳转到Hashcat主目录。最后,我使用的测试电脑配置如下,现在我们可以开始Hashcat的探索之旅。
同时,在使用Hashcat进行密码破解时,需要辅助工具来获取加密文件的Hash。我选择了John the Ripper来获取加密文件的Hash(具体版本为john-1.9.0)。它也是通过命令行运行的。在密码破解和保护小结中,我将详细介绍它的使用方法。运行John the Ripper需要安装python和perl,并配置相应的环境变量。
Hashcat使用
首先,我们可以通过hashcat --help命令查看Hashcat常用的命令行选项,这对学习任何一种语言或方法都非常实用。
同时,您也可以查看Hashcat的wiki页面,其中包括Hashcat常用的攻击类型、常见Hash类型对照表、掩码设置方式、支持的平台类型等详细说明。这里就不再详细介绍,如果有任何疑问,请直接联系我们。
密码破解和保护
首先,我测试了所用配置笔记本的算力。通过hashcat -b命令,可以看到针对各种Hash类型,独立显卡GeForce 940MX、核显Graphics 630以及CPU Intel Core™ i7-7700HQ(对应设备1、2和3)各自的算力。
接下来,我将通过掩码攻击方式破解rar、office、pdf加密文件,以及通过字典攻击方式破解zip加密文件,以比较密码破解的效率。
首先,新建一个测试用的rar加密文件"test.rar",在john-1.9.0的run目录下运行命令行,输入以下指令:
test.rar:$rar5$16$17ef7a950b46655b9885e6cdade46948$15$d132b6edad975688f01a00df22ef20c1$8$6b4b7c0213e56414
hashcat.exe -m 13000 -a 3 $rar5$16$17ef7a950b46655b9885e6cdade46948$15$d132b6edad975688f01a00df22ef20c1$8$6b4b7c0213e56414 ?d?d?d?d -o out.txt
得到结果。在Hashcat的wiki中,点击进入Example hashes,搜索"rar5",可以找到对应的ID为13000。然后,在Hashcat命令行中,输入以下命令,其中-m后面对应所查Hash的ID,-a后面的3表示掩码攻击,?d表示一个数字。
python office2john.py test.docx 获取word加密文件的Hash指令(此处需要安装python并配置环境变量)
test.docx:$office$*2013*100000*256*16*561f4dcaaac333e7c06d150f9ea5aea2*ef4e7b026217124561ecb865b324eac4*e9ef4a859f2c81581db0e27d9ce48e6451b82cd1641941e8adc10dc5600969cb 所得Hash返回结果
hashcat.exe -m 9600 -a 3 $office$*2013*100000*256*16*561f4dcaaac333e7c06d150f9ea5aea2*ef4e7b026217124561ecb865b324eac4*e9ef4a859f2c81581db0e27d9ce48e6451b82cd1641941e8adc10dc5600969cb ?d?d?d?d -o out.txt Hashcat破解对应hash
perl pdf2john.pl test.pdf 获取pdf加密文件的Hash指令(此处需要安装perl并配置环境变量)
test.pdf:$pdf$4*4*128*-3904*0*16*55f913d20e34724fd70d3004f5e43166*32*7a29310ea5dc0276d34c1bef24595d61984a08eb759eaba56bd4887a260bbcce*32*de0c200bbe6887a980dc429edbdabc40f39a368841d804afefa726b2bd7c7b24 所得Hash返回结果
hashcat.exe -m 10500 -a 3 $pdf$4*4*128*-3904*0*16*55f913d20e34724fd70d3004f5e43166*32*7a29310ea5dc0276d34c1bef24595d61984a08eb759eaba56bd4887a260bbcce*32*de0c200bbe6887a980dc429edbdabc40f39a368841d804afefa726b2bd7c7b24 ?l?l?l?l?l?l -o out.txt Hashcat破解对应hash,此处?l对应一个小写字母
zip2john.exe test.zip 获取zip加密文件的Hash指令
test.zip/test.txt:$pkzip2$1*1*2*0*15*9*4aac42f3*0*26*0*15*4aac*470b*6fa72c2bc69e5738181cb7f406187f8084ce07cf5f*$/pkzip2$:test.txt:test.zip::test.zip 所得Hash返回结果
hashcat -a 0 -m 17210 $pkzip2$1*1*2*0*15*9*4aac42f3*0*26*0*15*4aac*470b*6fa72c2bc69e5738181cb7f406187f8084ce07cf5f*$/pkzip2$ password.txt --force
password.txt中存放密码字典
最后,运行结果如图所示。将破解得到的密码导入out.txt文件,运行过程中可以通过按S键来实时查看破解状态。
接下来,我将展示破解word加密文件、pdf加密文件和zip加密文件的指令及输出。
破解word加密文件的指令及输出如下:
破解pdf加密文件的指令及输出如下:
使用字典破解zip加密文件的指令及输出如下:
以上是利用Hashcat对rar、zip、pdf、word加密文件进行破解的示例。我们主要使用了字典破解和掩码破解的方法。这些示例都是为了方便演示而选择了较简单的密码。实际情况中可能会遇到各种类型的密码。在密码长度和类型都未知的情况下,最好首先尝试字典破解的方式。后续我还会分享一些收集的字典以及字典下载的链接。如果使用现有字典无法破解密码,那么只能使用暴力破解或掩码组合暴力破解的方式。这时对电脑性能的要求就特别高。而且,密码越复杂(例如同时包含字母、数字、特殊字符、汉字等),破解难度将呈指数级增加。接下来,我将深入挖掘Hashcat这款密码破解神器,并分享一些破解技巧和密码设置的技巧。