はじめに
デジタルフォレンジックにおいて、押収された証拠からパスワードを復旧することは、しばしば重要なステップとなります。これらのパスワードは、暗号化されたファイルをアンロックしたり、ユーザーアカウントにアクセスしたり、容疑者の活動に関する重要な洞察を提供したりすることができます。John the Ripper は、無料のオープンソースパスワードクラッキングツールであり、セキュリティ専門家やフォレンジック調査員がパスワードの強度をテストし、紛失または侵害されたパスワードを復旧するために広く使用されています。
この実験 (Lab) では、デジタルフォレンジックのコンテキストにおける John the Ripper の実践的な応用について説明します。様々なソースからパスワードハッシュを抽出する方法、John the Ripper を使用してこれらのハッシュをクラックする方法、そしてフォレンジック調査における適切な文書化と証拠保全 (chain of custody) の重要性を理解します。この実験 (Lab) の終わりには、デジタルフォレンジックワークフローに John the Ripper を統合する方法についての確固たる理解が得られるでしょう。
フォレンジックイメージからのハッシュ抽出
このステップでは、フォレンジックイメージからパスワードハッシュを抽出するシミュレーションを行います。実際のシナリオでは、これらのハッシュは /etc/shadow ファイル、SAM データベース、または暗号化されたコンテナなど、さまざまなソースから抽出されます。この実験 (Lab) では、例として MD5 ハッシュを含む hashes.txt という名前のファイルを事前に作成しました。
まず、hashes.txt ファイルの内容を確認し、作業するハッシュの形式を理解しましょう。
cat ~/project/hashes.txt
以下のような出力が表示されるはずです。各行はユーザー名、コロン、そしてそれに対応するハッシュを表しています。
user1:5f4dcc3b5aa765d61d8327deb882cf99
user2:21232f297a57a5a743894a0e4a801fc3
user3:d41d8cd98f00b204e9800998ecf8427e
user4:a87ff679a2f3e71d9181a67b7542122c
これらは MD5 ハッシュです。John the Ripper は多くのハッシュタイプを自動的に検出できますが、効果的なクラッキングのためには形式を理解することが重要です。
証拠からのパスワード復旧に John the Ripper を使用する
このステップでは、John the Ripper を使用して、前のステップで抽出したハッシュをクラックします。ここでは簡単な単語リスト攻撃を使用します。これはパスワードクラッキングにおける一般的な手法であり、John が一般的なパスワードのリストに対してハッシュを照合しようと試みます。
まず、hashes.txt ファイルと wordlist.txt ファイルを使用して John the Ripper を実行しましょう。--format=Raw-MD5 オプションは、ハッシュを生の MD5 として扱うように John the Ripper に明示的に指示しますが、多くの場合自動検出されます。
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 のようなツールの使用を含む、調査中に実行されたすべてのステップは記録されなければなりません。これにより、証拠の完全性と法廷での発見の信頼性が保証されます。
このステップでは、クラッキングプロセスの文書化をシミュレートします。以下の項目を記録する必要があります。
- 使用ツール: John the Ripper
- バージョン: (
john --versionを実行して確認できます) - 入力ファイル:
~/project/hashes.txt - 使用した単語リスト:
~/project/wordlist.txt - クラックされたパスワード:
john --showの出力 - 日時: クラッキングが実行された日時
これを文書化するための簡単なテキストファイルを作成しましょう。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
このログは、フォレンジックレポートの重要な一部となります。
クラックされたパスワードの証拠保全(Chain of Custody)の維持
デジタルフォレンジックにおいて、証拠が適切に取り扱われ、法廷で証拠として認められるようにするためには、証拠保全(Chain of Custody)の維持が不可欠です。これは、誰が、いつ、どのような目的で証拠にアクセスしたかを文書化することを意味します。クラックされたパスワードに関しては、それらを安全に保管し、その発見を文書化することが含まれます。
このステップでは、クラックされたパスワードを安全に保管し、その取り扱いを文書化することをシミュレートします。実際のシナリオでは、暗号化されたコンテナや安全なデータベースを使用するかもしれませんが、ここでは単にクラックされたパスワードを指定された「証拠」ディレクトリに移動し、ログを更新します。
まず、証拠を保存するためのディレクトリを作成しましょう。
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 を活用し、単語リスト攻撃を用いてパスワードを復旧する方法。
- フォレンジック手順を綿密に文書化し、実行したアクションの詳細なログを作成する方法。
- 発見された証拠、特にクラックされたパスワードの証拠保全(Chain of Custody)を理解し維持する方法。
- 発見事項を構造化されたフォレンジックレポートにコンパイルして提示する方法。
これらのスキルは、あらゆるデジタルフォレンジック調査員にとって不可欠であり、証拠を効果的に分析し、重要な情報を復旧し、法的に有効な方法で発見事項を提示することを可能にします。フォレンジック能力をさらに向上させるために、他のパスワードクラッキング技術や John the Ripper の高度な機能を引き続き探求してください。


