摘要
HashCat是一款非常好用的工具, 可以利用图形处理器单元的计算能力在离线环境下破解密码, 该工具处理密码猜测的效率非常高, 大大缩短了破解密码哈希所需的总时长。在本篇文章中, 将介绍在不同环境下的Hashcat使用方法, 通过一些实际操作演示来展示如何部署Hashcat来破解一些最常见的哈希值。
关于HashCat
Hashcat是一款流行的密码破解开源软件, 可以使用各种攻击模式破解各种哈希值。它利用GPU的硬件加速, 可以比通用CPU更高效地执行计算任务。GPU的速度直接影响破解速度, 更快的GPU可以同时处理更多的密码猜测。
根据哈希类型、密码的复杂性以及所使用的GPU, Hashcat在暴力攻击期间每秒可以测试多达数百万个密码组合, 这大大超出了CPU的能力。
关于哈希
哈希是使用哈希函数从密码创建的固定长度字符串表示。简单来说,哈希函数接受输入数据, 并通过数学计算返回一个固定长度的字符串, 一旦数据被哈希化, 就无法逆转该过程并从哈希中检索原始数据。
以下是密码"password123"的MD5哈希的示例:
以下是密码"password1234"的MD5哈希值:
尽管只是在密码后面添加一个数字, 但它创建了一个完全唯一的哈希值。网站创建密码的哈希值作为保护用户敏感数据的安全措施, 当用户登录时, 输入的密码将被散列, 如果该散列与数据库中存储的散列匹配, 则用户将成功登录。
Hashcat的密码列表
Kali Linux预先打包了可用于破解密码的单词列表, 单词列表文件位于/usr/share/wordlists目录中。最常用的文件是rockyou.txt, 尤其是在进行CTF时, 这个文件非常庞大, 包含超过一千四百万个用户密码。
另一个不错的密码资源是SecLists, 下载地址: https://github.com/danielmiessler/SecLists/tree/master/Passwords, 该资源包含很多密码列表, 包括“500-worst-passwords.txt”和“darkweb2017-top10000.txt”。密码列表是常用、默认或泄露密码的集合。
通过针对所测试的组织或人群进行定制,Hashcat 的正确单词列表可以显着提高密码破解的效率。
Windows中安装Hashcat
第一步从Hashcat站点下载二进制文件,下载地址:https://hashcat.net/hashcat/
下载之后, 解压到X:Hashcat文件夹中, 接下来需要转到命令行中加载命令选项, 大致使用方式如下:
使用Hashcat破解过程
Hashcat Wiki拥有丰富的资源,可用于查找适用于该程序的所有哈希值。它提供了哈希表视图, 如图:
可以使用浏览器中的 find 命令轻松搜索。这将帮助找到与需要破解的哈希值一起使用的哈希模式。
还可以使用命令行查看哈希列表--help
。
向下滚动, 直到看到标题为:"哈希模式"的部分,如图:
在Linux系统上, 还可以使用grep命令快速搜索特定的哈希值, 例如: hashcat --help | grep md5 。
Hashcat可以运行不同的攻击模式, 例如: 字典攻击、组合攻击、掩码攻击和混合攻击, 这里将主要演示字典攻击。
在字典攻击中,密码文件中的每个单词都被哈希并与目标哈希进行比较。如果哈希匹配, 则找到了原始密码。
可以使用以下命令运行基本的Hashcat字典攻击:
hashcat -m 0 -a 0 hash.txt wordlist.txt
-
-m 0: 哈希类型的选项。在这种情况下,0代表MD5。这里的值会根据你尝试破解的哈希类型而变化。例如,-m 1000 会用于NTLM哈希。
-
-a 0: 这是攻击模式。在这种情况下,0代表“直接”模式,即字典攻击。
-
hash.txt: 这个文件包含你要尝试破解的哈希值。它应该是一个文本文件,每行一个哈希值。
-
wordlist.txt: 这是你的字典或潜在密码列表。与哈希文件一样,这应该是一个文本文件,每行一个条目。
Hashcat可以与其他选项一起使用,具体取决于你的需求。以下是一些示例:
-
-r: 这个选项允许你指定一个规则文件。Hashcat中的规则允许你以特定方式修改来自你的字典的单词,这可以大大扩展你测试的潜在密码数量。例如,一个规则可能是尝试将单词转换为小写和大写,或在单词的末尾添加特定数字。
-
--debug: 这个选项启用调试模式。在调试模式下,Hashcat会提供额外的输出来帮助你排除问题。例如,如果你正在使用规则文件,调试模式可以显示规则如何确切地修改来自你的字典的单词。
-
--force: 这个选项会强制Hashcat启动,即使它检测到你的系统可能无法正确运行它。一般来说,只有在你知道自己在做什么的情况下才建议使用这个选项,因为它可能导致错误的结果,甚至损坏你的硬件。
下面的演示将向你展示如何在Windows中运行Hashcat,但是在Linux中运行时语法是相同的。确保将哈希保存为 .txt 文件。
在Windows系统中执行以下命令:
hashcat.exe -m 18200 asrep.txt -a 0 rockyou.txt
可以看到, 只用了两秒就破解了密码。密码越弱,Hashcat破解起来就越容易。
下面看看如何破解NTLM哈希密码:
执行破解语法为:
hashcat.exe -m 1000 ntlmhash.txt -a 0 rockyou.txt
可以看到,仅仅用了3秒就破解了密码。
原文始发于微信公众号(二进制空间安全):一款强力的Hash密码破解工具和字典
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论