본문 바로가기
워게임/FTZ

FTZ - level4

by meanjung 2021. 7. 4.

hint : 누군가 /etc/xinetd.d/에 백도어를 심어놓았다.!


백도어

'뒷문'

정상적인 인증 절차를 거치지 않고, 컴퓨터와 암호 시스템 등에 접근할 수 있도록 하는 장치

즉, 설계자나 관리자에 의해 남겨진 시스템의 보안 허점


ls -alF /etc/xinetd.d 하니까 여러 파일들이 나왔다.

backdoor 파일이 있다.

cat backdoor 했더니 service finger.. 어쩌구 하면서 나온다.

 

어떻게 접근해야 할 지 몰라서 풀이를 봤는데, 풀이도 이해가 잘 안가서 하나하나 찾아봤다.

 

xinetd

하나의 독립 데몬이지만, 여러가지 다른 서비스들을 제어하고 관리한다.

시스템 부하를 줄이기 위해 사용한다.

* daemon : 메모리에 상주하며 특정 요청이 오면 즉시 대응할 수 있도록 대기중인 (background) 프로세스

 

/etc/xinetd.d/파일들 : xinetd 기반 서비스들의 개별 설정 파일들(서비스 개별 설정 파일)

service 서비스이름

{

     .

     .

}

 

데몬

데몬에는 2가지 종류가 있다. 하나는 슈퍼데몬 방식(xinetd 방식), 하나는 standalone 방식.

1. standalone : 말 그대로 단독으로 메모리에 상주하고 있는 방식. 어쩌다 한 번 가끔 사용하는데 항상 메모리에 상주하고 있다면 비효율적이다.

2. 슈퍼데몬 : 슈퍼데몬이 메모리에 상주해 있으면서 슈퍼데몬에서 관리하는 데몬이 호출될 경우 그 그 데몬을 잠깐 올렸다가 처리가 끝나면 다시 종료시킨다. → standalone보다는 느리지만 간헐적으로 가용되는 많은 데몬들을 효율적으로 운용할 수 있다.

 

/etc/xinetd.d

디렉터리 하위에 서비스 명으로 된 설정 파일을 만들어 서비스별로 설정할 수 있다. 

형식은 위와 같이 정해져있다. 

service = 서비스 이름. /etc/services에 등록되어있는 목록들만 가능

disable = 해당 서비스의 실행 여부를 결정한다. (yes: 실행안함/ no: 실행)

user = 어떤 사용자로 서비스를 실행할지 설정한다.

server = 서비스 실행 파일 경로를 설정한다. 반드시 절대 경로로 설정한다.

 

그렇다면... finger를 실행했을때 level5의 권한으로 /home/level4/tmp/backdoor을 실행한다는 의미

 

/tmp에 ls 때리니까 암것도 없다. 

vi backdoor.c해서 ~~~ system("my-pass")~~ 입력 후 gcc 컴파일

이제 finger를 실행하면 level5가 위의 backdoor을 실행하며 my-pass를 출력할 것이다.

 

"finger @localhost"

 

finger

- finger user명 : user를 적고, host를 명시하지 않으면 finger는 로컬에 접속하게 된다.

- finger @host명 : host명만 적고 user를 명시하지 않으면, 해당 서버에 접속해 있는 모든 유저의 정보를 출력한다.

 

 

그냥 finger나 finger user명이나 이렇게 실행하면 안되나?

finger나 finger user만 입력하면 local에 대해 접속한 사람들을 출력하긴 하지만, 네트워크를 통해서 하진 않는다.

 

근데 왜 finger @localhost를 실행해야 원하는대로 my-pass가 출력되는걸까?

finger @localhost를 해야 네트워크를 통해서(포트 79) 원하는대로 동작하게 되는 것이다.

cat /etc/services | grep finger로 확인해보면 finger 79/tcp 가 나온다.

79 포트로 원격 접속하나 경우에만 finger 서비스가 돌아서 @localhost 와 같이 실행해야 한다.

 

* xinetd

네트워크에 들어오는 요청을 듣고, 거기에 맞는 적절한 서비스를 실행시킨다.

요청들은 식별자로서 포트 번호를 사용하여 만들어지며,,,

출처) https://ko.wikipedia.org/wiki/Xinetd

 

finger @host명은 해당 host에 접속한 유저를 보여주는거 아냐? 그럼 내 로컬 컴 ip 입력했을때 내 컴에 접속한 사람들 보여줘야지 왜 안보여줘...

이건 나도 잘..

'워게임 > FTZ' 카테고리의 다른 글

FTZ - level6  (0) 2021.07.06
FTZ - level5  (0) 2021.07.04
FTZ - level3  (0) 2021.07.04
FTZ - level2  (0) 2021.07.03
FTZ - level1  (2) 2021.07.02

댓글