반응형
John the Ripper?
- 해시 크래킹
- 암호 해독하는데 사용하는 오픈 소스 소프트웨어
특징
- DES, MD5, Blowfish, NTLM, SHA-1, SHA-2 등의 해시 알고리즘 지원
- 패스워드 해시 자동으로 인식 후 공경 방식 사용 가능
https://www.openwall.com/john/
위에서 다운 받아서도 사용 가능
한데 그냥 난 칼리에서 사용하는게 편하길래 명령어 위주로 정리해봤다.
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
반응형
'학회_공부해요 > 워게임' 카테고리의 다른 글
[Dreamhack(드림핵)] Write up - session (0) | 2024.08.06 |
---|---|
[SuNiNaTas(써니나타스)] Write up - 14번 (0) | 2024.08.06 |
[Dreamhack(드림핵)] Write up - phpreg (0) | 2024.07.30 |
[SuNiNaTas(써니나타스)] Write up - 9번 (0) | 2024.07.30 |
[SuNiNaTas(써니나타스)] Write up - 8번 (12) | 2024.07.24 |