반응형
해커스쿨 ftz 문제풀이 / level4
level4의 문제로 level5의 패스워드를 찾는 문제입니다.
level4의 홈디렉토리에 있는 hint 파일을 보면 아래와 같이 /etc/xinetd.d/에 백도어가 심어져 있다고 합니다.
/etc/xinetd.d/ 디렉토리에 backdoor라는 파일이 있고, 이 파일의 내용을 보면 아래와 같습니다.
해당 설정에 대한 내용은 아래와 같습니다.
중요한 부분은 user와 server입니다.
finger 서비스에 의해 level5의 권한으로 /home/level4/tmp/backdoor 파일이 실행된다는 의미입니다.
# service finger => 서비스의 이름입니다. # disable = no => 데몬을 비활성화하지 않는 것으로 데몬을 활성화하겠다는 것입니다. # flags = REUSE => 서비스 포트가 사용 중인 경우 포트의 재사용을 허가한다는 의미입니다. # socket_type = stream => TCP/IP 프로토콜입니다. # wait = no => 이미 서비스가 연결된 상태에서 다른 요청이 들어오면 기다리지 않고, 바로 응답합니다. # user = level5 => level5의 권한으로 실행됩니다. # server = /home/level4/tmp/backdoor => xinetd에 의해 실행될 데몬 파일입니다. # log_on_failure += USERID => 정상적인 기동에 실패한 경우 USERID를 로그에 기록합니다. |
/home/level4/tmp에 finger 서비스에 의해 실행되는 backdoor 프로그램을 만듭니다.
backdoor 프로그램은 level5의 권한으로 실행되기 때문에, level5의 패스워드를 확인하기 위해 system call로 my-pass를 실행하도록 하면, level5의 패스워드를 출력할 것입니다.
finger 서비스를 실행하면 아래와 같이 level5의 패스워드가 출력되는 것을 볼 수 있습니다.
반응형
'WarGame > 해커스쿨 ftz' 카테고리의 다른 글
해커스쿨 ftz 문제풀이 / level6 (0) | 2020.11.18 |
---|---|
해커스쿨 ftz 문제풀이 / level5 (0) | 2020.11.17 |
해커스쿨 ftz 문제풀이 / level3 (0) | 2020.11.05 |
해커스쿨 ftz 문제풀이 / level2 (0) | 2020.11.05 |
해커스쿨 ftz 문제풀이 / level1 (0) | 2020.11.05 |