Hashcat的官方是这么介绍自己的

Hashcat is a password recovery tool. It had a proprietary code base until 2015, but was then released as open source software. Versions are available for Linux, OS X, and Windows. Examples of hashcat-supported hashing algorithms are LM hashes, MD4, MD5, SHA-family and Unix Crypt formats as well as algorithms used in MySQL and Cisco PIX.

这段话的意思大概是这样,可以看出它支持的范围相当广泛

Hashcat是一个密码恢复工具。直到2015年,它都有一个专有的代码库,但随后作为开源软件发布。版本适用于 Linux、OS X 和 Windows。哈希卡支持的哈希算法的示例包括 LM 哈希、MD4、MD5、SHA 系列和 Unix Crypt 格式,以及 MySQL 和 Cisco PIX 中使用的算法。

Hashcat安装教程

Hashcat的官网是Hashcat.net ,点击进去后会有两个下载选项,我们选择hashcat binaries,这个是直接可以在Windows下运行的,另一个需要使用Cygwin进行编译,为了快速入门,我们选择前者。

下载压缩包后解压到指定目录,这里是需要使用命令行运行的,我们这里使用power shell在文件夹目录中打开:

按住shift,单击鼠标右键后选择用powershell运行选项卡,可能会提示你Windows不信任此路径,这时候使用.\hashcat --help来查看所有命令,其实最常用的命令也就那几个,到时候有需要再查询即可。总的来说,Hashcat是一款非常强大的软件,很值得花时间来学习。

我们可以使用.\hashcat -a来选择破解密码的模式,后面接不同的参数代表着不同的破解方式

a后面接的字符 破解方式
3 Brute Force Attack 暴力破解
1 Combination attack 联合两个list进行组合破解
0 Dictionary attack 就是认为的把人们最常使用的密码譬如宠物名字之类的做成一个集后暴力破解
6 or 7 Mask attack就是另一种暴力破解,只不过你之前提供了你知道的密码的一些细节,使得它更精准

也可以说的更简洁,.\hashcat后面连接的字母表示你要选择的工作模式,比如说我选择了a就是要让Hashcat进入密码破解模式,然后后面接的数字就选择更为详细的工作模式

如图所示,你可以选择你想要的工作模式,官方也对每个工作模式给出了十分详细的解释

官方也对每一个哈希模式给出了相应的数字代码

暴力破解演示rar加密演示

在开始之前,只有一个Hashcat还是不够的,我们还需要一个叫做John the Ripper的软件,下载地址join the ripper它主要是配合Hashcat,由john the ripper解出密文后再使用hashcat转换成明文。

首先使用join-the-ripper获取hash值

在join-the-ripper的文件夹目录中使用powershell打开,以我的文件目录为例:

PS D:\john-1.9.0-jumbo-1-win64\john-1.9.0-jumbo-1-win64\run> .\zip2john.exe C:\Users\gyc\Desktop\test2.zip

运行结果如图所示:

可以看到Hash值为:

$pkzip2$2*1*1*0*8*15*de6c*5eb5*8a813c6eeff405eabee095d30add557ee06dfa6824*2*0*14*1f*a9536a8e*28*31*8*14*a953*5eb2*3415ef6fcda105a1356aa93c3d5b843345a24e2f*$/pkzip2$

复制这个哈希值
到这里,我们可以看到我们已经知道这个压缩包里装的是什么文件了
下一步,使用Hashcat获得明文密码,同样的,在Hashcat的目录里打开powershell,以我的为例

PS D:\hashcat-6.2.5\hashcat-6.2.5> .\hashcat.exe -a 3 -m 17225 $pkzip2$2*1*1*0*8*15*de6c*5eb5*8a813c6eeff405eabee095d30add557ee06dfa6824*2*0*14*1f*a9536a8e*28*31*8*14*a953*5eb2*3415ef6fcda105a1356aa93c3d5b843345a24e2f*$/pkzip2$

现在可以看到它报了一个错

这是为什么呢?

查阅资料得知,hashcat对cpu解密的更新好久没有更新了。按照提示,下一步我们计划安装CUDA tools。
我们这里选择local tools进行下载CUDA tools 本地端下载,可根据实际需要选择。

安装CUDA如下


然后我们重启试一下,运行.\hashcat.exe -a 3 -m 17225+你的哈希值
发现还是不可以,报错第一行提示cuFuncSetAttribute is missing from CUDA shared library我们上网搜一下,在hashcat的官方论坛找到了这个答案:

nvrtc64_80.dll means that you have CUDA 8 installed. This is the wrong version because it’s way too old.
Please get fully rid of CUDA 8 (uninstall it completely by also using driver fusion and/or ddu and remove the remaining libs).
what you should have with the correct CUDA 10.1 installed is: nvrtc64_101_0.dll

我们回到Powershell里面也可以发现

这里显示这个CUDA版本为8.0.0,这就奇了怪了,刚刚明明是在官网下载的最新版,怎么会这样?
继续排查
我们去Windows的system32的文件夹下面查看一下有没有nvrtc.dll这个文件,找一下,果然没有,但是我下载这个dll文件并把它放入system32文件夹以后,问题并没有得到解决,我目前这台电脑属于公司的古董台式机,实在不想折腾显卡驱动什么的,换一种方法。于是又找了一个word文件加密进行解密。

解密加密后的word文件

我们用命令行依次运行john the rapper、hashcat。为了方便输入,我们可以把要提取hash的文件放在D盘的根目录下面,运行命令来提取哈希(在你的john the ripper>run 所在的文件目录下打开命令行):

office2john.py D:\test.docx

补充一点,如果你的电脑安装了pycharm之类的python IDE,你需要在前面加上python,不然会直接打开pycharm让你编辑。

