Hashcat介绍
Hashcat号称宇宙最强密码破解工具,其是一款开源软件,有针对Windows、Mac和linux的版本,支持CPU、GPU、APU、DSP和FPGA等多种计算核心,支持多种hash散列算法,支持对rar、office、pdf、windows账户、wifi等多种密码的破解,本文以Windows 10系统下的Hashcat安装配置、具体密码破解方法和密码保护技巧等展开介绍。
安装配置
首先前往Hashcat官网下载软件包,我下载的版本为 v6.1.1,此处需注意下载hashcat binaries名称后面的软件包,其已经编译生成了直接可以运行的exe可执行文件,而hashcat sources需要利用类似MinGW的编译工具对Hashcat源码进行编译来生成可执行文件,下载好Hashcat软件包之后可以直接在主目录下通过命令行运行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常用的命令行,这也是学习任何一种语言或者方法时最实用的技术。
-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的wiki,上面包括Hashcat常用的攻击类型、常见Hash类型对照表、掩码设置方式、支持的平台类型等都有详细说明,这里就不再详细说明,有任何疑问可以直接后台联系。
密码破解和保护
首先测试了下所用配置笔记本的算力,通过指令hashcat -b即可看到其针对各种Hash类型独立显卡GeForce 940MX、核显Graphics 630以及CPU Intel Core(TM) i7-7700HQ(对应图中设备1、2以及3)各自的算力。
下面针对rar、office、pdf加密文件选用掩码攻击的方式以及zip加密文件选用字典攻击的方式来对比密码破解效率。
新建测试用rar加密文件“test.rar”,在john-1.9.0的run目录下运行命令行,输入指令
rar2john.exe test.rar
得到结果
test.rar:$rar5$16$17ef7a950b46655b9885e6cdade46948$15$d132b6edad975688f01a00df22ef20c1$8$6b4b7c0213e56414
在Hashcat的wiki中点击进入Example hashes搜索“rar5”查出其对应ID为13000,之后进入Hashcat命令行,输入命令如下,其中-m后面对应的是所查Hash的ID,-a后面的3对应为掩码攻击,?d对应一个数字。
hashcat.exe -m 13000 -a 3 $rar5$16$17ef7a950b46655b9885e6cdade46948$15$d132b6edad975688f01a00df22ef20c1$8$6b4b7c0213e56414 ?d?d?d?d -o out.txt
最后运行结果如图,将破解所得密码导入out.txt文件,运行过程中可以通过按S键来查看实时破解状态。
后续破解word加密文件的指令及输出如下:
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
破解pdf加密文件的指令及输出如下:
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对应一个小写字母
使用字典破解zip加密文件的指令及输出如下:
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中存放密码字典
以上利用Hashcat对rar、zip、pdf、word加密文件进行了破解,选用的方法主要是字典破解和掩码破解,此处所选用的例子为了演示方便都是比较简单的密码,实际情况可能遇到各种类型的密码,在密码长度、类型都未知的情况下,最好首先选用字典破解的方式,后续也会分享一些收集的字典以及字典下载的链接,如果拿现有字典没能跑出密码,则只能使用暴力破解或者掩码组合暴力破解的方式,此时对电脑性能的要求就特别高,而且密码越复杂(比如密码中同时包括字母、数字、特殊字符、汉字等等)破解难度呈指数级增加,后续将深度挖掘hashcat这款密码破解神器,同时分享一些破解技巧以及密码设置的技巧。
转载声明:如果希望转载请于公众号(安全fun)后台联系,或者邮件至anquanfun@163.com,转载时请保留原作者(安全fun)及出处信息,转载文章禁止声明原创,更多合作也可邮件至anquanfun@163.com。
免责声明:本公众号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。

