Security/Web

John the Ripper를 이용한 패스워드 크래킹(Password Cracking)

2er0127 2023. 6. 11. 03:02

# 경고

나열된 해킹 기법들은 학습의 목적으로만 사용해야하며,

악의적인 목적으로 사용 시 발생하는 모든 법적 책임은 악용한 본인에게 있습니다.

해당 글을 열람한다는 것은 위 내용에 동의함을 의미합니다. 

 

 

 

실습 환경: Kali Linux 2023.2

 

 

시나리오: 관리자는 백업을 위해 /etc 밑에 shadow.bak 이라는 shadow 백업 파일을 만들었다. 공격자는 이를 이용해 root 계정의 패스워드 크래킹을 시도한다.

(실제로 백업 파일은 노출된 경로에 저장했다고 가정한다.)

 

 

 

1.

실습을 위해 root 비밀번호를 바꿔준다.

passwd root

 

 

관리자

shadow 파일의 백업 파일을 만들고, 777 권한을 준다.

cp /etc/shadow /etc/shadow.bak
chmod 777 /etc/shadow.bak

 

 

공격자

passwd 파일과 shadow.bak 파일을 txt 파일로 복사해온다.

cp /etc/passwd ./passwd.txt
cp /etc/shadow.bak ./shadow.txt

 

root 계정의 패스워드만을 목표로 하기 때문에 복사해온 파일에서 root 제외 계정은 모두 삭제한다.

 

 

 

 

2.

unshadow 명령어로 passwd 파일의 패스워드 자리에 shadow 파일 정보를 넣어서 합친다.

unshadow passwd.txt shadow.txt > unshadow.txt

 

unshadow 명령어는 /etc/shadow 파일에서 해시된 비밀번호를 /etc/passwd 파일과 합쳐주는 역할을 한다.

 

 

 

 

3.

이제 John the Ripper를 이용하여 패스워드 크래킹을 시도한다.

칼리 리눅스에서는 기본으로 설치되어 있기 때문에 따로 설치해줄 필요는 없다.

 

존 더 리퍼를 사용하려면 포맷을 지정해줘야 하는데 포맷은 다음에서 확인할 수 있다.

john --list=formats

여기서는 crypt를 사용한다.

 

john --format=crypt unshadow.txt --wordlist /usr/share/john/password.lst

 

포맷과 대상 파일을 지정하고,

--wordlist 옵션으로 패스워드 목록 파일을 지정한다.

 

/usr/share/john/password.lst 는 존 더 리퍼에서 기본으로 제공하는 패스워드 목록이다. 

 

 

해당 패스워드 목록 파일에 맞는 패스워드가 존재한다면 다음과 같이 나타난다.

 

 

수행 결과는 다음 명령어를 통해 확인할 수 있다.

john --show unshadow.txt

 

 

 

크랙 결과 저장~/.john/john.pot 파일에,

수행 과정 저장~/.john/john.log 파일에 기록된다.

 

 

 

이 외에 참고할만한 취약한 패스워드 목록에는 SecLists 가 있다.

깃허브를 통해 다운로드 받을 수 있다.

https://github.com/danielmiessler/SecLists 

 

GitHub - danielmiessler/SecLists: SecLists is the security tester's companion. It's a collection of multiple types of lists used

SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, ...

github.com

 

 

 

 

728x90