관리 메뉴

HeeJ's

[04] hackerschool FTZ :: level4 본문

<CTF>/<HackerSchool FTZ>

[04] hackerschool FTZ :: level4

meow00 2020. 7. 25. 11:36

level3에서 찾은 패스워드로 level4에 로그인한다.

 

디렉토리를 확인해주고, hint를 살펴보았다.

 

이번 level4는 백도어와 관련된 문제 같다.

 

백도어?

정상적인 인증 절차를 거치지 않고, 컴퓨터와 암호 시스템 등에 접근할 수 있도록 하는 방법
보안상 허점을 역이용하여 크래커들이 계정 탈취에 성공한 후 재침입을 대비해 쉽게 접근할 수 있도록 만들어 둔 파일

Xinetd

하나의 독립 데몬이지만, 여러가지 다른 서비스들을 제어하고 관리.
시스템 부하를 줄이기 위해 사용

 

힌트대로 /etc/xinetd.d/ 디렉터리로 들어가 내용을 살펴보자

 

앞구르기하면서 봐도 수상한 backdoor라는 파일이 있다는 것을 확인할 수 있다.

 

backdoor라는 파일의 실행권한을 보면, 읽기(r)밖에 할 수 없는 파일임을 알 수 있다.

 

그래서 backdoor파일을 

cat 명령어로 읽어보았다.

 

service 서비스 이름
{
      disable = no //서비스 함
      flags = REUSE
      socket_type = stream //TCP = stream, UDP = dgram
      wait = no //stream의 경우 no로 설정
      user = level5 //어떤 사용자권한으로 서비스 할 것인지
      server = /home/level4/tmp/backdoor //실행할 데몬 명
      log_on_failure += USERID // 서버에 접속 성공하지 못했을 때, /etc/xinetd.conf 파일에 정의된 기본 항목 외에 유저 아이디 값을 로그 파일에 추가하라는 뜻
}

backdoor는 finger 서비스로 실행되는 것 처럼 보이고,

user는 level5. level5의 권한으로 실행해준다는 것으로 보인다.

 

server의 경로는 저 경로를 실행시킨다는 뜻 같은데,

home/level4/tmp/backdoor라는 경로로 이동해 backdoor라는 파일을 변경 또는 생성해주면 되는 것 같다.

 

finger?

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

 

home/level4/tmp 경로로 이동해보았더니

tmp 디렉터리에 아무것도 존재하지 않았다.

 

이 경로에 backdoor라는 파일을 만들어 my-pass를 실행시킬 backdoor를 만들어 주려고 한다.

 

이렇게 vi 통해 backdoor.c라는 파일 안에 my-pass를 실행시켜주도록 코드를 작성했다.

 

잘 작성됐나 한 번 확인해주고,

 

gcc 명령어로 backdoor.c를 컴파일 해주었다.

 

이렇게 컴파일된 파일을 확인하고,

finger를 다시 실행시켜준다.

 

그냥 finger만 실행시켜주면

현재 접속하고 있는 모든 사용자의 정보를 보여주기만 한다.

 

그렇다면 다른 옵션과 함께 사용해주어야하는 것 같다.

 

finger 옵션
 -s : 사용자의 로그온 이름, 실제 이름, 터미널 이름, 로그온 시간 등을 보여줌
 -l : -s 옵션 정보에 몇 가지를 추가하여, 여러 줄에 걸쳐서 보여준다.
 -p : -l 옵션 정보에서 .plan과 .project 파일을 보이지 않는다.
      옵션이 주어지지 않으면, 기본적으로 -l 옵션을 사용한 것으로 간주된다.
finger 사용 예
$finger : 현재 시스템에 로그인 되어있는 사용자들을 보여준다.
$finger user명 : host명을 명시하지 않으면, finger는 로컬에 접속한다.
$finger @host명 : user를 명시하지 않으면, 해당서버의 접속해 있는 모든 유저의 정보를 출력한다.
$finger user명 @host명
$finger @host명 user명 : 원격서버의 사용자 계정 정보 확인

[출처] https://gorans.tistory.com/9

 

finger명령어로 localhost를 실행해주면 다음 레벨로 넘어갈 수 있게 된다.

 

$ finger @localhost를 하게 되면 로컬로 finger 요청이 가게 되고,

시스템이 finger요청을 받았으니 backdoor를 실행해주는 것이다.

 

'<CTF> > <HackerSchool FTZ>' 카테고리의 다른 글

[06] hackerschool FTZ :: level6  (0) 2020.08.01
[05] hackerschool FTZ :: level5  (0) 2020.08.01
[03] hackerschool FTZ :: level3  (0) 2020.07.25
[02] hackerschool FTZ :: level2  (0) 2020.07.23
[01] hackerschool FTZ :: level1  (0) 2020.07.23