Hashcat从入门到入土(一)

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

也可以说的更简洁,.\hashcat后面连接的字母表示你要选择的工作模式,比如说我选择了a就是要让Hashcat进入密码破解模式,然后后面接的数字就选择更为详细的工作模式
在这里插入图片描述
如图所示,你可以选择你想要的工作模式,官方也对每个工作模式给出了十分详细的解释
Hashmode
官方也对每一个哈希模式给出了相应的数字代码

暴力破解演示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如下

安装CUDAtools
然后我们重启试一下,运行.\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密码什么的,慢慢更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL在哪里看secret_key_K8S 创建和查看secret(九)

yaml中的用户密码敏感信息一般都会采用密码存储采用base64编码进行加密[roothz-95 pv]# echo -n guang | base64emd1YW5nag[roothz-95 pv]# echo -n 1q2w#E$R | base64cat secret.ymalapiVersion: v1kind: Secretmetadata:name: mysecret2data:username: emd1YW5nagpassword: M…

java 语义_Java文件合并变得语义化

java 语义与任何程序员交谈,并询问他应该如何进行合并:“它应该理解代码,对其进行解析,然后根据结构进行合并” –他很可能会说。 而这恰恰是SemanticMerge for Java所做的:它解析要合并的文件(加上祖先或…

python循环指令_Python循环

布尔运算学习循环之前,先了解一个概念:布尔运算布尔运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维布尔运算发展到三维图形的布尔运算…

Apache Pulsar:分布式发布订阅消息系统

Apache Pulsar是一个开源的分布式pub-sub消息传递系统,最初由Yahoo创建,并且是Apache Software Foundation的一部分 。 Pulsar是用于服务器到服务器消息传递的多租户高性能解决方案。 脉冲星的主要功能包括[4]: 对Pulsar实例中的多个集群的…

查看mysql进程ps_linux ps命令查看当前运行的进程

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想对进程进行实时的监控,应该用 top 命令。要对进程进行监测和控制&#xff0…

java获取文件编码_java如何获取文件编码格式

1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK。按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理就是只要读出文件前三…

java上传文件功能_Java MemoryMapped文件的功能

java上传文件功能Java MemoryMapped文件的功能 在JDK 1.4中,内存映射文件的一个有趣功能被添加到Java中,该功能允许将任何文件映射到OS内存以进行有效读取。 内存映射文件可用于开发IPC类型的解决方案。 本文是使用内存映射文件创建IPC的实验。 有关内存…

java代码快速_java代码编写快捷途经

CtrlR 然后按下R键SHiftAltR:对选定属性进行全局命名CtrlD:删除当前行CtrlQ: 定位到最后编辑的地方CtrlL: 定位在某行CtrlM: 最大化当前的 Edit(命令)CtrlO:快速显示大纲CtrlD:显示继承结构CtrlW :关掉当…

控制Java并行流的并行度

在掌握了这些新功能之后,随着Java 9的最新发布,我们有了许多新功能可以用来改进我们的解决方案。 Java 9的发布也是修改我们是否掌握Java 8功能的好时机。 在本文中,我想解决关于Java并行流的最常见的误解。 人们通常说您不能以编程方式控制…

java小型超市系统_Java小型超市收银系统

【实例简介】Java SE开发的超市收银系统,实现了数据库操作,文件读取数据,写入数据等操作【实例截图】【核心代码】超市收银系统└── 期末综合├── bin│ ├── Driver.class│ ├── control│ │ ├── ExportMenuController…

double取值范围 java_Java中float/double取值范围与精度

Java浮点数浮点数结构要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个东西&#…

开源点云数据处理 开源_大数据开源安全

开源点云数据处理 开源在安全性方面从未有(恕我直言)已经足够了开源解决方案和布鲁斯已经撰写了有关这几个 时间在过去 ,而且也没有必要再次改写参数。 现在,随着市场上“ NoSQL”和“大数据”开源趋势的发展,安全终于…

为您的Web应用程序启用两因素身份验证

支持两因素身份验证(2FA)几乎总是一个好主意,尤其是对于后台系统。 2FA有许多不同的形式,其中一些包括SMS,TOTP甚至是硬件令牌 。 启用它们需要类似的流程: 用户转到其个人资料页面(如果要在注…

redis java序列化_java处理redis的几种序列化策略

简单记录一下java处理redis的几种序列化策略,这里使用的环境是springboot 2.0.4springboot中提供了StringRedisTemplate和RedisTemplate两种序列化类,它们都只能读自己存的数据,即数据互不相通。主要区别如下:1、采用的序列化策略…

java 访问内部类的属性_java中的内部类详细总结

内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方…

迟来总比没有好:SSE或服务器发送的事件现在已在JAX-RS中

服务器发送的事件 (或简称为SSE )是非常有用的协议,它允许服务器通过HTTP将数据推送到客户端。 这是我们的网络浏览器支持的年龄,但令人惊讶的是, JAX-RS规范在很长一段时间内都忽略了这一点。 尽管Jersey提供了适用于…

java 面向对象继承的思想_Java面向对象思想

Java类的定义:成员变量会默认初始化,局部变量不会默认初始化。如何在内存中区分类和对象:♦类是静态的概念,代码区♦对象是new出来的,位于堆内存,类的每一个成员变量在不同的对象中都有不同的值(除了静态变…

java 垃圾回收手动回收_Java垃圾回收(4)

java 垃圾回收手动回收G1:垃圾优先 G1收集器是热点JVM中要实现的最新收集器。 自Java 7 Update 4以来,它一直是受支持的收集器。OracleGC团队也公开表示,他们对低暂停GC的希望是完全实现的G1。 这篇文章来自我之前的垃圾收集博客文章&#xf…

使用正确的垃圾收集器将Java内存使用量降至最低

大小对于软件至关重要。 很明显,与大型整体方法相比,在微服务体系结构中使用小型组件具有更多优势。 最新的Java版本的Jigsaw可帮助分解旧应用程序或从头开始构建新的云原生应用程序。 这种方法减少了磁盘空间,构建时间和启动时间。 但是&am…

java 鼠标画多个圆形_点击鼠标不同的建(左、中、右)画一个不同颜色的圆

[java]代码库import java.awt.Color;import java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JFrame;public class T1 extends JFrame{int x;int y;Color c;public T1(){this.setSize(600,400);this.setDefaultCl…