数字取证中的 John the Ripper

Kali LinuxBeginner
立即练习

引言

在数字取证中,从扣押的证据中恢复密码通常是关键步骤。这些密码可以解锁加密文件、访问用户账户,或为调查嫌疑人的活动提供重要线索。John the Ripper 是一款免费开源的密码破解工具,被安全专业人士和取证调查人员广泛用于测试密码强度以及恢复丢失或泄露的密码。

本实验将指导你如何在数字取证场景中实际应用 John the Ripper。你将学习如何从各种来源提取密码哈希(password hashes),使用 John the Ripper 破解这些哈希,并理解在取证调查中正确记录和证据链(chain of custody)的重要性。完成本实验后,你将对如何在数字取证工作流程中集成 John the Ripper 有扎实的理解。

从取证镜像中提取哈希

在本步骤中,你将学习如何模拟从取证镜像中提取密码哈希。在实际场景中,这些哈希会从各种来源提取,例如 /etc/shadow 文件、SAM 数据库或加密容器。在本实验中,我们预先创建了一个名为 hashes.txt 的文件,其中包含示例 MD5 哈希。

首先,让我们检查 hashes.txt 文件的内容,以了解我们将要处理的哈希格式。

cat ~/project/hashes.txt

你应该会看到类似以下的输出,其中每行代表一个用户名,后跟一个冒号和其对应的哈希:

user1:5f4dcc3b5aa765d61d8327deb882cf99
user2:21232f297a57a5a743894a0e4a801fc3
user3:d41d8cd98f00b204e9800998ecf8427e
user4:a87ff679a2f3e71d9181a67b7542122c

这些是 MD5 哈希。John the Ripper 可以自动检测许多哈希类型,但理解格式对于有效破解至关重要。

使用 John the Ripper 从证据中恢复密码

在本步骤中,你将使用 John the Ripper 来破解上一步提取的哈希。我们将使用简单的字典攻击(wordlist attack),这是一种常见的密码破解技术,John 会尝试将哈希与常用密码列表进行匹配。

首先,让我们使用 hashes.txt 文件和 wordlist.txt 文件来运行 John the Ripper。--format=Raw-MD5 选项明确告诉 John the Ripper 将哈希视为原始 MD5,尽管它通常会自动检测。

john --wordlist=~/project/wordlist.txt ~/project/hashes.txt

运行命令后,John the Ripper 将尝试破解密码。输出将显示进度和任何已破解的密码。这可能需要一些时间。

John 完成后,你可以使用 --show 选项查看已破解的密码。

john --show ~/project/hashes.txt

你应该会看到类似以下的输出,显示用户的已破解密码:

user1:password (user1)
user2:admin (user2)
user4:test (user4)
3 password hashes cracked, 1 left

请注意,user3 的密码(为空,由 d41d8cd98f00b204e9800998ecf8427e 表示)可能无法通过此特定字典破解,因为空密码通常有不同的处理方式或需要特定的规则。

使用 John the Ripper 记录取证流程

在数字取证中,一丝不苟的文档记录至关重要。调查过程中采取的每一步,包括使用 John the Ripper 等工具,都必须被记录下来。这确保了证据的完整性以及法庭上调查结果的可信度。

在本步骤中,你将模拟记录破解过程。你应该记录:

  1. 使用的工具:John the Ripper
  2. 版本:(你可以通过运行 john --version 来查找)
  3. 输入文件~/project/hashes.txt
  4. 使用的字典文件~/project/wordlist.txt
  5. 破解的密码john --show 的输出
  6. 日期和时间:执行破解操作的时间。

让我们创建一个简单的文本文件来记录这些信息。使用 nano 在你的 ~/project 目录中创建并编辑一个名为 forensic_log.txt 的文件。

nano ~/project/forensic_log.txt

nano 中,添加类似以下内容,将破解的密码替换为你实际的结果:

Forensic Log - Password Cracking

Date: <当前日期和时间>
Investigator: LabEx User

Tool Used: John the Ripper
Version: <john --version 的输出>

Input Hash File: ~/project/hashes.txt
Wordlist Used: ~/project/wordlist.txt

Cracking Command:
john --wordlist=~/project/wordlist.txt ~/project/hashes.txt

Cracked Passwords:
user1:password
user2:admin
user4:test

Notes:
Attempted to crack MD5 hashes using a provided wordlist.

Ctrl+X,然后按 Y 保存,最后按 Enter 确认文件名。

保存后,你可以查看日志文件的内容:

cat ~/project/forensic_log.txt

