학회_공부해요/워게임

[Tool] Jogh the Ripper(존더리퍼)

yenas0 2024. 8. 6. 21:01
반응형

John the Ripper?

- 해시 크래킹

- 암호 해독하는데 사용하는 오픈 소스 소프트웨어

 

특징

- DES, MD5, Blowfish, NTLM, SHA-1, SHA-2 등의 해시 알고리즘 지원

- 패스워드 해시 자동으로 인식 후 공경 방식 사용 가능

 

https://www.openwall.com/john/

 

John the Ripper password cracker

John the Ripper password cracker John the Ripper is an Open Source password security auditing and password recovery tool available for many operating systems. John the Ripper jumbo supports hundreds of hash and cipher types, including for: user passwords o

www.openwall.com

위에서 다운 받아서도 사용 가능

 

한데 그냥 난 칼리에서 사용하는게 편하길래 명령어 위주로 정리해봤다.

 

 

 

1. 기본 명령어

john [옵션] [해시 파일]

 

 

2. 해시 파일 생성하기 (passwd나 shadow파일에서 해시 추출한 파일 준비)

unshadow /etc/passwd /etc/shadow > myhashes.txt

- passswd파일이랑 shadow 파일을 결합해 John the Ripper가 읽을 수 있는 형식의 해시 파일을 생성

- etc/passwd 파일: 시스템 사용자의 계정 정보가 저장되어있음.

- etc/shadow 파일: 각 사용자 계정에 대한 암호 해시와 암호 만료 기간 등이 저장되어 있음 (passwd보다 보호된 형태)

- unshadow 명령어는 위 두 파일을 겹합해서 존더리퍼가 읽을 수 있는 형식으로 데이터 구성

- myhashes로 저장해서 존더리퍼가 크래킹 할 수 있도록 만듦

 

 

+) /etc/passwd 파일

사용자이름:패스워드:사용자ID:그룹ID:사용자정보:홈디렉토리:기본셸
필드 의미
사용자 이름 사용자의 계정 이름
패스워드 이전에는 실제 패스워드 해시가 여기에 저장되었음. 현대 시스템에서는 보안 강화를 위해 'x'또는 '*'의 형태로 저장. 실제 해시는 'etc/shadow'파일에 저장
사용자ID(UID) 사용자 계정의 고유 ID 번호
그룹ID(GID) 사용자 계정이 속한 기본 그룹의 ID 번호
사용자정보 사용자의 이름이나 연락처 등의 정보가 들어갈 수 있는 필드
홈 디렉토리 사용자의 홈 디렉토리 경로
기본 쉘 사용자가 로그인 할 때 사용할 기본 쉘

 

 

+) /etc/shadow 파일

사용자이름:패스워드해시:암호변경일:최소일수:최대일수:경고일수:비활성화일수:만료일:예약필드
필드 의미
사용자이름 passwd파일과 동일한 사용자 계정의 이름
패스워드 해시 암호화된 패스워드 해시. SHA-512, MD5, DES 등의 알고리즘이 사용될 수 있음
ex) $6$는 SHA-512 해시 알고리즘
암호변경일 마지막으로 암호가 변경된 날짜. 이 값은 1970년 1월 1일부터의 일수로 저장됨
최소일수 암호 변경이 가능한 최소 일수. 암호 변경 후 며칠이 지나야 다시 변경할 수 있는지 지정
최대 일수 암호를 유지할 수 있는 최대 일수
경고 일수 암호가 만료되기 전 사용자에게 경고를 시작할 일수
비활성화 일수 암호가 만료된 후 계정이 비활성화되기까지의 일수
만료일 계정 만료 날짜(1970년 1월 1일부터의 일수)
예약필드 미래 사용을 위한 필드. 현재는 비워둠

 

 

3. 딕셔너리 공격 (사전 파일을 이용해 딕셔너리 공격 수행)

john --wordlist=/path/to/wordlist.txt myhashes.txt

 

 

4. 브루트포스 공격 (딕셔너리 없이 브루트포스 공격 수행)

john myhashes.txt

 

 

5. 결과 보기 (존더리퍼가 크래킹한 패스워드 확인)

john --show myhashes.txt

 

 

6. 특정 형식의 해시 크래킹

ex1) NTLM 형식 크래킹

john --format=NT myhashes.txt

 

ex2) crypt 형식 크래킹

john --format=crypt myhashes.txt

 

 

7. 세션 저장 및 복구

긴 시간 동안 크래킹 진행 시, 세션 저장 후 후에 복구도 가능

 

- 세션 저장

john --session=my_session --wordlist=/path/to/wordlist.txt myhashes.txt

 

-세션 복구

john --restore=my_session

 

 

8. 도움말 및 옵션 확인

john --help

 

 

9. 존더리퍼에서 존재하는 포맷 확인

john --list=formats
반응형