디지털 포렌식을 위한 John the Ripper

Kali LinuxBeginner
지금 연습하기

소개

디지털 포렌식에서 압수된 증거로부터 비밀번호를 복구하는 것은 종종 중요한 단계입니다. 이러한 비밀번호는 암호화된 파일을 잠금 해제하거나, 사용자 계정에 접근하거나, 용의자의 활동에 대한 중요한 통찰력을 제공할 수 있습니다. 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 와 같은 도구를 사용하는 것을 포함하여 조사 중에 수행된 모든 단계는 기록되어야 합니다. 이는 증거의 무결성과 법정에서의 조사 결과의 신뢰성을 보장합니다.

이 단계에서는 크래킹 프로세스를 문서화하는 것을 시뮬레이션합니다. 다음을 기록해야 합니다.

  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: <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 의 고급 기능을 계속 탐색해 보세요.