*FTZ를 공부하면서 배운 것들을 정리했습니다. 틀린 정보가 있을 수 있습니다.
계정/비번: level4/suck my brain
로그인하고 힌트 먼저 봅시다.
/etc/xinetd.d/ 에 백도어를 심어놓았다네요.
확인해봅시다.
이 문제를 풀기 위해선 먼저 데몬에 대해 알고 있어야 합니다. 먼저 이 경로에 있는 다른 파일들을 확인해봐도 다 비슷한 형태를 하고있는 것을 알 수 있습니다.
먼저 데몬에 대해 한번 알아보자면, 데몬은 특정 서비스를 실행시키기 위해 메모리에 상주해있는 백그라운드 프로세스를 말합니다. 만약 요청이 들어오면 그 요청을 받고 즉시 처리할 수 있도록 대기중인 프로세스죠.
데몬은 실행 모드가 두 가지가 있는데, standalone방식과 xinetd 방식이 있습니다.
standalone방식은 응답속도가 빠른 대신, 메모리 자원을 항시 점유하고 있어 부하가 촉진될 수 있습니다.
xinetd 방식은 standalone보다는 응답속도가 느립니다. 대신 슈퍼데몬 하나가 여러가지 데몬들을 제어합니다. 필요할 때만 데몬들이 메모리에 적재되기 때문에 메모리 부하를 줄일 수 있겠죠.
xinetd는 eXtended InterNET services Daemon의 약자로서 리눅스에서 실행되는 데몬의 일종입니다.
인터넷 슈퍼데몬이라고 부르기도 합니다.
xinetd는 네트워크에 들어오는 요청을 듣고 거기에 맞는 적절한 서비스를 실행시킵니다.
/etc/xinet.conf에는 모든 데몬에 적용되는 default값이 설정되어 있습니다.
/etc/xinetd.d 하위 경로에는 각 데몬에 대한 설정 파일들이 위치합니다.
이제 파일 내용을 확인해봅시다.
간단하게 설명해보자면,
disable : 서비스 할것인지 아닌지를 의미합니다. yes가 서비스를 하지 않는 것, no는 하는것을 나타냅니다.
service : 서비스 이름을 의미합니다. /etc/services에 등록된 서비스들이어야 합니다.
user : 어떤 사용자 권한으로 서비스할 것인가를 설정합니다.
server : 서비스 요청이 들어왔을 때, 해당 데몬의 경로를 지정합니다.
근데 서버가 조금 이상하지 않나요?
요청이 들어왔을 때, 실행시키는 데몬의 위치가 /home/level4/tmp/backdoor이네요.
지금 level4로 로그인 했으니, 그 backdoor를 마음대로 수정할 수 있겠네요.
한번 서버의 경로로 가봅시다.
백도어가 없네요. 그렇다면 만들어봅시다.
vim을 열고 c프로그램을 작성하겠습니다.
i누르면 insert모드로 바꿀 수 있습니다.
이렇게 적어주고 esc를 누르고 :wq를 입력해서 저장하고 나가줍니다.
이제 backdoor라는 이름으로 컴파일 해보겠습니다.
백도어 파일을 생성했습니다.
이제 아까 finger를 이용해서 이 백도어를 실행시키면 되겠네요.
왜 안될까요?
finger 파일을 찾아보니 두개가 나오네요.
환경변수 PATH에 따르면, /usr/bin에서도 찾으니, finger 명령을 실행시켰을 때, /usr/bin에 있는 finger가 실행되었군요.
즉, 아까 finger를 실행시켰을 때는 실질적으로 /usr/bin/finger를 실행시킨겁니다.
당연한 말이죠. 외부에서 요청이 오지도 않았는 데 xinetd가 백도어를 실행시킨다면 그게 더 이상하죠.
xinetd.d에 있는 finger파일을 확인해봅시다.
xinetd.d의 finger을 보면 disable이 yes로 되어있어서 외부에서 요청이 왔을 때, 무시하는게 기본값이였습니다. 하지만 disable이 no인 백도어가 있었죠? 이 백도어를 이용하기 위해선 요청이 들어와야합니다. 그래야 disable no인 백도어가 실행되고 /home/level4/tmp/backdoor가 실행될테니까요.
그렇다면 이제 finger로 요청을 어떻게 보낼 수 있을까요? 구글링을 해보니 user@host방식으로 외부의 사용자들을 조회할 수 있고, @localhost를 이용해 자기 자신한테 요청을 보낼 수 있다고 합니다. 참고로 호스트 옵션이 없을 땐 로컬로 접속한다고 하네요.
finger @localhost 를 통해 자신한테 요청을 보내고 xinetd가 백도어를 실행시킬 수 있도록 하면 비밀번호를 얻을 수 있겠죠.
'WARGAME > FTZ' 카테고리의 다른 글
FTZ level6 풀이 (0) | 2022.02.26 |
---|---|
FTZ level5 풀이 (0) | 2022.02.24 |
FTZ level3 풀이 (0) | 2022.02.15 |
FTZ level2 풀이 (0) | 2022.02.12 |
FTZ level1 풀이 (0) | 2022.02.12 |