level1의 ID와 PW는 아래와 같습니다.
ID : level1
PW : level1
로그인을 하면 아래와 같은 권한으로 들어가집니다.
ls -l 명령어를 사용해보면 hint라는 파일 1개, public_html, tmp라는 디렉토리 2개가 보입니다.
cat hint 명령을 사용하여 hint 파일의 내용을 확인해보면 다음과 같은 힌트가 주어집니다.
힌트의 내용은 [그림 1]과 같습니다.
즉, level2라는 사용자가 자신의 파일 중 setuid를 걸어놓은 것이 있는지 찾아보는 것을 의미합니다.
[그림 1] level1의 hint 파일
level2라는 유저가 setuid를 설정한 파일을 찾는 명령어는 [그림 2]와 같습니다.
명령어 or 옵션 |
내용 |
find |
파일 혹은 디렉토리를 찾는 명령어 |
/ |
'/'라는 디렉토리(최상위 디렉토리)에서부터 검색을 시작한다는 것을 의미 |
-user level2 |
사용자는 level2라는 것을 지정하는 옵션 |
-perm +4000 |
권한은 +4000 즉, setuid가 설정되어 있는 파일을 지정하는 옵션 |
2>/dev/null |
/dev/null은 리눅스의 휴지통과 같은 의미로, error(2)이면 휴지통으로 보냄 |
[그림 2] level2라는 유저가 setuid를 설정한 파일을 찾는 명령어 및 파일
/bin/ExecuteMe를 실행시키면 다음 [그림 3]과 같은 내용이 나옵니다.
[그림 3] /bin/ExecuteMe 실행화면
이 파일은 level2권한으로 원하는 명령어를 실행시킬 수 있도록 해주는 프로그램입니다.
단, my-pass와 chmod는 사용할 수 없게 외어 있습니다.
여기서 실행할 명령어를 신중하게 골라야 합니다.
[그림 4] bash 명령어를 실행하여 level2 권한을 유지함
[그림 4]와 같이 bash명령어를 실행하여 level2권한을 실행시킬 수 있음을 숙지해둡시다.
my-pass의 명령어를 실행시켜보면 패스워드가 나옵니다.
PS. vi명령어로도 해봅시다.
'WARGAMES > FTZ' 카테고리의 다른 글
level08_FTZ (0) | 2016.01.07 |
---|---|
level07_FTZ (0) | 2016.01.07 |
level06_FTZ (0) | 2016.01.07 |
level05_FTZ (0) | 2015.11.27 |
level04_FTZ (0) | 2015.11.26 |
level03_FTZ (0) | 2015.11.20 |
level02_FTZ (0) | 2015.11.15 |
FTZ - hackerschool Local Setting (0) | 2015.08.04 |