level8의 힌트에선 level9의 shadow파일이 숨어있다며 파일의 용량이 2700이라고 한다.
shadow파일은 각 유저의 비밀번호를 저장하는 파일이다. /etc/shadow에 있으며 root만이 읽을 수 있다.
우선 용량이 2700인 파일을 구해야한다.
find의 파라미터 중에는 size가 있는데 이것에 2700을 넣으면 될 것 같았다.
그런데 보다시피 찾아지는 파일이 없었다.
검색을하다보니 find의 size에는 용량을 설정해야 했다.
b : 블록단위
c : byte
k : kbyte
w : 2byte 워드
출처: http://nota.tistory.com/89 [nota's story]
검색을하면 gz파일이나 gif파일 txt파일이 검색된다. 가장 열어보기 쉬운 txt파일부터 열어보았다.
이런 문자열이 계속 반복되는 형태가 나온다.
shadow파일의 형태를 검색해보니
root:$1$9L2L0oTwd:12751:0:99999:7 : : :
① ② ③ ④ ⑤ ⑥⑦⑧⑨
① 필드 1 : 사용자명
② 필드 2 : 패스워드
③ 필드 3 : 패스워드 파일 최종 수정일
④ 필드 4 : 패스워드 변경 최소일
⑤ 필드 5 : 패스워드 변경 최대일
⑥ 필드 6 : 패스워드 만료 경고기간
⑦ 필드 7 : 패스워드 파기 기간(패스워드 파기후 게정 비활성 기간)
⑧ 필드 8 : 계정 만료 기간
⑨ 필드 9 : 예약 필드
출처: http://webdir.tistory.com/129 [WEBDIR]
라고 한다.
따라서 구하고자하는 Level9의 비밀번호는 $1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps이다. 물론 암호화된 상태이므로 복호화가 필요하다.
구글에 '/etc/shadow 복호화'를 검색하니 존 더 리퍼라는 프로그램이 나왔다.
우선 txt에다가 shadow파일을 붙혀 넣었다.
그리고 윈도우 명령프롬포트 (cmd)를 해당 디렉토리로 이동시킨 뒤 'john.exe shadow.txt'명령어를 실행하였다.
그랬더니 level9의 비밀번호인 apple을 구할 수 있었다.