1. 풀이

- level4 홈 디렉터리의 hint 파일 내용확인

- /etc/xinetd.d에 백도어가 있음을 유추가능

데몬 동작 방식
xinetd.d 방식 구분 standalone 방식
xinetd 데몬에 의해 실행 및 종료 동작 각각의 데몬이 독립적으로 실행 및 종료
xinetd에 의해 호출 된 경우에만 메모리 상주 메모리 상주 항상 메모리에 상주하여 독릭접으로 존재
상대적으로 느림 응답 속도 상대적으로 빠름
/etc/xinetd.d 설정 파일 /etc 디렉터리에 독립적인 설정파일 존재
tcp_wrapper (/etc/host.allow, /etc/host.deny) 접근 제어 설정 파일 독립적 설정을 통해 제어
통합관리, 자원절약, 접근제어 장점 빠른 응답
느린 응답 단점 개별관리, 자원낭비
비교적 서비스 요청이 많지 않은 서비스 적용 비교적 서비스 요청이 빈번히 발생하는 서비스
telnet, ftp 등 예시 httpd, mysql, sshd 등

* xinetd.d 서비스 방식을 standalone 서비스 방식으로 변경이 가능하며, 그 반대 또한 가능함(단, 지원하지 않는 서비스도 존재)

- /etc/xinetd.d 내용을 확인하면 backdoor 파일을 확일할 수 있음

- backdoor 파일의 내용을 정리하면 다음과 같음

① service finger : 서비스 이름

② disable = no : 서비스의 사용 가능 유무(no=서비스 사용가능, 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/backdoor 파일은 존재하지 않음.

- 해당 파일이 level5의 권한으로 실행됨을 확인 했으므로(user = level5), level5의 비밀번호를 알 수 있는 backdoor 파일을 해당 경로에 작성 후 finger 서비스를 수행하면 level5의 비밀번호를 알 수 있음

- 해당 파일을 컴파일한 후 finger 서비스를 실행하면 level5의 비밀번호를 알 수 있음

2. GDB를 통한 의사 코드 복원

- 공격을 위해 작성한 backdoor 분석

- system() 함수로 my-pass 명령을 실행함

'문제풀이 > FTZ' 카테고리의 다른 글

FTZ Level6 풀이  (1) 2022.10.28
FTZ Level5 풀이  (0) 2022.10.27
FTZ Level3 풀이  (0) 2022.10.25
FTZ Level2 풀이  (0) 2022.10.25
FTZ Level1 풀이  (0) 2022.10.24

+ Recent posts