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의 비밀번호를 알 수 있게 된다 :)

 

+ Recent posts