메뉴 닫기

[FTZ] hackerschool level4

level4 풀이

로그인하자마자 떡하니 보이는 hint파일..
/etc/xinetd.d에 백도어가 있다고한다.

/etc/xinetd.d로 이동해보니 level4 그룹의 소유인 backdoor 파일이 존재한다.

finger라는 서비스는 사용자 정보를 조회하는 명령어이다.
그런데 파일내용을 보면 user는 level5로 되어있고 server는 /home/level4/tmp/backdoor으로 되어있다.

그런데 /etc/xinetd.d 경로에 보면 원래 finger 파일이있다 이것과 비교해보면 다른점을 찾을 수 있다. user는 nobody로 되어있고 server는 /usr/sbin/in.fingerd로 되어있다. 즉, 원래 설정대로라면 finger 명령어를 원격호스트에 요청할때는 finger 데몬으로 요청하고 실행은 nobody 권한으로 실행하게 되어있는데 backdoor 파일은 우리가 얻고자하는 level5 권한으로 실행된다. 그렇다면 level5로 finger 명령어를 실행하는동안에 패스워드를 확인할 수 있는 my-pass 명령어를 실행한다면..? level5의 패스워드를 확인할 수 있을것이다.

쉘스크립트를 하나 만들어준다.
vi /home/level4/tmp/backdoor 열어준 후 아래처럼 입력한다

#!/bin/bash
whoami
my-pass

chmod 4777 /home/level4/tmp/backdoor 명령어를 입력하여 backdoor 파일의 실행권한 및 suid 설정을 해준다.

finger 명령어 사용법은 아래와 같다.

finger [유저명] : 현재시스템에 로그인한 사용자를 보여준다. 유저명을 지정하지않으면 모든유저를 보여준다.

finger @[호스트명] [유저명] : 원격호스트에 로그인한 사용자를 보여준다. 유저명을 지정하지 않으면 원격지에 연결된 모든유저를 보여준다.

이후 finger @localhost 명령어를 입력하면 최종적으로 /home/level4/tmp/backdoor 파일이 실행되면서 level5의 my-pass 결과를 보여준다.

5 1 vote
Article Rating
구독
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x