티스토리 뷰




※ 레벨에대한 정확한 비밀번호를 알려드지는 않습니다.  힌트와 해결과정을 포스팅하려고합니다.

※ 이 게시물은 시스템에대한 폭넓은 이해를 돕기위함이며, 이 게시물을 악용하여 발생한 피해는 책임지지 않습니다.

※ 최대한 스스로 풀어보시기를 권합니다.





↑ FTZ에서는 다음 레벨의 비밀번호 정보를 my-pass명령어를 통해 얻을 수 있습니다.







↑ level1에 접속한 후 ls 명령어를 통해 level2의 비밀 번호를 얻기 위한 실마리를 찾습니다.

ls 명령어를 치면 hint 보기 좋은 file이 있습니다. file의 내용은 ' level2 권한에 SetUID가 걸린 파일을 찾는다 ' 입니다.



SetUID가 뭔지 아는데 참고하시면 좋습니다.

# http://hack-cracker.tistory.com/55


perm (permission(권한))이 헷갈릴때 참고하시면 좋습니다.

#http://hack-cracker.tistory.com/55



   - 정리하면  SetUID 라는 것은 임시적으로 사용자의 권한을 바꿔줄 수 있는 규칙을 파일에 적용시켜준것 입니다. 즉, level2권한에 SetUID 가 걸린 

     파일이 어딘가 존재 한다는 의미 입니다.



   - 무언가를 찾는 명령어인 ' find '명령어를 사용해 찾습니다. 우리가 찾는 파일은 SetUID가 걸린 파이므로 -perm옵션과, -user 옵션을 사용합니다.

        → $> -perm -4000  : SetUID가 걸린 파일을 찾습니다.

        → $> -user level2 level2 권한에 

         



↑ find 명령어를 이용해 검색을 시작합니다.

find / -user -level2 perm -4000

/(최상위 루트 디렉토리) 아래에 소유자가 level2 이고 SetUID가 걸린 파일을 찾아라


↑ 검색을 시작하면 엄청나게 많은 결과가 나와서 당혹스럽게합니다,

이럴때는 2 >/dev/null 명령을 이용해 에러가뜬 결과를 버릴 수있습니다.


↑ find / -user level2 -perm -4000 2>/dev/null ' 명령을 이용하면 요구에 맞는 결과물만 출력할 수 있습니다.



↑ 결과물을 자세히 보시면 

-rwsr-x---    1 level2   level1      12868 Sep 10  2011 /bin/ExecuteMe 

파일이면서 소유자의 권한이 rws 인데 이는 s가 SetUID가 걸린 것임을 알 수 있습니다. 또한 파일의 소유자 역시 level2이므로 level2의 권한으로 SetUID가 걸려 있습니다.  바로 찾고자 하는 파일입니다.



↑ 디렉토리 /bin은 명령어를 저장하고 있는 디렉토리임을 추측할 수 있습니다.  cp, mv. rm,.. 등등 많은 리눅스 명령어 들이 담겨 있는 디렉토리 입니다.

그런걸로 미뤄볼때 ExecuteMe도 명령어가 아닐까 생각해 볼 수 있습니다. 쉘에 ExcuteMe를 치면 결과가 나옵니다.




↑ 우리가 알아야할 my-pass명령어를 칠 수 없게 막아 놨습니다. 그래도 문제는 되지 않습니다. /bin/bash 쉘 명령어를 이용해 level2의 쉘에 

접근하면 됩니다.(현재 level2의 권한을 가지고 있기 때문에 가능)




↑ my-pass를 쳐주면 클리어