-
[F.T.Z] Level 4Wargame/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