ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [F.T.Z] Level 4
    Wargame/F.T.Z 2022. 9. 18. 09:59
    반응형

    Level 4를 풀어보자.

     

    Level 4의 hint를 읽어보면 백도어가 심어져 있다는 설명이 나타난다.

    <Level 4의 힌트>

     

    /etc/xinetd.d 디렉터리에 어떤 파일들이 있는지 확인을 해보니 backdoor라는 파일이 있다.

    해당 파일에 대해 알아보기 위해 읽어보도록 하자.

    <backdoor 파일 확인>

    backdoor 파일을 분석해보는 것이 우선 과제인 듯하다.

    service finger를 보니, 이 파일은 finger로 xinetd 설정을 하고 있다는 것을 알 수 있다.

    disable = no이기 때문에 서비스를 하고 있다.

    flags = REUSE는 서비스 포트가 사용중일 때, 해당 포트의 재사용을 허가한다.

    socket_type = stream은 TCP일 경우 사용한다는 정도로 알면 된다. (UDP일 경우 dgram)

    wait = no는 다중 스레드로 서비스가 연결이 된 상태에서도 새로운 서비스 요청을 받아들이게 한다.

    user = level5 이므로 level5의 권한으로 서비스한다.

    server = /home/level4/tmp/backdoor의 위치가 해당 서비스 요청 시 서비스를 담당하게 될 데몬의 절대 경로이다.

    log_on_failure += USERID는 서버 접속 실패 시 기록할 로그로, 사용자의 id 값도 log 파일에 추가로 기록한다.

    이것으로 backdoor 파일의 분석은 완료했다. (완벽하게 이해하지 않아도 문제를 풀 수 있다.)

     

    backdoor 파일의 server의 내용을 보면 서비스 데몬의 절대 경로가 설정되어 있다.

    하지만, 해당 경로의 디렉터리에는 backdoor 파일이 없다.

    Level 5의 권한으로 서비스가 되므로 my-pass 명령어가 수행되도록 backdoor.c 파일을 만든다.

    그리고 gcc 명령어를 사용해 backdoor.c 파일을 컴파일한다.

    <backdoor.c 파일 생성 후 컴파일>
    <backdoor.c 파일 내용>

     

    이후 finger 서비스를 사용해보면 사용자 정보를 출력할 뿐이다.

    finger --help로 finger 서비스의 사용법을 확인해보면 login을 입력할 수 있다.

    user를 Level 5로 host를 localhost로 해 현재 내부의 사용자 정보가 아닌 login 사용자 정보를 확인한다.

    그렇게 하면 비밀번호가 나타난다.

    <나타난 비밀번호>

     

     

    반응형

    'Wargame > F.T.Z' 카테고리의 다른 글

    [F.T.Z] Level 6  (2) 2022.09.21
    [F.T.Z] Level 5  (0) 2022.09.18
    [F.T.Z] Level 3  (0) 2022.09.18
    [F.T.Z] Level 2  (0) 2022.09.18
    [F.T.Z] Level 1  (0) 2022.09.18

    댓글

Designed by Tistory.