HackerSchool FTZ Level 2 Write-Up

HackerSchool FTZ Level 2 Write-Up

in

이번에 풀어볼 문제는 HackerSchoolFTZ Level 2 입니다.

풀이 과정 및 선수 지식은 level1 과 크게 다르지 않으며 setuid가 걸린 파일이 명령어를 실행시켜주는 바이너리가 아닌, Vim 에디터 파일이라는 차이가 있습니다.

Level 2 Write-Up

level2 계정에 접속해 hint 파일을 봅니다.

$ cat hint

image cat hint

level 1과 마찬가지로 소유주가 level 3이며 setuid가 걸린 파일이 있는지 확인합니다.

$ find / -user level3 -perm -4000 2>/dev/null

image find / -user level3 -perm -4000 2>/dev/null

level3이 소유주인 setuid가 설정되어 있는 '/usr/bin/editor' 파일이 존재하는 것을 확인 했습니다.

$ ls -la /usr/bin | grep editor

image ls -la /usr/bin | grep editor

해당 파일을 실행 하면 VIM 에디터가 실행 되는데, setuid가 걸려있으니 level3의 권한으로 실행되고 있겠군요.

$ /usr/bib/editor

image run editor

힌트 파일에서 “텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데…” 라는 문구를 떠올려보면 VIM 내부에서 명령어를 실행시킬 수 있는 기능이 있는지 확인을 해보면 됩니다.

아래처럼 VIM 에서는 문서를 편집하는 도중 VIM을 빠져나가지 않고 명령어를 실행시키는 편리한 기능을 지원합니다.
:![command]<CR>

해당 기능을 이용해서 에디터 내부에서 bash를 실행시켜 줍니다.

:! bash

image :!bash

level3 계정으로 접근에 성공했습니다. image access success

my-pass 커맨드로 level3 계정의 패스워드를 확인합니다.

$ my-pass

image my-pass

성공적으로 level3 계정의 패스워드가 can you fly? 인 것을 확인했습니다.
level2는 Vim Editor 편집상태에서 명령어를 실행하는 법만 쉽게 클리어 할 수 있습니다.

index.html

문제 풀이와 관련된 것은 아니지만 public_html에 index.html 파일에서 아래와 같은 내용을 확인할 수 있습니다.

$ cat public_html/index.html

image cat public_html/index.html

by 9b7d722b58370498cd39104b2d971978
MD5 Hash로 추정되어 MD5 reverse를 돌려 작성자를 알 수 있습니다. image