아놔 백도어 왜 심어 놓은거야~~
보니까 읽을 수 있는 권한만 주었다..
service finger { }라고 적혀있다.
참고로 xinetd는 수퍼데몬. (데몬을 관리하는 데몬) inetd랑 정확히 뭐가 다른진 모르겠지만 xinetd가 좀 더 최신? 버전이라고 할 수 있겠다. standalond 방식과 xinetd 방식.. 둘 중 하나를 사용하고 xinetd는 슈퍼 데몬을 이용해서 개별 서비스를 동작하는 방식이라 서버 리소스 절약이 된다는 점..(https://nevertrustbrutus.tistory.com/86)
데몬의 정의는.. 맨날 까먹어서 위키백과에서 긁어왔다.
사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램. syslogd가 시스템 로그를 남기는 것처럼.. 이 d가 데몬의 d를 뜻한다. 일반적으로 프로세스로 실행. 데몬은 부모 프로세스를 갖지 않아 PPID가 1이다. 프로세스 트리에서 init 바로 아래에 위치함. 시스템은 시동할 때 데몬을 시작하는 경우가 많고, 네트워크 요청이나 하드웨어 동작, 여타 프로그램에 반응하는 기능을 담당한다. devfsd같은 하드웨어 설정, 그리고 cron같은 주기적인 작업을 실행하는 등 다양한 목적으로 사용.
데몬이 되는 방법은 일반적으로 자식 프로세스를 fork하여 생성하고, 자식을 분기한 자신을 죽이면서 init이 고아가 된 자식 프로세스를 자기 밑으로 데려가도록 하는 방식이라고 한다. (fork off and die)
https://ko.wikipedia.org/wiki/%EB%8D%B0%EB%AA%AC_(%EC%BB%B4%ED%93%A8%ED%8C%85)
그래서 /etc/xinetd.d 경로 아래에 있는 것들은 xinetd 기반 서비스들의 개별 설정 파일들이다. 이 안에 backdoor라는 폴더가 있는데, 여기서 말하는 service finger의 finger는 사용자 계정 정보를 확인할 때 쓰인다. 데몬의 위치는 ../usr/sbin/inetd
해당 파일에 대한 문법은 아래와 같다..
service telnet(서비스 이름 */etc/service 파일에 등록)
{
disable = no (서비스함)
flags = REUSE
socket_type = stream (TCP = stream , UDP = dgram)
wait = no (stream 경우 반드시 no 설정)
user = level (어떤 사용자권한으로 서비스 할 것인지.. 이 파일은 level5 권한으로 서비스 한다.)
server = /home/level4/tmp/backdoor (실행할 데몬 명)
log_on_failure += USERID ( 서버에 접속 성공하지 못했을 때, /etc/xinetd.conf 파일에 정의된 기본 항목 외에 유저 아이디 값을 로그파일에 추가하라는 뜻)
} (https://gorans.tistory.com/9)
그래서 이 backdoor 파일은 /home/level4/tmp/backdoor 데몬을.. 실행하는 것 같다.
수퍼데몬에 대한 문제는 한번도 풀어본 적이 없어서 매우 당황 ㅠ
근데 보니까 /home/level4/tmp/backdoor 라는 파일이 없었다.
해당 경로에 backdoor라는 파일을 만들었다. (참고로 실행권한은 없는데.. bash backdoor라고 하면 실행 권한 없는 스크립트 파일도 실행이 됨. 그냥 파일은 chmod 권한 줘야한다.)
어쨌든.. 이 문제에서 중요한건 일단 finger라는 서비스에 대한 데몬을 실행하고 있고.. 서비스가 실행되면 /home/level4/tmp/backdoor 파일을 level5 사용자 권한으로 실행한다는 소리..
아마 C언어 파일을 하나 만들어야할거 같은데ㅠ 최대한 간단하게 작성했다..
여기까진했고..
xinetd 서비스가 네트워크에 들어오는 요청을 수행하기 위해선 단순히 finger level5~이런식으로 실행해선 안되고 보통 이럴땐 @localhost를 이용. (나 자신을 말함)
finger @localhost
오우!
수퍼데몬에 대해서 더 공부를 해봐야겠다.
'CTF, 워게임 문제 풀이 > Hackerschool FTZ' 카테고리의 다른 글
Hackerschool FTZ Level 6 문제풀이 (0) | 2023.02.16 |
---|---|
Hackerschool FTZ: Level 5 문제 풀이 (0) | 2023.02.10 |
Hackerschool FTZ: Level 3 문제 풀이 (0) | 2023.01.15 |
Hackerschool FTZ: Level 2 문제 풀이 (0) | 2023.01.07 |
Hackerschool FTZ: Level 1 문제 풀이 (0) | 2022.12.31 |
댓글