보안 공부하는 꼬깔이

FTZ level5 풀이





level5 홈디렉터리의 내용 확인, hint 파일과 폴더 2개 확인


hint를 확인해보자



/usr/bin/level5 프로그램에 의해 /tmp 디렉토리에 level5.tmp 라는 임시 파일이 생성되며, 그것을 이용하여 level6의 권한을 흭득하는것이 이번 level의 목표인것 같다.




/usr/bin/level5 파일을 확인해보니 level6의 권한으로 setuid가 걸려있다는 것을 확인했다.




level5를 실행시켰다. 이제 /tmp 디렉토리로 이동해 level5.tmp 라는 임시파일이 생성됬는지 확인해보자.




아무리 실행시켜도 /tmp 디렉토리에 level5.tmp 라는 임시 파일은 생성되지 않았다.


그렇다면 생각해볼점은 /usr/bin/level5 프로그램 실행시 /tmp 디렉토리에 level5.tmp 임시 파일이 생성되지만 프로그램이 종료되기 직전 과정에서 삭제된다는 점이다. level5.tmp가 생성되고 삭제되기전에 이 파일의 내용을 가로챌수있는 방법을 생각해보자.


 구글링 시도중 심볼릭 링크(symbolic link)를 이용하여 파일의 내용을 가로채는 방법을 확인할 수 있었다.


#TIP.symbolic link?

- 심볼릭 링크란 어떤 파일을 가르키는 파일로 windows의 바로가기와 비슷한 개념이라고 생각하면 된다.


/tmp 폴더에 test 라는 파일을 만들고, /tmp/test 파일에 level5.tmp의 심볼릭 링크를 걸어주게 되면 /usr/bin/level5 가 실행되고 지워지기 전에 level5.tmp의 내용이 고스란히 test 파일에 들어갈것이다. 그렇게 되면 level5.tmp 파일이 지워져도 우리는 test 파일의 내용을 확인해 level5.tmp 파일 내용 확인이 가능할 것 이다.




touch 명령어로 크기가 0바이트인 test 파일 생성!




심볼릭 링크를 걸어주는 명령어인 ln을 이용하여 test파일에 level5.tmp 파일의 심볼릭 링크를 걸어주고 ls 명령어로 확인


심볼릭 링크를 이용한 파일 가로채기 준비가 끝났으니 이제 /usr/bin/level5 프로그램을 실행시키면 어떻게 되는지 확인해봅시다.



level5.tmp 파일은 삭제되고 없었지만 test 파일의 용량이 0 바이트에서 31바이트로 증가했다. 이것은 test파일에 level5.tmp의 내용이 쓰여졌다는 것을 의미한다. test파일의 내용을 확인해보자




cat 명령어로 test 파일을 확인해보니 level6의 패스워드가 들어있었다. 


level5 clear~












'System Hacking > FTZ' 카테고리의 다른 글

FTZ level7 풀이  (0) 2017.06.30
FTZ level6 풀이  (0) 2017.06.30
FTZ level4 풀이  (0) 2017.06.30
FTZ level3 풀이  (0) 2017.06.30
FTZ level2 풀이  (0) 2017.06.30