패스워드 크래킹(Password Cracking)
해당 시스템에 저장된 패스워드를 알아내는 해킹 기법
사전 공격(Dictionary Atttack) : 예상되거나 흔히 쓰이는 패스워드 모음집인 '사전'을 갖고 패스워드를 하나씩 대입해보는 방식이다.
이번 실습에서는 John The Ripper로 사전 공격을 해볼 것이다.
John The Ripper(JTR)
패스워드 크래킹 툴 중 하나로 비밀번호 강도, 즉 이 비밀번호가 얼마나 안전한지 그리고 암호화된 비밀번호를 무작위 대입 공격해 비밀번호를 크래킹하기 위해 고안됐다.
useradd 명령어로 swing1, swing2 계정을 추가해주고, passwd 명령어로 계정 당 암호도 숫자 네자리로 설정해준다.
crunch 명령어로 사전 파일을 만들어준다. -> 사전 파일을 만들 때 사용하는 명령어다.
crunch [최소 자릿수] [최대자릿수] [사용할 문자] -o [저장할 파일명]
암호가 네 자리 숫자기 때문에 0000~9999로 이루어진 사전 파일을 만들어주려면 최소 최대 모두 4자리, 사용할 문자는 0123456789로 지정해줬다.
/etc/shadow 파일을 열어보면 비밀번호가 해시값으로 보인다.
JTR로 사전 공격을 하기 위한 옵션 : john --wordlist=[사전 파일] [암호파일]
unshadow /etc/passwd /etc/shadow > password.txt 를 입력해서 /etc/passwd와 /etc/shadow를 합쳐 별도의 파일에 저장했다. 이 별도의 파일이 사전 파일을 대입해서 비교할 암호 파일.
John The Ripper로 패스워드 알아내는 방법
1. john --format=crypt password.txt ->해시값을 분석해서 패스워드를 알려준다.
2. john --show password.txt -> 크래킹한 패스워드를 볼 수 있다.
처음에 --wordlist 앞에 --format=crypt를 안 썼더니 계속 에러가 나왔다. 그래서 해결방법을 구글링해보니까,
cat password.txt 를 해서 보면 $y$가 username 뒤에 있는 것을 볼 수 있는데, 이게 패스워드가 yescrypt로 해시됐다는 뜻이란다. 그래서 john이 이 해시포맷을 감지하게 도우려면 --format=crypt 명령어를 추가해줘야한다. 이 명령어가 해시값을 분석하는 역할인데, 이게 없으니까 오류가 계속 난거였다.
명령어를 제대로 입력했더니 swing1과 swing2의 비밀번호가 크랙돼서 나왔다.
사전 공격 성공.
'Linux' 카테고리의 다른 글
Linux 스터디 6주차 실습 (0) | 2022.06.07 |
---|---|
Linux 스터디 5주차 msfvenom 실습 (0) | 2022.05.20 |
Linux 4주차 과제 3 (0) | 2022.05.13 |
Linux 4주차 과제 2 : 부트로더 패스워드, iptables 설정 실습 (0) | 2022.05.13 |
LInux 4주차 과제 1 : 명령어 실습 (0) | 2022.05.13 |