입력 데이터 분석
/etc/passwd나 unshadow 결과 파일에서 가져온 username, UID/GID, 사용자 설명(GECOS), 홈 디렉토리 이름 같은 정보를 추출.
예:
root:$6$2nwjN454g.dv4HN/...:/root:/bin/bash
alice:$6$xyz...:/home/alice:/bin/bash
후보 비밀번호 생성 규칙 적용
root, aliceRoot, ALICEalice1, root123, alice!즉각적인 크랙 시도
john --single unshadowed.txt
unshadowed.txt에서 각 사용자별로 자동으로 후보 비밀번호를 만들어서 테스트합니다.✅ 정리:
싱글 크랙 모드 = “사용자 계정 정보를 기반으로 자동으로 후보 비밀번호를 만들어 빠르게 크랙해 보는 모드”
→ 이름은 “Single”이지만, 실제론 각 사용자별 맞춤형 후보를 여러 개 시도합니다.
싱글 크랙 모드는 사용자명을 기반으로 패스워드를 추측하는 모드입니다. 맹글링 룰을 사용해 사용자명을 변형하여 일반적인 패스워드 패턴을 생성합니다.
john --single hashfile
john --single --format=NT hashfile
john --single --format=md5crypt hashfile
john --single --format=sha512crypt hashfile
# 기본 맹글링 룰 사용
john --single --rules hashfile
# 특정 룰셋 지정
john --single --rules=Single hashfile
john --single --rules=Wordlist hashfile
# /etc/passwd와 /etc/shadow 결합
unshadow /etc/passwd /etc/shadow > mypasswd
# 싱글 모드로 크랙
john --single mypasswd
# SAM 덤프에서 추출한 NTLM 해시
john --single --format=NT ntlm_hashes.txt
# MD5 해시 크랙
john --single --format=raw-md5 md5_hashes.txt
# bcrypt 해시 크랙
john --single --format=bcrypt bcrypt_hashes.txt
# 설정 파일 위치 확인
john --list=conf
# 커스텀 룰 예시 (john.conf에 추가)
[List.Rules:CustomSingle]
# 숫자 추가
$[0-9]$[0-9]
# 특수문자 추가
$!
$@
$#
# 대소문자 변경
c
u
l
john --single --rules=CustomSingle hashfile
# 1단계: 맹글링 없이 기본 실행
john --single hashfile
# 2단계: 기본 맹글링 룰 적용
john --single --rules hashfile
# 3단계: 더 복잡한 룰 적용
john --single --rules=Jumbo hashfile
# 10분 동안만 실행
timeout 600 john --single --rules hashfile
# 크랙된 패스워드 확인
john --show hashfile
# 현재 상태 확인
john --status