写在文章开头
1.超过8位数的未知密码,不建议小白使用hashcat进行破解,老老实实干正事吧
2.hashcat软件重度依赖GPU,因此NVIDIA显卡用户必须安装CUDA库进行加速。同时该软件不仅支持NVIDIA显卡,还支持AMD显卡和INTEL显卡。
前言
普通人拿到个压缩包,想破解密码一般会上B站知乎csdn等网站搜索教程。在检索到的方法里面,使用hashcat和john联合破解的方法被推荐的最多。然而,在实践的过程中发现,这些教程良莠不齐,有很多纯属是傻币博主装高手,内容的核心价值只能算是提到了有这么个方法,根本没有提及一些隐藏的坑和技巧。本文将完整的记录整个操作过程,同时传授本人在破解过程中所学习到的一些经验,为后来者提供指导。
本文分为三个部分,第一个部分记录了顺利情况下的操作过程,第二个不分是关于破解过程中容易出现的坑,第三个部分是啥还没想好。
破解过程
破解流程可以简述为:使用john提取hash,然后使用hashcat计算密码。(听起来相当简单是吧)
需要准备的软件
john:John the Ripper password cracker
进网站可以发现有几个版本的,以Windows 64位系统为例,下载如下图所示binaries版本的,上面的那个source版本的是源代码,新手用不到,直接下编译好的可执行文件版本。
hashcat:hashcat – advanced password recovery
下载hashcat的方法同john,下载binaries版本
下载完毕解压备用。
操作流程
提取hash
使用john提取hash有两种方法,一种是cmd窗口使用cd命令切换到run目录下,一种是使用powershell窗口。两种方法的命令有一点点不同。为了简便起见,此处介绍用powershell的方式。解压完毕首先进入john的run目录,如下图所示:
在该文件内按住shift点击鼠标右键弹出列表,单击:在此处打开powershell窗口。然后输入
.\rar2john.exe "文件地址"
这儿有三个要点,第一个是rar2john.exe,如果是rar压缩包,就用这个,如果是zip结尾的压缩包,就用zip2john.exe,其他的格式的请自行查阅官网网站。第二个要点就是文件地址,文件地址即要提取hash的压缩包地址,可以单击选中压缩包,然后按住shift右键,列表里面选择:复制文件地址,复制的地址直接在exe后面空一格ctrl v粘贴就行,不要删掉粘贴出来的双引号。第三个要点是,大文件压缩包提取的hash会很长,因此我们最好是保存hash到txt文本文件中,只需要在上面的代码后面加一句代码就行。如下:
.\hashcat.exe "文件地址" > hashvalue.txt
这儿的hashvalue.txt就会将提取的hash保存进去,同时储存在john的run目录下。
hash预处理
保存在hashvalue.txt的值不能直接用,这儿需要用到一个网站来查询hash类型,然后人工做预处理。
网址是:example_hashes [hashcat wiki]
我们首先打开前面保存的txt,观察前一段:这儿“rar:”后面的$RAR3$即代表hash类型,复制到上面这个网址即可以查询,可以查询到有两个对应的hash。
然后再观察两种hash的结构类型,发现最大的区别在于一个的末尾是*30一个是*33,这儿就把我们txt打开拉到末尾观察,发现是*33类型的,也就是Hash-Mode 23800,这个值23800需要记下来后面用。
hashcat破解密码
打开解压后的hashcat文件夹,把hashvalue.txt复制到该目录,以前文相同的操作方式打开powershell。
首先输入如下代码查询本机CUDA信息。
.\hashcat.exe -I
显示:
看了没问题,可以启用CUDA加速。如果没有CUDA Info这一栏,那么说明电脑没有CUDA(有特殊情况下会出现本来有cuda但是识别不了的,遇到这种一般是建议直接去NVIDIA网站下载个最新版的CUDA)
在正式开始前,还需要运行测试一下破解速度,命令为:
.\hashcat.exe -b
如果这一步没有报错,那就可以正常开始,但是一般情况下,萌新在这一步会遇到什么Failed to initialize NVIDIA RTC library啥的,解决办法还是重新装CUDA。这一步测试会持续很长一会儿,懒得等的可以直接叉掉重新开一个powershell窗口。
然后输入:
.\hashcat.exe -a 3 -m 23800 hashvalue.txt
这儿-a代表破解模式, 3为掩码攻击,-m代表hash类型,23800就是前面查询到的hash mode,hashvalue.txt就是前面提取到的掩码文本。
这儿除了这几项参数,还可以输入其他参数,比如密码本,比如破解长度,比如指定使用的设备号(GPU),但是这些已经超过了萌新应该掌握的程度了,就不再展开讲述。想深入学习的可以去谷歌慢慢学。
输入完毕就可以开始进行破解了,破解过程中可以输入相应的按键控制破解过程,比如输入s可以查看破解状态,破解速度,预估时间,破解长度等等。
下图是我用四张2080ti跑的,受CPU和温度墙影响,速度只有83974H/s,中间暂停了一下,实际已经跑了16个小时了,才破解到7位数,预计18天破解完。。。。另外用过一张1063显卡跑,速度14000H/s,16个小时跑到6位数。一张4060显卡跑的速度在26000H/s。另外,不同的hash类型会直接影响破解的速度。
容易踩的坑
hash太长怎么办
很多同学在网上看完其他博主演示的教程,屁颠屁颠的下完软件准备破解动辄几百上G的资源,结果发现tm的hash提取出来,复制半天不到头。跟博主演示的一行两行的那种hash完全对不上,会怀疑自己是不是哪一步搞错了。
其实没有搞错,这儿是因为博主演示的包很小,所以hash很短,而你真拿一个几十上百Mb甚至GB的包去提取,取出来的hash自然会变长,为了避免复制过程中出错,同时为了操作简单,我们直接加了一个> hashvalue命令把HASH保存到txt文本再做处理,最后load到hashcat里面去破解。
nvalid zip file, filename length too long!
这个问题一般是没有对hashvalue里面的hash值做处理导致的,就是截尾那个地方,*33后面的内容要全部删除掉。一定要让hash的格式对应example_hashes [hashcat wiki]网站里面查询到的hash类型。清洗好了再导入到hashcat里面去破解。
压缩包里有很多文件 不能得到hash值怎么办?
这个要分两种情况讨论,一种是压缩包里还有多个压缩包的情况,一种是压缩包里是文件夹或者文件的情况。关于压缩包里含压缩包的情况我还没试过,就不讨论了。另外一种压缩包里是文件夹或者文件的情况,这种会提取得到很多条hash,只需要选择一条,清洗处理完拿去破解就行。
使用心得
一般电脑可以破解六位及以下的字母+数字密码。超过6位的,不建议私人进行破解。除非豪气冲天上4090或者服务器,淘宝也有代跑的,但我没了解过价格。遇到汉字的密码,市面能查到的所有暴力算法在现有硬件和算法条件下直接嗝儿屁。
文章出处登录后可见!