"No hashes loaded" 오류 해결
이 단계에서는 John the Ripper 에서 가장 흔한 오류 중 하나인 No password hashes loaded를 살펴보겠습니다. 이 오류는 주로 두 가지 이유로 발생합니다. John 이 제공된 파일의 모든 해시를 이미 크랙했거나, 파일이 John 이 이해할 수 없는 형식인 경우입니다.
먼저, 유효한 해시 파일에서 John 을 실행해 보겠습니다. 설정 스크립트가 현재 디렉토리 (~/project) 에 shadow.txt라는 파일을 이미 생성했으며, 이 파일에는 John 이 인식하는 형식의 사용자 비밀번호 해시가 포함되어 있습니다.
간단한 단어 목록을 사용하여 크랙을 시도해 보겠습니다.
john --wordlist=pass.list shadow.txt
John 이 하나의 해시를 로드하고 크랙을 시도하고 있음을 나타내는 출력이 표시되어야 합니다. 비밀번호는 빠르게 찾아야 합니다.
Using default input encoding: UTF-8
Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 SSE2-16])
Cost 1 (algorithm [1:descrypt]...
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (dummyuser)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123
Use the "--show" option to display all of the cracked passwords reliably
Session completed
비밀번호가 크랙되었으므로, John 은 이를 john.pot이라는 파일에 저장합니다. 동일한 명령을 다시 실행해 보겠습니다.
john --wordlist=pass.list shadow.txt
이번에는 오류가 표시됩니다.
Using default input encoding: UTF-8
No password hashes loaded (see FAQ)
이는 John 이 시작하기 전에 john.pot 파일을 확인하고 이미 크랙된 해시는 무시하기 때문입니다. john.pot 파일의 내용을 확인하여 이를 확인할 수 있습니다.
cat ~/.john/john.pot
출력에는 해시와 크랙된 비밀번호가 표시됩니다.
$1$notarealhash$b5gQ1P2kPiyP2t.OqI0kS1:password123
이 오류의 또 다른 이유는 잘못된 파일 형식입니다. 해시가 포함되지 않은 파일을 만들어 보겠습니다.
echo "this is just a text file" > plain.txt
이제 이 파일에서 John 을 실행해 보겠습니다.
john plain.txt
John 이 비밀번호 해시처럼 보이는 데이터를 파일에서 찾을 수 없기 때문에 동일한 "No password hashes loaded" 오류가 표시됩니다. 대상 파일에 지원되는 형식의 해시가 포함되어 있는지 항상 확인하십시오.