Hashcat用法详解(每周更新)

这个系列讲的是Hashcat的各种用法,现在只完成了其中一部分内容,每周更新,感兴趣的可以持续关注一下~

Hashcat用法

哈希与加密

哈希

散列是将一些文本转换为字符串的过程,该字符串对于该特定文本是唯一的。散列是一种单向过程,这意味着无法从散列中重建原始明文。散列可用于各种目的;例如,MD5和SHA256算法通常用于验证文件完整性,而PBKDF2等算法用于在存储前对密码进行哈希处理。一些散列函数可以是键控的。一个例子是HMAC,它验证特定消息在传输过程中是否被篡改。
由于散列是一种单向过程,因此攻击它的唯一方法是使用包含可能密码的列表。此列表中的每个密码都经过哈希处理并与原始哈希值进行比较。
一种针对暴力破解哈希的保护措施是“salting”。salt 是在散列之前添加到明文中的随机数据。这增加了计算时间,但并不能完全防止暴力破解。

让我们考虑明文密码值“ p@ssw0rd ”。这个的 MD5 哈希可以计算如下:

kali@kali:~$ echo -n "p@ssw0rd" | md5sum

0f359740bd1cda994f8b55330c86d845

一些哈希函数(例如 MD5)也可能产生相同的哈希值。

加密

加密是将数据转换为原始内容无法访问的格式的过程。与哈希不同,加密是可逆的,即可以解密密文并获得原始内容。加密密码的一些经典示例是凯撒密码、培根密码和替代密码。加密算法有两种类型:对称和非对称。

对称加密

对称算法使用密钥来加密数据并使用相同的密钥来解密数据。对称加密的一个基本示例是 XOR。

kali@kali:~$ python3

Python 3.8.3 (default, December 14 2022, 11:03:12) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pwn import xor
>>> xor("p@ssw0rd", "secret")
b'\x03%\x10\x01\x12D\x01\x01'

在上图中,明文为p@ssw0rd,,密钥为secret。任何人只要有密钥,就可以解密密文,得到明文。

kali@kali:~$ python3

Python 3.8.3 (default, May 14 2020, 11:03:12) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pwn import xor
>>> xor('\x03%\x10\x01\x12D\x01\x01', "secret")
b'p@ssw0rd'

对称算法的其他一些示例是AES、DES和3DES,这些算法可能容易受到密钥暴力破解等攻击。

非对称加密

另一方面,非对称算法将密钥分为两部分(即公钥和私钥)。公钥可以提供给任何希望加密某些信息并将其安全地传递给所有者。然后所有者使用他们的私钥来解密内容。非对称算法的一些示例是RSA、ECDSA和Diffie-Hellman。
非对称加密的突出用途之一是HTTPS协议。当客户端连接到HTTPS网站的服务器时,会发生公钥交换。客户端的浏览器使用这个公钥来加密发送到服务器的任何类型的数据。服务器在将传入流量传递给处理服务之前对其进行解密。

识别哈希

大多数哈希算法都会生成固定长度的哈希。特定的哈希长度可用于将其映射到用于哈希算法。例如,长度为 32 个字符的哈希可以是 MD5 或 NTLM 散列。
有时,哈希以特定格式存储。例如,hash:salt$id$salt$hash
哈希2fc5a684737ce1bf7b3b239df432416e0dd07357:2014是一个 SHA1 散列,其salt值为2014.

哈希$6$vb1tLY1qiY$M.1ZCqKtJBxBtZm1gRi8Bbkn39KU0YJW1cuMFzTRANcNKFKR4RmAQVk4rqQQCkaJT6wXqjUkFcA/qNxLyqW.U/包含由$分隔的三个字段,其中第一个字段是id,即6。这用于识别哈希的算法类型。以下列表包含一些 id 及其对应的算法。

$1$  : MD5
$2a$ : Blowfish
$2y$ : Blowfish, with correct handling of 8 bit characters
$5$  : SHA256
$6$  : SHA512

Hashid

