John the Ripper 로 SHA1 해시 크랙하기
이 단계에서는 sha1_hashes_for_john.txt에 저장된 SHA1 해시를 크랙하기 위해 John the Ripper 를 사용합니다. John the Ripper 는 다양한 운영 체제에서 사용할 수 있는 빠른 비밀번호 크래커입니다. 주요 목적은 취약한 Unix 비밀번호를 탐지하는 것입니다. SHA1 을 포함한 다양한 해시 유형을 지원합니다.
"단어 목록 모드 (wordlist mode)"에서 John the Ripper 를 사용하여 해시를 크랙해 보겠습니다. 이 모드는 미리 정의된 목록 (단어 목록) 에서 비밀번호를 시도합니다. 이 실습에서는 원본 비밀번호를 포함하는 간단한 단어 목록을 생성합니다. 실제 시나리오에서는 훨씬 더 크고 포괄적인 단어 목록을 사용하게 될 것입니다.
먼저 wordlist.txt라는 간단한 단어 목록 파일을 생성합니다.
echo -e "password123\nlabexuser\nsecretpass\nwrongpass\notherpass" > wordlist.txt
이제 준비된 해시 파일과 단어 목록으로 John the Ripper 를 실행합니다.
john --format=raw-sha1 --wordlist=wordlist.txt sha1_hashes_for_john.txt
명령을 분석해 보겠습니다.
john: John the Ripper 를 호출하는 명령입니다.
--format=raw-sha1: 입력 해시가 일반 SHA1 해시임을 지정합니다. John 은 많은 형식을 지원하며 올바른 형식을 지정하면 효율적인 크래킹에 도움이 됩니다.
--wordlist=wordlist.txt: 크래킹을 위해 wordlist.txt를 사전으로 사용하도록 John 에게 지시합니다.
sha1_hashes_for_john.txt: 크랙할 해시가 포함된 파일입니다.
명령을 실행한 후 John 은 해시를 크랙하려고 시도합니다. 성공하면 크랙된 비밀번호를 표시합니다.
크랙된 비밀번호를 나타내는 다음과 유사한 출력이 표시됩니다.
Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts (Raw-SHA1 [SHA1])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (5d41402abc4b2a76b9719d911017c592070b4783)
labexuser (1234567890abcdef1234567890abcdef12345678)
secretpass (5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8)
3g 0:00:00:00 DONE (2023-10-27 10:30) 100.0% (ETA: 00:00:00) 3.000g/s 100.0p/s 100.0c/s 100.0C/s password123..secretpass
Session completed.
크랙된 비밀번호를 다시 보려면 --show 옵션을 사용할 수 있습니다.
john --show sha1_hashes_for_john.txt
이 명령은 John 이 성공적으로 크랙하고 내부 pot 파일에 저장한 모든 해시를 표시합니다.
password123:5d41402abc4b2a76b9719d911017c592070b4783
labexuser:1234567890abcdef1234567890abcdef12345678
secretpass:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
3 password hashes cracked, 0 left