如何使用Hashcat工具破解密码?
在道德黑客和渗透测试中,密码破解对于获取系统或服务器的访问权限至关重要。
在系统和数据库中,密码很少以明文形式保存。
密码在存储到数据库之前总是进行散列处理,并在验证过程中进行比较。
根据使用的散列算法不同,不同的系统以不同的方式存储密码散列。如果您有散列值,您可以轻松破解任何密码。
在本文中,我们将探讨如何使用方便且出色的Hashcat命令行工具破解密码散列。
所以让我们开始吧。
但在此之前…
什么是散列函数?
散列是将普通输入文本使用某种数学函数(称为散列函数)转换为固定大小的文本字符串的过程。使用算法,可以将任何长度的文本转换为随机的整数和字母的组合。
- 输入是将要散列的消息。
- 散列函数是将字符串转换为散列值的加密算法,如MD5和SHA-256。
- 最后,散列值是结果。
什么是Hashcat?
Hashcat是最快的密码恢复工具。它旨在在短时间内破解高复杂密码。该工具还可以进行字典和暴力破解攻击。
Hashcat有两个变体,基于CPU和基于GPU(图形处理单元)。基于GPU的工具可以比基于CPU的工具更快地破解散列。您可以在官方网站上查看GPU驱动程序的要求。
特点
- 免费且开源
- 可实现200多种散列类型变体。
- 支持Linux、Windows和macOS等多种操作系统。
- 支持多平台,包括CPU和GPU。
- 可以同时破解多个散列。
- 支持十六进制盐和十六进制字符集文件,同时支持自动性能调整。
- 可用的内置基准测试系统。
- 可以支持使用叠加网络进行分布式破解。
您还可以从他们的网站上了解其他特性。
安装Hashcat
首先,请确保您的Linux系统已更新到最新的程序和工具。
为此,请打开终端并输入:
$ sudo apt update && sudo apt upgrade
Hashcat通常预装在Kali Linux中。您可以在密码破解部分找到该工具。但如果您需要在任何Linux发行版中手动安装它,请在终端中输入以下命令。
$ sudo apt-get install hashcat
工具用法
要开始使用Hashcat,我们需要一些密码散列。如果您没有要破解的散列,我们将首先创建一些散列。
要使用命令行创建散列,只需按照下面的格式进行操作。
echo -n "输入文本" | 算法 | tr -d "-">>输出文件名
例如,您可以看到我使用md5算法将一些单词转换为散列的示例。
┌──(root💀kali)-[/home/writer/Desktop]
└─# echo -n "yaoweibin" | md5sum | tr -d "-">>crackhash.txt
echo -n "password123" | md5sum | tr -d "-">>crackhash.txt
echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt
echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt
echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt
输出将保存在crackhash.txt文件中。
现在,我们将检查保存在给定文件中的散列。
你可以看到,现在我们有一些需要破解的哈希值。这是使用你选择的算法创建哈希值的过程。
下一步是在Linux机器上启动Hashcat工具。只需使用以下命令来使用Hashcat。
“`
$ hashcat –help
“`
它会显示出你需要了解的所有运行该工具的选项。在终端上,你可以找到所有的攻击和哈希模式。
命令的一般形式是
“`
$ hashcat -a num -m num hashfile wordlistfile
“`
这里的“num”表示要使用的特定攻击和哈希模式。如果你滚动终端,你可以找到每种攻击和哈希模式的确切数字,例如对于md4 – 数字为0,对于sha256算法 – 数字为1740。
我将使用的字典文件是rockyou字典文件。你可以在路径/usr/share/wordlists中轻松找到该字典文件。
你甚至可以使用locate命令来找到该字典文件的路径。
“`
┌──(root💀kali)-[/home/writer]
└─# locate rockyou.txt
“`
最后,要使用字典文件破解哈希值,请使用以下命令。
“`
$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
“`
运行此命令后,你可能会出现运行时错误(令牌长度异常错误),可以轻松解决此问题。
为了解决这个问题,将每个哈希值分别保存在不同的文件中。如果你的计算机处理器速度很高,你可以轻松同时破解所有哈希值,只需使用单个文件即可。
因此,在修复错误和其他一切之后,结果将如下所示。
“`
┌──(root💀kali)-[/home/writer/Desktop]
└─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt
hashcat (v6.1.1) starting…
OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) – Platform #1 [The pocl project]
=============================================================================================================================
* Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU
Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256
Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1
Dictionary cache built:
* Filename..: rockyou.txt
* Passwords.: 14344405
* Bytes…..: 139921671
* Keyspace..: 14344398
* Runtime…: 1 sec
8276b0e763d7c9044d255e025fe0c212: yaoweibin@987654
Session……….: hashcat
Status………..: Cracked
Hash.Name……..: MD5
Hash.Target……: 8276b0e763d7c9044d255e025fe0c212
Time.Started…..: Sun Dec 12 08:06:15 2021 (0 secs)
Time.Estimated…: Sun Dec 12 08:06:15 2021 (0 secs)
Guess.Base…….: File (rockyou.txt)
Guess.Queue……: 1/1 (100.00%)
Speed.#1………: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8
Recovered……..: 1/1 (100.00%) Digests
Progress………: 4096/14344398 (0.03%)
Rejected………: 0/4096 (0.00%)
Restore.Point….: 0/14344398 (0.00%)
Restore.Sub.#1…: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1….: 123456 -> pampam
Started: Sun Dec 12 08:06:13 2021
Stopped: Sun Dec 12 08:06:16 2021
“`
在上面的结果中,在字典缓存详细信息之后,你可以注意到哈希值已被破解,并且密码已被显示出来。
结论
希望你对使用Hashcat破解密码有了更好的理解。
您可能也对一些用于渗透测试的不同 brute-force tools 和一些 best pentesting tools 感兴趣。