python office2john.py D:\test.docx

输出结果类似于:

后面长长的一串就是hash

:$office$*2007*20*128*16*a819d3a96e4099cc410f0aaa2138333a*dbaea363dcfe06cbc115cad79baaf7d9*cd20755cdf30aa2be75af4033c4a784b620e57e2

office后面的2007要记好,这个代表这个文件加密采用的office版本,后面使用hashcat是要依次为依据来查询hashcat的mode code,可以把这个hash值保存在txt文件中方便后续使用。
然后在hashcat的文件夹目录下打开,我们可以使用hashcat.exe --help命令来查询mode code,前面求哈希的时候我们就已经知道了hash头是$office$2007,查表得知mode code 为 9400,然后输入:

hashcat.exe -m 9400 -a 3 +你刚才获取的哈希值+ ?d?d?d?d?d?d+ -o out.txt

每一个?d代表一位密码位,这里相当于是告诉程序我的密码有多少位,减少了计算的时间,然后再输出到hashcat同目录文件夹下面的out.txt文件中。
算hash值过程如下:

可以看到statue为runing
你可以在下面看到cpu温度与风扇转速
运行结果如下:

可以看到现在的statue为exhausted,表示算力用尽,我目前这个台式机实在太垃圾,正常你算完就应该显示cracked。
这个系列后面有人看再更新,包括爆破wifi密码什么的,慢慢更新

Hashcat从入门到入土(一)相关推荐

  1. Hashcat从入门到入土(二)

    使用hashcat破解word密码 昨天的文章里给自己挖了一个坑,使用公司电脑显卡还是GT705古董级别的,显卡驱动也没设置好,导致使用hashcat的时候出现了exhausted的问题,导致密码没有 ...

  2. rocketmq怎么保证消息一致性_从入门到入土(三)RocketMQ 怎么保证的消息不丢失?...

    精彩推荐 一百期Java面试题汇总SpringBoot内容聚合IntelliJ IDEA内容聚合Mybatis内容聚合 接上一篇:RocketMQ入门到入土(二)事务消息&顺序消息 面试官常常 ...

  3. Activiti工作流从入门到入土:完整Hello World大比拼(Activiti工作流 API结合实例讲解)

    文章源码托管:https://github.com/OUYANGSIHAI/Activiti-learninig 欢迎 star !!! 本来想着闲来无事,前面在项目中刚刚用到了工作流 Activit ...

  4. activiti api文档_【白银人机】Activiti 工作流从入门到入土:完整 hello world 大比拼(API 结合实例讲解)...

    点击上方"好好学java",选择"置顶"公众号 重磅资源.干货,第一时间送达 重磅推荐  ① 纯福利 | 公众号资源大汇总,一年才一次! ② 重磅!!2018年 ...

  5. 从入门到入土(十)RocketMQ集群流程以及核心概念

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:从入门到入土(九)手摸手教你搭建RocketMQ双主双从同步集群 ...

  6. 从入门到入土(九)手摸手教你搭建RocketMQ双主双从同步集群,不信学不会!...

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:从入门到入土(八)RocketMQ的Consumer是如何做的负 ...

  7. 从入门到入土(八)RocketMQ的Consumer是如何做的负载均衡的

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:RocketMQ入门到入土(七 )为什么同一个消费组设置不同ta ...

  8. RocketMQ入门到入土(七 )为什么同一个消费组设置不同tag会出现奇怪现象

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:RocketMQ入门到入土(六)发消息的时候选择queue的算法 ...

  9. RocketMQ入门到入土(六)发消息的时候选择queue的算法有哪些?

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:RocketMQ入门到入土(五)消息持久化存储源码解析 一.说明 ...

最新文章

  1. 基于GAN的图像水印去除器,效果堪比PS高手
  2. Gmail全球大规模宕机
  3. 2021-08-02 json文件批量转化mask,生成train.txt路径make_path.py
  4. C/C++关于scanf_s的一些坑
  5. 【论文解读】SIGIR 2020 | 超越用户embedding矩阵:用哈希对大型用户建模
  6. Restlet Client 安装 网盘里面有压缩文件夹下载引用即可 谷歌浏览器
  7. 【渝粤题库】陕西师范大学201381 国际经济法作业
  8. c# 在winform中为DataGridView头部标题添加ContextMenuStrip菜单
  9. TensorFlow 教程 --进阶指南--3.4数据读取
  10. 如何检查python是否安装了pip_如何检测和删除通过pip安装的Python包?
  11. 路由器、交换机、集线器的区别
  12. 怎么建立局域网_用ZeroTier搭建属于自己的虚拟局域网(VLAN)
  13. nyoj 吃土豆 234 (双层DP)
  14. 英语流利说 第25天
  15. java-计算球体积
  16. OSChina 周六乱弹 —— 感谢女装红薯开办了这个网站
  17. java socket 点对点_javaSocket点对点实现文件传输
  18. 怪物猎人ol服务器维护,《怪物猎人OL》新版15日上线 狩魂石系统开启
  19. 资产实物综合管理系统应用方案介绍
  20. 赛灵思宣布收购深鉴科技

热门文章

  1. Java模块化方法–模块,模块,模块
  2. SmartGWT入门,提供出色的GWT界面
  3. vue进行判断使用class_vue判断dom的class
  4. 小米路由器4Q的设置
  5. 项目建立数据库初始环境脚本文件的示例
  6. 八中计算机是学啥的,北京八中:居然有这么好玩的课
  7. linux安装meld rpm,Linux meld安装
  8. java iterator 嵌套_Java中的集合嵌套
  9. Mobaxterm常用的指令(基于linux)
  10. ftp主要完成与远程计算机的连接,2015计算机三级《网络技术》复习重点:远程登录服务和FTP服务...