CTF/FTZ

Hackerschool FTZ Level 4

ispini 2025. 11. 13. 04:18

이번에도 바로 힌트부터 찾아본다.

저 경로 안에 백도어가 심어져 있다고 한다.

 

바로 가 본다.

정말로 backdoor란 이름의 파일이 있다.

 

내용을 확인해 보면 다음과 같이 나온다.

finger란 이름의 서비스 내용을 담는 것 같고, 기능이 켜져 있다.(disable = no)

사용자가 level5로 되어 있으며, server의 위치(?)는 level4/tmp 경로의 backdoor란 파일에 있다고 한다.

 

그런데 해당 경로로 가보니 그런 파일은 없다.

일단 finger가 뭔지 모르겠어서 무턱대고 쳐보니,

 

다음과 같이 쳐본다. 현재 접속중?인 사용자의 목록을 출력하는 기능이 아닐까 추측해 본다.

이후 구글링 해보니, 사용자의 리눅스 계정 정보를 자세히 확인할 수 있는 기능인데,

요즘엔 대부분 꺼놓는다고 한다.

 

저 xinetd.d? 라는 건 또 어떤 기능들이 모여있는 것인지 궁금해 찾아보니,

슈퍼 데몬이란 이름으로도 불리는 것 같다.

슈퍼 데몬은 기존 데몬의 후속작(?)으로, 효율적인 리소스 관리를 위해 만들어졌으며, 각각의 서비스별로 접근 제어가 가능한데,

서비스를 쓰지 않을 때는 프로세스를 꺼서 자원 낭비를 막는 역할도 같이 한다고 한다.

 

finger도 같이 확인해 보는데, 서비스가 꺼져 있다. backdoor가 저 finger의 서비스를 대체한 것으로 보인다.

그렇다면 일단 backdoor란 파일을 home/level4/tmp 경로에 만든 뒤 저 backdoor의 내용을 실행해야 할 것으로 보인다.

 

일단 그대로 복사해 본다.

 

실행해 봤는데, 반응이 없다. 아까 뜬 정보가 그대로 뜬다.

 

처음에 이렇게 넣었다가, 역시 안 됐다. 생각해보니 셸 실행을 이용해 비밀번호를 얻어 왔다.

구글링을 한 결과 파일 안에서 bash를 실행하려면 #!/bin/bash로 선언해야 한다고 한다.

 

다음과 같이 작성하고 저장한 다음, 다시 finger를 쳐봤다.

 

여전히 반응이 없다. level5를 추가하니 얜 아예 로그인한 적도 없다고 뜬다. 

 

실행 권한이 없어서 일단 부여해 준다.

그러나 그 뒤로 똑같이 finger 명령어를 실행해 봐도 묵묵부답이다.

결국 여기서 좀 막혀서 다시 인터넷을 찾아보니, finger 서비스를 비롯한 xinetd는 바깥에서 네트워크로 들어오는 요청을 받아서 서비스를 실행시킨다는 추가 설명을 볼 수 있었다. user@host의 형식으로 명령어를 실행시키게 되는데, 아까 level5를 검색했을 땐 그냥 '얜 접속한 적이 없음'이라고만 떴었다.

나는 level5의 권한을 이용해서 현재 내 계정(level4)에서 비밀번호를 얻어야 하는데, localhost를 이용하면 자기 자신에 대한 정보를 찾는 것은 똑같지만 그 정보를 '외부'에서 들어와 찾는 것과 같은 효과를 준다고 한다.

그러므로 이번엔 finger level5@localhost 를 입력하여 시도해 본다.

 

뭔가 권한 거부 어쩌고가 뜨긴 했는데, 일단 level5 비밀번호가 떴다.

다만 finger 명령어에 대한 이해도가 아직 부족하다는 것이 느껴졌다. 분발해야 할 것 같다.

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

Hackerschool FTZ Level 7  (0) 2025.11.27
Hackerschool FTZ Level 3  (0) 2025.11.04
Hackerschool FTZ Level 2  (0) 2025.11.03
Hackerschool FTZ Level 1  (0) 2025.11.03
Hackerschool FTZ Trainer 10  (1) 2025.11.03