suninatas의 비밀번호를 알아내는 문제이다.
문제파일을 다운로드 받으면 tar 확장자를 가진 압축 파일이 나오는데, 이를 풀면 passwd와 shadow 두 개의 파일을 얻을 수 있다.
그리고 역시나 두 파일 내에 suninatas 라는 이름의 user가 있었다.
이를 이용하여 비밀번호를 구하면 된다.
구글링을 통해 passwd 파일과 shadow 파일을 이용하여 비밀번호 cracking을 할 때 john(john the ripper) 을 주로 쓴다는 것을 알았다.
곧바로 설치해준다.
++
shadow 파일을 보면 각 사용자별로
username:$number$hash
형태로 내용이 적혀있는데, 여기서 number값이 그 number에 해당하는 암호화 알고리즘으로 hash를 만들었다는 것을 의미한다고 한다.
number는 1~6 범위에 있는 숫자인데 여기서는 6번에 해당하는 암호화 방법과 salt로 hash를 만든 것이고 이 정보를 이용하여 john이 복호화를 해주는 것.
리눅스에서 사용자의 비밀번호 암호화 시 6가지 암호화알고리즘 중 하나와 특정 salt값을 이용한다는 것을 알 수 있는 대목이다.
++
# install | configuration
~/src$ git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john
~/src/john/src$ ./configure && make -s clean && make -sj4
# testing
~/src/john/run$ ./john --test
(애초에 apt로 john을 설치하면 john 파일이 아닌 다른 위치에서도 실행가능.! 그런데 이렇게만 해도 john이 활성화까지 되는지는 모르겠다..)
설치를 마쳤으면 문제에서 주어진 두 파일을 이용하여 unshadow 한 결과를 password.txt에 저장한다.
$ unshadow passwd shadow > password.txt
그리고 그 파일을 john 명령어를 통해서 실행시켜준다. 그리고 성공한다면 john이 --show 옵션으로 확인해보라고 알려준다.
$ john ~/Downloads/password.txt
$ john --show ~/Downloads/password.txt
알려준대로 --show를 하면 suninatas의 비밀번호를 알 수 있게 된다 :)
'Wargame' 카테고리의 다른 글
[DigitalForensic with CTF] Network - DefCoN#21 #8 (0) | 2022.01.26 |
---|---|
[DigitalForensic with CTF] Network - tom-and-jerry (0) | 2022.01.18 |
[xcz.kr] Prob17 Password Recover (0) | 2021.09.08 |
[xcz.kr] Prob13 Network Recovery! (0) | 2021.09.08 |
[DigitalForensic with CTF] Network - DefCoN#21 #3 (0) | 2021.08.29 |