破解密码保护的 RAR 压缩文件

Kali LinuxBeginner
立即练习

引言

在本实验中,你将学习破解受密码保护的 RAR 压缩文件的过程。这是渗透测试和数字取证中的一项常见任务。你将使用 Linux 上一系列强大、行业标准的工具:rar 用于创建压缩文件,John the Ripper 套件(特别是 rar2john)用于从压缩文件中提取哈希值,以及 Hashcat 用于破解哈希值以揭示原始密码。

该过程包括创建一个受保护的示例文件,提取其密码哈希值,识别用于破解工具的正确哈希类型,最后启动字典攻击来查找密码。这个实践练习将为你提供对密码破解机制的基本理解。

创建一个受密码保护的 RAR 文件

在此步骤中,你将创建一个受密码保护的 RAR 压缩文件。这将作为我们密码破解实验的目标。我们将使用 rar 命令行工具。实验环境已在你的当前目录 /home/labex/project 中创建了一个名为 secret.txt 的示例文件。

首先,让我们使用 rar 命令创建压缩文件。a 选项代表“添加到压缩文件”,-p 开关用于直接指定密码。在本实验中,我们将使用 labex 作为密码。

在你的终端中执行以下命令,创建一个名为 secret.rar 的受密码保护的压缩文件,其中包含 secret.txt 文件。

rar a -plabex secret.rar secret.txt

你将看到输出,表明文件正在被添加并且压缩文件正在被创建。

RAR 6.12   Copyright (c) 1993-2022 Alexander Roshal   17 May 2022
Trial version             Type 'rar -?' for help

Evaluation copy. Please register.

Creating archive secret.rar

Adding    secret.txt                                                      OK
Done

现在,使用 ls -l 命令验证 secret.rar 文件是否已在你的项目目录中创建。

ls -l
total 12
-rw-r--r-- 1 labex labex  338 Dec 05 10:30 secret.rar
-rw-r--r-- 1 labex labex   25 Dec 05 10:28 secret.txt
-rw-r--r-- 1 labex labex   29 Dec 05 10:28 wordlist.txt

你现在已成功创建了本实验的目标文件。

使用 rar2john 从 RAR 文件中提取哈希值

在此步骤中,你将使用 rar2john,这是 John the Ripper 套件中的一个实用工具,用于从 secret.rar 文件中提取密码哈希值。像 Hashcat 这样的破解工具不能直接处理 RAR 文件;它们需要一种特定的哈希格式,其中包含验证密码所需的必要信息。rar2john 正是为了这个目的而设计的。

运行以下命令来处理 secret.rar 文件:

rar2john secret.rar

该命令将在终端打印一个长字符串。这个字符串就是哈希值。

secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

此哈希值包含了压缩文件的 salt、加密数据以及破解过程所需的其他元数据。为了方便使用,最佳实践是将此哈希值保存到文本文件中。

使用输出重定向 (>) 将哈希值保存到名为 rar_hash.txt 的文件中。

rar2john secret.rar > rar_hash.txt

此命令不会产生任何可见输出,因为输出被重定向到了文件。你可以使用 cat 命令来确认文件已创建并包含哈希值。

cat rar_hash.txt
secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

你现在已获得 RAR 哈希值,其格式是密码破解工具可以理解的。

识别 RAR3-hp 或 RAR5 的正确哈希模式

在此步骤中,你将识别 Hashcat 在破解哈希值时应使用的正确模式。Hashcat 支持数百种不同的哈希类型,你必须使用模式编号来指定正确的类型。

你提取的哈希值以 $RAR3$*... 开头。这个前缀告诉你使用的 RAR 加密类型。要查找 Hashcat 中对应的模式,你可以搜索其帮助菜单。

使用以下命令列出所有 Hashcat 模式并过滤出与“RAR”相关的模式。grep 中的 -i 标志使搜索不区分大小写。

hashcat --help | grep -i "RAR"

输出将显示 Hashcat 支持的不同 RAR 模式。

...
12500 | RAR3-hp                                      | Archives
13000 | RAR5                                         | Archives
...

从输出中,你可以看到两种主要模式:

  • 12500 用于 RAR3-hp
  • 13000 用于 RAR5

由于我们的哈希值以 $RAR3$ 开头,因此应使用的正确模式是 12500。识别正确的哈希模式是成功破解尝试的关键步骤。

准备攻击所需的哈希和单词列表

在此步骤中,你将准备破解尝试所需的必要文件。我们将执行的字典攻击需要两个主要输入:包含待破解哈希值的文件和单词列表(一个包含潜在密码的文件)。

你已经通过将哈希值保存在 rar_hash.txt 中完成了第一部分。让我们快速回顾一下它的内容。

cat rar_hash.txt
secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

接下来,你需要单词列表。在本实验中,在设置过程中为你创建了一个名为 wordlist.txt 的简单单词列表。在实际场景中,你将使用一个更大的单词列表,例如著名的 rockyou.txt。让我们检查一下我们的小单词列表的内容。

cat wordlist.txt
password
123456
labex
secret

如你所见,我们的单词列表包含了一些常用密码,包括正确的密码 labex。现在哈希文件和单词列表都已准备就绪,你已准备好发起攻击。

执行攻击以查找 RAR 密码

在此步骤中,你将使用 Hashcat 执行字典攻击。有了哈希文件、单词列表和已识别的正确模式编号,你就拥有了所需的一切。

Hashcat 字典攻击的基本语法是:hashcat -m <模式> <哈希文件> <单词列表文件>

现在,使用模式 12500、你的哈希文件 rar_hash.txt 和你的单词列表 wordlist.txt 运行命令。

hashcat -m 12500 rar_hash.txt wordlist.txt

Hashcat 将初始化,启动破解会话,并快速测试单词列表中的密码与哈希值是否匹配。一旦找到匹配项,进程将完成,状态将显示为 Cracked

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: RAR3-hp
Hash.Target......: secret.rar
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:    24211 H/s (0.01ms) @ Accel:128 Loops:128 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 4/4 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1
Candidate.Engine.: Optimized Kernel
Candidates.#1....: password -> secret
Hardware.Mon.#1..: Temp: 45c Fan: 30%
...

Hashcat 会自动将破解的密码保存到一个名为“potfile”的文件中,该文件位于 ~/.hashcat/hashcat.potfile。要查看破解的密码,你可以使用 --show 选项与原始命令一起使用。

hashcat -m 12500 rar_hash.txt --show

这将显示哈希值及其对应的破解密码。

secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0:labex

密码 labex 显示在行末,用冒号分隔。你已成功破解了 RAR 压缩文件的密码。

总结

恭喜你完成了本次实验!你已成功掌握了破解密码保护的 RAR 压缩文件的端到端流程。

在本次实验中,你练习了几个关键技能:

  • 使用 rar 命令创建密码保护的压缩文件。
  • 使用 rar2john 从 RAR 文件中提取可破解的哈希值。
  • Hashcat 中识别正确的哈希类型及其对应的模式。
  • 使用提取的哈希值和单词列表,通过 Hashcat 执行字典攻击。
  • 查看恢复的密码。

这些技术在网络安全领域对于密码恢复和安全审计至关重要。请务必记住,这些技能应仅用于合乎道德和法律的用途,例如在你明确获准测试的系统上。