Write-Up/FTZ

FTZ: Level 8

NONE_31D 2019. 9. 26. 09:59

Level 8로 로그인해서 hint 파일을 열어보면 다음과 같은 힌트를 얻을 수 있다. 

용량이 정확하게 2700인 파일은 많지 않을것이라 생각하고, find 명령어와 옵션을 이용해서 이 파일을 찾아보도록 하자.

 

다음과 같이 find / -size 2700c 2> /dev/null 명령어를 사용하면 다음 옵션들이 조합되어 실행된다

1. 루트에서부터

2. 사이즈가 2700c(= 2700바이트)인 파일을 찾는다

3. 표준 에러일 경우(2>)

4. 화면이 아닌 /dev/null 에 저장한다

 

결과는 다음과 같이 /etc/rc.d/found.txt라는 파일을 찾을 수 있었다. 해당 파일을 열어보면 다음과 같이 shadow 형태의 내용이 들어있는 것을 알 수 있다. 

shadow 파일은 /etc/passwd에서 암호화한 패스워드부분을 shadow에서 읽을 수 있도록 저장되어있는 내용이다.

구조는 다음과 같다

[유저 네임] : [암호화된 패스워드] : [마지막으로 변경된 날짜] : [비밀번호 최소 사용 기간] : [비밀번호 최대 사용 기간] : [비밀번호 만기 전 경고메세지를 전하는 일 수] : [로그인 접근 차단 일 수] : 등. 

 

즉, 두번째 구역에 있는 부분이 우리가 알아봐야 할 부분이다. 

암호화된 패스워드는 다음과 같은 구조를 가진다.

$HashID$Salt$HashValue

앞의 HashID는 어떤 스키마를 이용하여 해시함수를 처리했는지 보여주는 값이다.

Identifier Scheme
1 MD5
2a Blowfish
md5 MD5
5 SHA-crypt(SHA-256)
6 SHA-crypt(SHA-512)

salt는 해시를 하기 전에 참고할 값을 의미한다.

HashValue에서는 앞 두가지 값을 가지고 어떤 결과값이 나오는지 보여준다. 즉, 보여지는 level9의 섀도우는 아래와 같은 구조로 나눌 수 있다.

HashID 1 (MD5-crypt)
Salt vkY6sSlG
HashValue 6RyUXtNMEVGsfY7Xf0wps.

 

레인보우 테이블을 이용하면 salt를 가지고 있기 때문에 해당 해시를 풀 수 있을거라 생각했다. 

"John The Ripper" 라는 유닉스 패스워드 크랙 툴이 존재하는데, FTZ 서버에는 설치되어있지 않아보였다. 칼리에는 기본적으로 이 툴이 깔려 있어, 보이는 level9 shadow 파일을 kali로 옮겨 패스워드 크래킹을 진행해보기로 했다.

 

다음과 같이 level9의 shadow를 넣고, 그 파일을 툴로 돌렸더니 바로 apple이라는 비밀번호가 나오는 것을 확인할 수 있었다.

'Write-Up > FTZ' 카테고리의 다른 글

FTZ: Level 10 - writeup 수정중 (해결완료)  (0) 2019.11.12
FTZ: Level 9  (0) 2019.11.12
FTZ: Level 7  (0) 2019.09.26
FTZ: Level6  (0) 2019.09.26
FTZ: Level 5  (0) 2019.09.19