ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • lvl 04
    Wargame/HackerSchool FTZ 2019. 1. 9. 22:09

    → 힌트 파일 확인.




    → xinetd.d 데몬에 대해서 알아본다.


    참고 링크: http://egloos.zum.com/light99/v/5142379


    → 힌트에서 알려준 경로로 들어가 살펴본 결과 "backdoor" 파일이 확인된다. 참고로 /etc/xinetd.d/ 디렉토리는 데몬 서비스가 저장된다.




    → backdoor 파일의 내용을 살펴본다.



    [옵션 설명]

    - service finger : 서비스 이름

    - disable = no : 데몬을 비활성화하지 않음. 즉, disable =yes로 설정된 경우에 해당 서비스를 기동하지 않음.

    - flags = REUSE : 서비스 포트가 사용 중인 경우 해당 포트의 재사용 허가

    - socket_type = stream : TCP/IP 프로토콜을 선택

    - wait = no : 이미 서비스가 연결된 상태에서 다른 요청이 오면 바로 응답

    - user = level5 : 해당 데몬이 level5 권한으로 실행됨.

    - server = /home/level4/tmp/backdoor : xinetd에 의해 실행될 데몬 파일

    - log_on_failure += USERID : 정상적인 기동에 실패한 경우 USERID를 로그에 기록


    → "finger" 라는 서비스명으로, level5의 유저권한과 함께 실제 실행될 파일의 경로를 확인할 수 있다.


    → 실제 실행될 파일의 경로인 "/home/level4/tmp/backdoor" 파일을 살펴본다.




    → 실행될 파일이 존재하지 않는다. 직접 만들어야 하므로, /home/level4/tmp/ 경로에 다음과 같은 파일을 생성한다.




    → 해당 소스는, system 함수를 이용하여 my-pass가 실행되도록 작성한다. 그리고 다음과 같이 컴파일한다.




    → 여기서 잠깐 실행해보면, level4의 계정 비밀번호가 출력된다. 즉, 소유자 level4 계정의 권한으로 실행했기 때문이다.


    → 하지만, finger 서비스는 level5 계정의 권한으로 실행되고 데몬 프로세스를 통해 finger 서비스를 실행한다면, 해당 backdoor 파일의 권한은 level5로 넘어간다. 이젠, finger 서비스에 접속해본다.


    'Wargame > HackerSchool FTZ' 카테고리의 다른 글

    lvl 06  (0) 2019.01.10
    lvl 05  (0) 2019.01.10
    lvl 03  (0) 2019.01.05
    lvl 02  (0) 2018.12.11
    lvl 01  (0) 2018.12.11

    댓글

Designed by Tistory.