안녕하세요.
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 |