※ 레벨에대한 정확한 비밀번호를 알려드지는 않습니다. 힌트와 해결과정을 포스팅하려고합니다.
※ 이 게시물은 시스템에대한 폭넓은 이해를 돕기위함이며, 이 게시물을 악용하여 발생한 피해는 책임지지 않습니다.
※ 최대한 스스로 풀어보시기를 권합니다.
↑ 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를 쳐주면 클리어
해커스쿨 FTZ level4 (0) | 2017.03.02 |
---|---|
해커스쿨 FTZ level3 (2) | 2017.02.28 |
해커스쿨 FTZ level2 (4) | 2017.02.23 |
해커스쿨 FTZ 환경 구축하기 (0) | 2017.02.14 |
FTZ풀기전에 참고하면 좋은 자료(trainner service) (0) | 2017.02.14 |
좀 알려주세요 현기증 난단 말이에요..