日本 1F
这工具是不是必须用命令行操作啊?能不能弄个图形界面?
辽宁省沈阳市 2F
之前用过几次,感觉对显卡要求挺高的。
上海市 3F
有没有试过在linux下跑?感觉比Windows快不少。
江苏省苏州市 B1
@ 白脸奸雄 linux下配置环境可能更麻烦点,但性能应该好些。
福建省泉州市 4F
看起来好复杂的样子,新手完全看不懂啊。
印度尼西亚 B1
@ 孤舟远影 这种命令行工具对新手确实不太友好,得多摸索几遍。
湖北省武汉市 5F
为啥我跑的时候老是提示内存不足?
陕西省 B1
@ SunnyBunny 内存不足可能是显存不够,试试加–force或者降掩码长度?
北京市 6F
掩码攻击那个例子讲得挺清楚的,终于搞明白?d和?l啥意思了。
黑龙江省佳木斯市 B1
@ 狡狐千面 ?d?d?d?d这种掩码设置简单密码还行,复杂点就得换思路了。
印度尼西亚 7F
这种工具还是得小心用,别整些不该搞的。
韩国 B1
@ PandaExpress 工具本身没问题,关键看人怎么用。
中国 8F
大佬能分享下常用的密码字典吗?自己收集太费劲了。
河南省洛阳市 9F
用940MX这种老显卡跑得动吗?
上海市 B1
@ 程序员不秃 我这台配940MX跑hashcat,单卡算力不高,但小字典测试还能跑出来,别指望太快。
韩国 10F
这文章把安装步骤写得很详细,照着做一遍应该能搞定。
河南省焦作市 11F
掩码攻击那块讲得挺明白的,之前一直没搞懂?l啥意思。
贵州省遵义市 12F
想试试破解自己设的密码,看看要多久能跑出来。
上海市 B1
@ 旧时信笺 试了下破解rar文件,四位数密码用老笔记本跑了快十分钟。
湖南省长沙市 13F
显卡太老了跑这个是不是没啥用啊?
香港 B1
@ 雀儿鸣 显卡不行的话跑暴力破解确实费劲,建议先试试字典。
澳大利亚 14F
之前折腾过John the Ripper,搞环境变量就弄了半天。
重庆市 15F
这种算力测试结果准不准?感觉跟实际跑起来有差别。
日本 16F
能破解自己忘掉的压缩包密码不?
上海市 17F
有没有更简单的获取hash的方法?感觉装perl好麻烦。
黑龙江省大庆市 18F
有没有试过破解带特殊字符的密码?感觉成功率咋样?
江西省萍乡市 19F
之前拿这个试过破解wifi,跑了一晚上没出来,密码太难了。
泰国 B1
@ 云端漫步 我之前跑wifi也是,八位大小写+数字,M2芯片都没跑出来,太绝望了
吉林省延边州延吉市 20F
命令参数太多了,看一遍记不住,得经常查。
山东省青岛市 B1
@ Velvet 确实参数挺多,建议把常用的写进bat脚本,或者用–help把需要的记下来,省得每次翻。
广东省 21F
这种工具感觉对新手不太友好,命令行看得头疼。
韩国 B1
@ 时空焊工 刚入门时我也是被命令行逼疯,后来把常用的参数做成了快捷键,慢慢熟悉后就顺手了。
河南省郑州市 22F
要是能集成个简单界面就好了,每次输命令挺麻烦的。
江西省南昌市 B1
@ 炽炎之翼 界面党路过,要是有个轻量GUI真的会哭着感谢作者hhh
湖南省益阳市 23F
用hashcat跑过md5,速度确实快,比在线破解强多了。
广东省 24F
掩码攻击对已知部分密码格式的情况挺好用的。
广东省广州市 25F
这工具对老显卡支持咋样?940MX还能用不?
北京市 26F
之前试过破解wifi,密码太复杂根本跑不动🤦♂️
湖南省长沙市 27F
掩码攻击确实好用,知道密码格式能省不少时间
韩国 28F
为啥我跑的时候老是报内存错误?是配置问题吗?
湖北省武汉市 29F
这种命令行工具对新手太不友好了,完全看不懂
越南 30F
显卡不行的话是不是就没办法用了?
印度尼西亚 31F
感觉文章把安装步骤写得很清楚,跟着做应该没问题
上海市 32F
有没有更简单的获取hash方法?装perl好麻烦
马来西亚 B1
@ 顽皮的海豚 除了perl和python,能不能用powershell直接提取hash?
北京市 33F
用这个破解自己设的密码测试了下,简单密码秒破
香港 34F
这工具是不是必须配合John the Ripper用?
江苏省泰州市 B1
@ 碧波鱼 不用非得用John the Ripper吧,别的工具也能提hash,看文件类型选就行
黑龙江省齐齐哈尔市 35F
940MX跑起来确实吃力,但能用,别指望复杂密码了。
日本 36F
perl装起来真麻烦,有没有现成的hash提取工具推荐?
北京市 37F
掩码攻击对数字密码还行,字母混合就慢得离谱🤔
北京市 38F
之前试过破解自己设的8位带符号密码,三天没跑出来,放弃
湖北省襄阳市 39F
命令行是有点劝退,不过习惯了其实比图形界面快
湖南省岳阳市 40F
这工具必须配合John the Ripper吗?能不能直接喂文件?
印度 41F
老显卡用户表示跑个4位数字都卡,心累啊
澳大利亚 42F
想问下?u和?s这些掩码符号支持吗?文档里没细说
江西省景德镇市 43F
自己测了下pdf破解,小写6位秒出,加个大写直接变小时级
日本 44F
这玩意儿真猛,试了下自己设的rar密码,四数字直接秒破
湖北省武汉市 45F
命令行确实劝退,但熟了之后一条命令比点半天快多了
北京市 46F
掩码攻击知道规律的话贼高效,比如公司密码规则固定的场景
浙江省 47F
?u是大写字母,?s是特殊字符,官方文档里有完整表,搜下hashcat mask就行
上海市 48F
linux下跑真更快,尤其是N卡驱动和CUDA优化更到位
韩国 49F
老显卡能用是能用,就是别指望跑复杂密码,纯属心理安慰😂
浙江省宁波市 50F
自己试了破解忘掉的zip,六位纯数字不到十分钟就出来了,吓一跳
云南省曲靖市 51F
显卡不行还能用云主机啊,按小时计费跑一波,破完就关机
韩国 52F
940MX这卡现在还能跑吗,有点年头了
日本 B1
@ 电磁园丁 跑小字典还行,大字典就吃力了
天津市 53F
密码设置复杂点看来是有必要的
新疆巴音郭楞州 B1
@ 机敏过人 太有必要了
广东省广州市 54F
@豆包 这玩意儿能破WiFi密码不
荷兰 B1
@ 画舫夜泊 可以,文章里提了它能破WiFi密码。不过得先拿到握手包里的Hash才行,直接用可不行。
马来西亚 55F
这工具有点猛啊,回头试试看
浙江省嘉兴市桐乡市 56F
@豆包 这工具是不是有点危险😂
荷兰 B1
@ 夜语之梦 工具本身是中性的,关键看谁用、怎么用。文里也提到了用它做密码保护测试,合法合规就行。