此日志是你取证报告的关键组成部分。

维护破解密码的证据链

在数字取证中,维护证据链至关重要,以确保证据得到妥善处理并在法庭上被采纳。这意味着要记录谁何时以及出于何种目的接触过证据。对于破解的密码,这包括安全地存储它们并记录其发现过程。

在本步骤中,你将模拟安全地存储破解的密码并记录其处理过程。在真实场景中,你可能会使用加密容器或安全数据库,但在这里,我们将简单地将破解的密码移动到一个指定的“证据”目录,并更新我们的日志。

首先,让我们创建一个目录来存储证据。

mkdir -p ~/project/evidence/cracked_passwords

现在,让我们将 john --show 的输出重定向到这个新目录中的一个文件。该文件将仅包含破解的密码。

john --show ~/project/hashes.txt > ~/project/evidence/cracked_passwords/cracked_passwords_output.txt

验证文件是否已创建并包含破解的密码:

cat ~/project/evidence/cracked_passwords/cracked_passwords_output.txt

最后,更新你的 forensic_log.txt 以反映已安全存储破解的密码。再次打开日志文件:

nano ~/project/forensic_log.txt

向日志中添加一个新部分,类似如下内容:

Cracked Passwords Secured:
Location: ~/project/evidence/cracked_passwords/cracked_passwords_output.txt
Date Secured: <当前日期和时间>

保存并退出 nano(按 Ctrl+X,然后按 Y,最后按 Enter)。

此过程确保破解的密码被视为证据,并记录了其处理过程。

在取证报告中呈现调查结果

任何数字取证调查的最后一步是提交一份清晰、简洁且符合法律要求的取证报告。本报告总结了调查过程、使用的方法、发现的证据以及得出的结论。

在本步骤中,你将把在此次实验中收集到的信息整理成一份简化的取证报告。这份报告通常会包含:

  • 案件信息:案件 ID、调查员、日期。
  • 执行摘要:调查结果的简要概述。
  • 方法论:使用的工具和技术(例如,John the Ripper、字典攻击)。
  • 调查结果:具体破解的密码及其关联的账户。
  • 结论:调查结果的含义总结。
  • 附录:原始日志、哈希文件等(例如 forensic_log.txt)。

让我们使用 nano 在你的 ~/project 目录中创建一个名为 forensic_report.txt 的新文件。

nano ~/project/forensic_report.txt

添加类似以下内容,并整合你 forensic_log.txt 中的详细信息以及破解的密码:

Digital Forensic Report

Case ID: LABEX-JTR-001
Investigator: LabEx User
Date of Report: <当前日期和时间>

1. Executive Summary:
This report details the recovery of user account passwords from seized digital evidence using John the Ripper. Three passwords were successfully recovered.

2. Methodology:
Password hashes were extracted from a simulated forensic image (hashes.txt). John the Ripper (version <John version>) was utilized with a custom wordlist (wordlist.txt) to perform a dictionary attack against the extracted MD5 hashes.

3. Findings:
The following user accounts and their corresponding passwords were recovered:
- user1: password
- user2: admin
- user4: test

The raw output of the cracking process and detailed procedural logs are appended in the Forensic Log (forensic_log.txt).

4. Conclusion:
The recovered passwords provide access to the identified user accounts, which may contain further relevant evidence for the ongoing investigation.

5. Appendices:
- Forensic Log: ~/project/forensic_log.txt
- Cracked Passwords Output: ~/project/evidence/cracked_passwords/cracked_passwords_output.txt

保存并退出 nano(按 Ctrl+X,然后按 Y,最后按 Enter)。

最后,查看你的完整报告:

cat ~/project/forensic_report.txt

本次练习展示了将所有调查结果整合到一份全面的报告中,以满足法律和调查目的的重要性。

总结

恭喜你!你已成功完成了“数字取证中的 John the Ripper”实验。

在此次实验中,你获得了使用 John the Ripper 的实践经验,这是数字取证中的一项基础工具。你学会了如何:

  • 模拟从取证证据中提取哈希
  • 利用 John the Ripper 通过字典攻击来恢复密码。
  • 细致地记录取证过程,创建详细的操作日志。
  • 理解并维护发现证据(特别是破解的密码)的证据链
  • 以结构化的取证报告形式整理和呈现调查结果

这些技能对任何数字取证调查员都至关重要,能够帮助他们有效地分析证据、恢复关键信息,并以合法合规的方式呈现调查结果。继续探索其他密码破解技术和 John the Ripper 的高级功能,以进一步提升你的取证能力。