FTZ level4 Write-Up

2019. 7. 23. 15:41
728x90
728x90
728x90

FTZ level4 풀어보자.

 

[사진 1]

hint를 참고해 /etc/xinetd.d/ 디렉터리를 확인해보자.

 

 

[사진 2]

해당 디렉터리를 확인해보면 위와 같이 'backdoor' 파일이 존재한다.

 

 

[사진 3]

파일 내용으로는 finger 서비스에 대한 설정이 들어가 있다.

finger는 리눅스에서 사용자 계정 정보를 확인하는 명령어이다.

총 7개의 항목이 존재하는데 각각의 의미는 다음과 같다.

 1. disable = no (no: 활성화 / yes: 비활성화)

 2. flags = REUSE

 3. socket_type : stream (stream - TCP / dgram - UDP)

 4. wait = no (no: 처리 중 요청이 들어오면 그 요청을 처리 / yes: 먼저 요청된 것을 처리)

 5. user = level5 (level5의 권한으로 실행)

 6. server = /home/level4/tmp/backdoor (finger로 서버 접속 시 실행되는 파일)

 7. log_on_failure += USERID (서버에 접속실패 했을 때, /etc/xinetd.conf 파일에 정의된 기본 항목 외에 유저 아이디 값을 로그파일에 추가)

 

즉, finger 서비스를 실행하면 level4 계정의 홈디렉터리 하위에 있는 tmp 디렉터리의 backdoor 파일이 실행된다.

하지만 현재 tmp 디렉터리에 backdoor 파일이 없기 때문에 만들어야 한다.

 

 

[사진 4]

backdoor 파일은 level5 계정의 권한으로 실행될 것이기 때문에 system 함수를 이용하여 password를 출력하도록 만들었다.

 

 

[사진 5]

그리고 'finger @localhost' 명령어를 입력하면 서버에 접속하여 /home/level4/tmp/backdoor 파일이 실행된다.

따라서 level5 계정의 password를 확인할 수 있다.

728x90
728x90

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

FTZ level6 Write-Up  (0) 2019.07.23
FTZ level5 Write-Up  (0) 2019.07.23
FTZ level3 Write-Up  (0) 2019.07.22
FTZ level2 Write-up  (0) 2019.07.22
FTZ level1 Write-Up  (0) 2019.07.22

+ Recent posts