Hashid是一个Python工具,使用pip安装,可以用来检测各种哈希值。在撰写本文时,hashid可用于识别超过 200 种独特的哈希类型,对于其他类型,它会做出最大努力猜测,这仍需要一些额外的工作来缩小范围。可以在此处找到支持的哈希的完整列表。

kali@kali:~$ pip install hashid

直接通过hashid+哈希值/文件即可进行识别

kali@kali:~$ hashid '$apr1$71850310$gh9m4xcAn3MGxogwX/ztb.'

Analyzing '$apr1$71850310$gh9m4xcAn3MGxogwX/ztb.'
kali@kali:~$ hashid hashes.txt 

--File 'hashes.txt'--
Analyzing '2fc5a684737ce1bf7b3b239df432416e0dd07357:2014'
[+] SHA-1 
[+] Double SHA-1 
[+] RIPEMD-160 
[+] Haval-160 
[+] Tiger-160 
[+] HAS-160 
[+] LinkedIn 
[+] Skein-256(160) 
[+] Skein-512(160) 
[+] Redmine Project Management Web App 
[+] SMF ≥ v1.1 
Analyzing '$P$984478476IagS59wHZvyQMArzfx58u.'
[+] Wordpress ≥ v2.6.2 
[+] Joomla ≥ v2.5.18 
[+] PHPass' Portable Hash 
--End of file 'hashes.txt'--
[+] MD5(APR) 
[+] Apache MD5

除了能够确定哈希类型,hashid还可以使用-m提供相应的Hashcat的哈希模式。

并不总是可以根据获得的哈希来识别算法。根据软件的不同,明文可能会经过多轮加密和salting变换,使其更难恢复。

hashid使用正则表达式对提供的哈希类型做出最大程度确定,它是通过确定哈希的来源从而缩小哈希类型的范围,Hashcat的文档提供了大量哈希示例,可以帮我们最终确定哈希模式的值。

kali@kali:~$ hashid 'a2d1f7b7a1862d0d4a52644e72d59df5:500:lp@trash-mail.com'

Analyzing 'a2d1f7b7a1862d0d4a52644e72d59df5:500:lp@trash-mail.com'
[+] MD5 
[+] MD4 
[+] Double MD5 
[+] LM 
[+] RIPEMD-128 
[+] Haval-128 
[+] Tiger-128 
[+] Skein-256(128) 
[+] Skein-512(128) 
[+] Lotus Notes/Domino 5 
[+] Skype 
[+] Lastpass 

快速浏览Hashcat示例将帮助我们确定它是 Lastpass 哈希,即哈希模式6800。

Hashcat概述

Hashcat攻击类型

字典攻击

组合攻击

掩码攻击

混合攻击

构建词汇表

破解普通哈希

破解Misc文件哈希

破解无线协议

参考

