Systemhacking/FTZ

[FTZ] level4

レ(゚∀゚)ヘ=3 2021. 3. 30. 18:43
728x90

level 4

 

이번에도 ls로 hint 파일이 있는 것을 확인한 후 cat 명령을 통해 hint의 내용을 보았다.

' 누군가 /etc/xinetd.d/ 에 백도어를 심어 놓았다.! ' 라는 힌트를 얻을 수 있었다.

 

더보기

 

backdoor

: 시스템에 존재하게 되면 공격자가 일반 보안 엑세스 컨트롤을 우회하고 시스템에 엑세스 할 수 있는 악성 코드의 유형

 

 

 

실제로 ' backdoor ' 파일이 존재하는지 ' ls -l '을 통해 확인해보았다.

' backdoor ' 파일은 모두 읽기 권한만 주어지고, 파일 소유자가 level4로 되어있다.

 

' backdoor ' 파일은 ' /etc/xinetd.d ' 디렉토리 안에 있기 때문에 ' cd ' 명령어를 통해 해당 디렉토리로 이동해주었다.

그리고 ' cat ' 명령을 통해 ' backdoor ' 파일의 내용을 확인해보았다.

' service finger ' 라면서 finger 의 데몬 설정 정보가 나왔다. 

 

더보기

 

finger 

: 특정 사용자 정보를 출력하는 명령어

사용자 계정 정보와 최근 로그인 정보, 이메일, 예약 작업 정보 등을 볼 수 있음

 

finger [옵션] [사용자명] [user@host ... ]

 

 

데몬 정보 하나씩 해석해 보았다.

  • disable = no : 사용 유무
  • flags = REUSE : 해당 서비스 포트가 사용중인 경우 해당 포트의 재사용을 허가
  • socket_type = stream : socket 타입을 TCP/IP 프로토콜로 선택
  • wait = no : 해당 서비스가 이미 연결된 상태에서 다른 요청이 들어오면 대기 시간 없이 응답하는지에 대한 유무
  • user = level5 : 해당 데몬이 level5의 권한으로 실행됨을 의미
  • server = /home/level4/tmp/backdoor : xinetd에 의해 실행될 데몬의 파일
  • log_on_failue += USERID : 해당 서비스의 가동에 문제가 생기면 userid 로그에 기록

데몬의 정보를 통해 finger를 실행하면 xinetd에 의해 level5의 권한으로 실행된다. 

또한 xinetd에 의해 실행될 데몬 파일이 ' /home/level4/tmp/backdoor ' 이라고 하였다.

 

실행될 파일인 ' backdoor ' 을 확인하기 위해 ' cd ' 명령어를 통해 tmp로 이동하고, ' ls -l ' 로 파일을 확인해보았더니 존재하지 않았다.

실행될 ' backdoor ' 파일이 존재하지 않으므로 임의로 만들어주어 실행되도록 해야할 것 같았다.

 

vim 을 통해 원하는 c언어로 코딩을 해준 다음에 ' cat ' 을 통해 ' backdoor.c ' 의 내용을 확인해주었다.

system() 함수를 사용해서 ' backdoor ' 를 실행하면 ' my-pass ' 명령어를 통해 level5의 패스워드를 출력하도록 코딩을 하였다.

 

' gcc -o backdoor backdoor.c ' 를 통해 컴파일을 해준 다음, ' ls -l ' 로 제대로 생성되었는지 확인해주었다.

 

위에서 찾았던 ' finger ' 사용법을 이용해서 ' finger ' 을 실행하였더니 level5의 패스워드인 " what is your name? " 을 얻을 수 있었다.

 

 

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

[FTZ] level6  (0) 2021.03.30
[FTZ] level5  (0) 2021.03.30
[FTZ] level3  (0) 2021.03.25
[FTZ] level2  (0) 2021.03.25
[FTZ] level 1  (0) 2021.03.25