소개
디지털 포렌식에서 압수된 증거로부터 비밀번호를 복구하는 것은 종종 중요한 단계입니다. 이러한 비밀번호는 암호화된 파일을 잠금 해제하거나, 사용자 계정에 접근하거나, 용의자의 활동에 대한 중요한 통찰력을 제공할 수 있습니다. John the Ripper 는 보안 전문가 및 포렌식 조사관이 비밀번호 강도를 테스트하고 분실하거나 손상된 비밀번호를 복구하는 데 널리 사용되는 무료 오픈 소스 비밀번호 크래킹 도구입니다.
이 실습에서는 디지털 포렌식 맥락에서 John the Ripper 의 실제 적용 방법을 안내합니다. 다양한 소스에서 비밀번호 해시를 추출하는 방법, John the Ripper 를 사용하여 이러한 해시를 크래킹하는 방법, 포렌식 조사에서 적절한 문서화 및 증거 보관 연속성 (chain of custody) 의 중요성을 이해하게 될 것입니다. 이 실습이 끝나면 디지털 포렌식 워크플로우에 John the Ripper 를 통합하는 방법에 대한 탄탄한 이해를 갖게 될 것입니다.
포렌식 이미지에서 해시 추출
이 단계에서는 포렌식 이미지에서 비밀번호 해시를 추출하는 것을 시뮬레이션하는 방법을 배웁니다. 실제 시나리오에서는 이러한 해시는 /etc/shadow 파일, SAM 데이터베이스 또는 암호화된 컨테이너와 같은 다양한 소스에서 추출됩니다. 이 실습을 위해 예제 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 를 사용합니다. 일반적인 비밀번호 크래킹 기법인 간단한 단어 목록 공격 (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 와 같은 도구를 사용하는 것을 포함하여 조사 중에 수행된 모든 단계는 기록되어야 합니다. 이는 증거의 무결성과 법정에서의 조사 결과의 신뢰성을 보장합니다.
이 단계에서는 크래킹 프로세스를 문서화하는 것을 시뮬레이션합니다. 다음을 기록해야 합니다.
- 사용된 도구: 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: <Current Date and Time>
Investigator: LabEx User
Tool Used: John the Ripper
Version: <Output of 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) 를 유지하는 것은 디지털 포렌식에서 증거가 적절하게 처리되고 법정에서 증거로 채택될 수 있도록 보장하는 데 매우 중요합니다. 이는 증거에 누가, 언제, 어떤 목적으로 접근했는지 문서화하는 것을 의미합니다. 크래킹된 비밀번호의 경우, 이를 안전하게 저장하고 발견 과정을 문서화하는 것이 포함됩니다.
이 단계에서는 크래킹된 비밀번호를 안전하게 보관하고 처리 과정을 문서화하는 것을 시뮬레이션합니다. 실제 시나리오에서는 암호화된 컨테이너나 보안 데이터베이스를 사용할 수 있지만, 여기서는 단순히 크래킹된 비밀번호를 지정된 "증거" 디렉토리로 이동하고 로그를 업데이트할 것입니다.
먼저 증거를 저장할 디렉토리를 생성합니다.
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: <Current Date and Time>
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: <Current Date and Time>
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 의 고급 기능을 계속 탐색해 보세요.