Hashcat文档

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: cat命令是Linux中常用的一个命令,它的作用是将文件内容输出到终端或者将多个文件合并成一个文件。cat命令的语法格式为: cat [选项] [文件名] 其中,选项包括: -n:显示行号 -b:显示非空行的行号 -s:将连续的空行压缩成一行 -A:显示所有控制字符 -v:显示非打印字符 -e:在每行末尾显示$符号 文件名可以是一个或多个文件,多个文件之间用空格隔开。如果文件名为“-”,则表示从标准输入读取数据。 cat命令的常用用法包括: 1. 查看文件内容:cat filename 2. 将多个文件合并成一个文件:cat file1 file2 > file3 3. 将文件内容输出到终端并带有行号:cat -n filename 4. 将文件内容输出到终端并显示非打印字符:cat -v filename 总之,cat命令是Linux中非常实用的一个命令,掌握它的使用方法可以提高我们的工作效率。 ### 回答2: 在Linux中,cat是一个常用的命令,它不仅可以显示文件内容,还可以将多个文件合并为一个文件。下面详细介绍一下cat命令的使用方法。 1. 显示文件内容: 使用cat命令可以显示一个文件的内容,语法为: $ cat [文件名] 例如: $ cat demo.txt 该命令将显示demo.txt文件的内容。如果要查看一个较长的文件,可以使用管道符“|”结合more或less命令进行分页显示。 2. 合并文件: 使用cat命令可以将多个文件合并成一个文件,语法为: $ cat [文件1] [文件2] > [新文件] 例如: $ cat file1.txt file2.txt > file3.txt 该命令将file1.txt和file2.txt的内容合并到file3.txt中。如果想要将多个文件直接合并到一个文件中,支持通配符“*”,语法为: $ cat [文件夹]/* > [新文件] 例如: $ cat /tmp/* > allfiles.txt 该命令将/tmp目录下的所有文件都合并到allfiles.txt中。 3. 添加内容到文件: 使用cat命令可以将内容添加到文件的末尾,语法为: $ cat >> [文件名] 例如: $ cat >> demo.txt 该命令会将任何输入添加到demo.txt的末尾,直到用户通过Ctrl + D结束输入。 4. 显示行号: 使用cat命令可以显示文件的行号,语法为: $ cat -n [文件名] 例如: $ cat -n demo.txt 该命令将会在每一行内容前添加行号。 5. 将输出复制到剪贴板: 使用cat命令可以将输出复制到剪贴板,语法为: $ cat [文件名] | xclip 例如: $ cat demo.txt | xclip 该命令将会将demo.txt文件的内容复制到剪贴板,方便用户进行粘贴操作。 以上是cat命令的常用功能,以上列举的用法是比较基础的,实际使用中,还有很多cat命令的高级用法需要掌握。总之,cat命令是Linux系统中非常实用的一个命令,合理使用cat命令可以极大地提高工作效率。 ### 回答3: cat 命令是 Linux 操作系统中的一个功能强大的文本处理命令,主要用于合并文件、查看文件内容、创建文件和复制文件等。本文将详解 cat 命令的常用用法及其参数含义,以及实际应用中的常见场景。 一、查看文件内容 cat 命令最常用的功能之一就是查看文件的内容。使用方法很简单,只需在命令行中输入“cat <文件名>”即可。例如: $ cat file.txt 执行以上命令后,系统会在终端输出 file.txt 文件的全部内容。如果要查看多个文件的内容,可以在命令行中同时输入多个文件名,以空格分隔。例如: $ cat file1.txt file2.txt file3.txt 二、合并文件 通过 cat 命令,可以将多个文件合并成为一个文件。例如,将 file1.txt 文件和 file2.txt 文件合并成一个新的文件 file3.txt: $ cat file1.txt file2.txt > file3.txt 这个命令中,“>”符号的作用是将输出重定向到一个新的文件中。 三、创建文件 使用 cat 命令还可以创建新的文件。例如,要创建一个名为 newfile.txt 的新文件,可以使用如下命令: $ cat > newfile.txt 然后在终端中输入想要保存到 newfile.txt 文件中的文本,以“ctrl+d”结束输入。此时,你所输入的文本就已经被保存到了 newfile.txt 文件中了。 四、复制文件 使用 cat 命令还可以将一个文件的内容复制到另一个文件中。例如,要将 file1.txt 文件的内容复制到 file2.txt 文件中,可以使用如下命令: $ cat file1.txt > file2.txt 注意,如果 file2.txt 文件已经存在,那么执行上述命令将会覆盖原有的文件内容,如果不想覆盖,可以使用 -n 参数(表示不覆盖): $ cat -n file1.txt > file2.txt 五、参数说明 除了上述常用的基本用法之外,cat 命令还有一些其他的参数,这些参数可以用来扩展 cat 命令的用法。 1. -n 参数:在输出文件内容时,将每行前面添加行号。 2. -b 参数:只对空白行进行行号标记(与 -n 不同)。 3. -s 参数:将空白行压缩成一行。 4. -v 参数:将不可打印的字符输出为可见字符。 5. -A 参数:将所有控制字符输出为可见字符。 6. -T 参数:将制表符显示为^I。 举个例子,如果我们想要查看一个文件的内容,并且希望空白行被压缩成一行,并且在输出时添加行号,可以使用如下命令: $ cat -s -n file.txt 以上就是 cat 命令的常用用法及其参数含义的详细介绍。cat 命令虽然看起来简单,但是功能却非常强大,熟练使用 cat 命令可以让我们更加便捷地处理文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zyu0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值