level 1
(비밀번호 : level1)
문제를 파악하기 위해 어떤 파일이 있는지 ls 을 해보았다.
사진과 같이 hint, public_html, tmp 가 나온다. 먼저 hint 파일의 내용을 보았다.
' cat hint ' 를 통해 hint 파일의 내용을 보니 ' level2 권한에 setuid가 걸린 파일을 찾는다. ' 라는 내용이 나왔다. setuid 파일을 찾아야한다.
앞 글 [FTZ] trainer6 ~ trainer10에서 setuid 파일을 찾는 방법을 배웠었다.
서버에서 setuid가 걸린 파일 찾는 법
find / -perm -4000 : /에서 부터 적어도 SetUId가 걸린 파일을 찾겠다.
find 명령 옵션
-user : user와 일치하는 파일을 찾는다
서버에서 level2 의 권한을 가진 setuid가 걸린 파일을 찾는 ' find / -perm - 4000 -user level2 ' 명령을 작성하였다.
굉장히 많은 파일이 나오는데, 대부분 Permission denied 가 나온다. 이것을 제외하고 권한이 있는 ( setuid ) 파일만 보고 싶다.
에러가 발생한 결과를 제외하는 옵션인 ' 2> /dev/null ' 을 사용하면 Permission denied 가 제외되고 결과가 나온다.
2> /dev/null
2 : 표준 에러
( 1 : 표준 출력 )
/dev/null : 윈도우의 휴지통
2> /dev/null : 표준 에러를 휴지통에 넣는다.
' 2> /dev/null ' 을 추가해서 명령을 입력하면 원하는 ' /bin/ExecuteMe ' 파일이 나온다.
원하는 setuid 파일이 맞는지 확인하기 위해 ' ls -al ' 을 해보았다.
일단 실행 부분에 ' s ' 가 들어가 있으니 setuid가 맞다.
특히 user 의 실행 부분에 ' s ' 가 들어가 있으므로 /bin/ExecuteMe 파일을 실행하면 소유자 권한으로 실행이 된다.
즉, level1인 우리가 파일을 실행하면 level2의 권한으로 실행할 수 있다는 것이다.
위와 같이 ExecuteMe 파일을 실행시키면 문구와 함께 ' [level2@ftz level2]$ ' 가 뜬다.
level2의 암호를 확인할 수 있는 my-pass는 바로 작성할 수 없도록 되어있으므로 먼저 ' bash ' 를 실행시킨다.
' bash ' 를 실행시킨 후 ' my-pass ' 를 작성하면 level2 의 패스워드인 " hacker or cracker " 를 얻을 수 있었다.
'Systemhacking > FTZ' 카테고리의 다른 글
[FTZ] level4 (0) | 2021.03.30 |
---|---|
[FTZ] level3 (0) | 2021.03.25 |
[FTZ] level2 (0) | 2021.03.25 |
[FTZ] trainer6 ~ trainer10 (0) | 2021.03.25 |
[FTZ] trainer 1 ~ trainer 5 (0) | 2021.03.18 |