Kali에서 John으로 비밀번호 크래킹하기

사이버 보안Beginner
지금 연습하기

소개

오프라인 비밀번호 복구는 로그인을 시도하는 대신 후보를 제공된 해시와 비교합니다. 성공이나 실패를 해석하려면 형식, 후보 집합, 저장된 복구 상태를 이해해야 합니다.

이 실습은 의도적으로 약한 교육용 해시 하나와 아주 작은 사전을 제공합니다. 자체 pot과 세션으로 제한된 John 사전 복구를 실행한 뒤 계정과 연결된 결과를 표시하고 저장합니다.

제공된 약한 비밀번호를 오프라인으로 복구하기

이 단계에서는 알려진 교육용 해시 형식에 작은 후보 목록을 사용하면서 다른 연습과 복구 상태를 분리합니다.

Kali에 들어가 제공된 연습 디렉터리를 선택하세요.

kali
cd /home/labex/project/password-practice

비밀번호 해시는 비밀번호를 평문으로 저장하지 않고 확인하는 데 사용하는 파생 표현입니다. 솔트는 같은 비밀번호가 서로 다른 저장 해시를 만들도록 돕습니다. 이 연습은 솔트가 있는 SHA512-crypt 형식으로 표현된 의도적으로 약한 교육용 비밀번호를 제공합니다. 이는 원시 SHA-512 다이제스트와 같은 형식이 아닙니다.

제공된 계정 및 해시 파일을 읽으세요.

cat hashes.txt

줄은 교육용 계정 이름, 콜론, $6$로 시작하는 해시로 이루어집니다. 솔트와 파생 값은 저장 표현의 일부입니다. 해시를 만들거나 편집할 필요는 없습니다.

작은 후보 목록을 살펴보세요.

cat candidates.txt

각 줄은 비밀번호 후보 하나입니다. 사전 복구는 제공된 해시에 대해 이 후보들을 오프라인으로 테스트합니다. 네트워크 서비스에 로그인 시도를 보내지 않습니다.

John은 비밀번호 복구 도구입니다. --format=sha512crypt는 제공된 형식을 명시적으로 선택하고, --wordlist=candidates.txt는 후보 파일을 선택하며, --pot=guided.pot은 복구 결과를 전용 pot 파일에 유지합니다. --session=guided-session은 무관한 세션과 섞지 않고 이 실행의 복구 세션 이름을 지정합니다.

john --format=sha512crypt --wordlist=candidates.txt --pot=guided.pot --session=guided-session hashes.txt

실행이 끝날 때까지 기다리세요. 출력은 비밀번호 하나가 복구되었다고 보고해야 합니다. 정확한 성능 수치와 스레드 메시지는 달라집니다. pot 파일은 복구된 해시/비밀번호 매핑을 저장하므로 같은 pot으로 반복 실행하면 이미 복구된 해시를 건너뛸 수 있습니다. 이는 새 시도가 다시 복구했다는 증거가 아닙니다.

사전 실행은 후보 누락, 잘못 선택한 형식, 잘못된 입력 때문에 실패할 수 있습니다. 실패한 실행이 비밀번호 복구가 불가능하다는 증거는 아닙니다.

확인된 복구 결과 표시 및 보존하기

이 단계에서는 John으로 복구 상태를 읽고 검토를 위해 계정과 연결된 결과를 저장합니다.

같은 연습 디렉터리에 머무르세요. John의 --show 모드는 제공된 해시 파일을 선택한 pot과 대조하여 복구된 계정/비밀번호 결과를 표시합니다.

john --show --format=sha512crypt --pot=guided.pot hashes.txt

계정 줄에는 training-user:cedar42가 포함되어야 하며, 그 뒤에 해시 하나가 복구되었고 남은 것이 없다는 요약이 나옵니다. 비밀번호는 의도적으로 약하며 제공된 후보 목록에 있습니다.

복구가 성공했다는 주장을 손으로 쓰는 대신 확인된 보기를 저장하세요.

john --show --format=sha512crypt --pot=guided.pot hashes.txt > recovered.txt
cat recovered.txt

저장된 파일은 계정과 연결된 결과와 복구 요약을 유지해야 합니다. 정확한 교육 데이터로 결과를 확인할 수 있도록 제공된 해시, 후보 목록, 전용 pot을 함께 보관하세요.

결과에는 평문 교육용 자격 증명이 포함됩니다. 실제 작업에서 복구된 비밀번호는 민감한 증거이며 승인된 작업 흐름 안에서만 다뤄야 합니다. 이 연습은 실제 계정을 테스트하거나 시연 비밀번호를 재사용하도록 요청하지 않습니다.

요약

해시, 솔트, 평문을 구분하고 명시적 형식으로 오프라인 사전 복구를 실행하고 pot과 세션을 분리하고 show 모드가 생성한 결과를 저장했습니다. 복구를 특정 제공 해시와 후보 집합에 대한 증거로 해석했습니다.