본문 바로가기
Wargame/FTZ

FTZ level4 복기

by 맑은청이 2020. 11. 18.
728x90
반응형

level4 는 xinetd 백도어와 연관이 있다. 

level1에서 했던 건 로컬 백도어인데 이보다는 당연히 원격 백도어가 공격자에게는 편리하다. 

서버의 네트워크를 이용하는 백도어인 것이다. 

 

원격 백도어를 만드는 다양하지만 이번에는 리눅스 시스템의 데몬들 사이에 백도어를 섞어두는 방법을 알아보자. 

 

이는 서버 운영체제 해킹에 해당하는 개념이고 그러면 xinted 데몬의 개념을 알아야한다. 

 

리눅스 서버 시스템의 부팅 순서

1. 부팅 로더(Grub) 실행

2. 커널 이미지 메모리 로딩 

3. /etc/initab 파일에 있는 내용 중 선택된 모드로 init 프로세스 실행

4. xinted 데몬에 의한 네트워크 데몬 가동

5. 부팅 완료 

 

여기서 데몬은 멀티태스킹 운영체제에서 사용자가 직접 제어하지 않고 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 보통 데몬을 뜻하는 'd'를 달고 있다. 시스템을 시동할 때 데몬을 시작하는 경우가 많고 이런 데몬들은 네트워크 요청, 하드웨어 동작같은 프로그램에 반응하는 기능을 맞게 된다. 

 

어쨌든 부팅 순서에서 부팅이 마무리되는 과정에 네트워크 데몬을 가동하는 건 xinetd 슈퍼 데몬이다. 그럼 네트워크 데몬은 FTP, 텔넷, SSH, 아파치 등과 같은 네트워크 통신을 위한 데몬을 의미할 것이다.

 

xinetd 슈퍼 데몬은 부모 프로세스와 자식 프로세스에서 부모 프로세스인 중요한 데몬이다. 리눅스 서버는 안정적인 서비스 제공을 위해 서버가 부팅될 때 관리자가 수동으로 하지 않아도 된다. 자동으로 구동되기 때문이다. 

 

xinetd 의 설정 구조를 알아보자 /etc/xinetd.conf 설정은 xinted 서비스의 그로벌 설정이다.

 

  • instances = 60 : 네트워크 서비스 데몬의 최대 동시 접속 허용을 위한 데몬의 기동 수치
  • log_types = SYSLOG authpriv : 시스템 로그를 "보안 및 승인에 관한 메시지 등급" 으로 저장
  • log_on_success = HOST PID: 접속에 성공했을때 원격호스트 IP를 로그에 저장한다는 의미, 접속 장애의 원인을 분석할 수 있는 최소한의 근거를 이력으로 남김
  • cps = 25 30: 동시 접속 25개가 되면 30초 동안 서비스 비활성화

 

현재 서비스의 이름은 telnet 이다. /etc/services 의 서비스명으로 선택하는 것을 권장한다. 

  • flags = REUSE:  서비스 포트가 사용중인 경우 해당 포트 재사용 허가 
  • socket_type = stream : tcp/ip 프로토콜 선택
  • wait = no : 이미 서비스가 연결된 상태에서 다른 요청 오면 바로 응답, 즉 telnet 은 동시에 다수 접속이 가능하다는 걸 의미 
  • user = root : 해당 데몬이 root 권한으로 실행
  • server = /usr/sbin/in.telnetd: xinted 에 의해 실행될 데몬 파일
  • log_on_failure += USERID : 정상적인 기동 실패한 경우 USERID 로그에 기록  
  • disable = no : 데몬을 비활성화 하지 않음 yes 로 설정되면 해당 서비스가 기동하지 않음

 

 


 

누군가 /etc/xinetd.d에 백도어를 심어놓았다고 한다. 여기에 있는 백도어라면 레벨 1,3 과는 다르게 다른 네트워크를 이용한 서비스 포트와 관련된 백도어라는 의미이다. 로컬 백도어와 원격 백도어의 차이는 사용하는 곳이 로컬이냐 네트워크냐의 차이일 뿐이다. 일단 해당 디렉토리를 확인해보자.

 

권한 4의 백도어가 보인다. 

 

보면 level5권한으로 사용하니깐 백도어가 맞다. finger 라는 서비스를 이용해 /home/level4/tmp/backdoor 파일이 실행된다는 의미다. 

보면 finger 서비스가 사용하는 포트가 79/tcp 인걸 볼 수 있다. 그러면 공격할 때 79번 포트로 접속 시도를 하면 된다. 

 

여기서 접속 시도를 한다는건 FTZ 서버에 79/tcp 포트가 LISTEN 으로 나타나야한다는 의미다.

보면 79/tcp 가 열려 있다. 하지만 찾아보면 그런 파일이 없다고 나온다.

 

데몬을 시작하기 위한 설정 파일이 없어서 네트워크 백도어가 제대로 구동되지 않는다. 현재의 환경을 파악하기 위해 70/tcp 포트로 접속해보면 이 파일이 없기 때문에 아무런 실행 결과가 나타나지 않는다.

 

 

 

728x90
반응형

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

FTZ level3 풀이 복기  (0) 2020.11.17
FTZ level2 풀이 복기  (0) 2020.11.12
해커스쿨 FTZ trainer1~10 정리  (0) 2020.08.05