ID : level4

password : suck my brain

 

1) id 명령어를 통해 정보를 확인한다

" user 아이디는 level4 이고, 그룹명과 그룹또한 level4이다. "

 

2) cat hint 를 통하여 해당 문제 알아보기

" 누군가 /etc/xinetd.d/ 에 백도어를 심어놓았다.! "

문제를 보아하니 해당 파일이 setuid가 걸려있는것 같다.

확인해 보자

 

3) find / -perm -4000 -user level5 2>/dev/null

를 입력해도 아무 파일이 나오지않는다. 

문제 파악을 잘못한것 같아 일단 문제에 있는 디렉토리로 이동해 보기로 했다.

 

4) 해당 디렉토리로 이동한후, ls 명령어를 통해 파일 및 디렉토리 목록을 출력해 보니

예고와 같이 backdoor 파일이 있었다.

확인해보기로 한다.

 

5) 보아하니

finger 명령어 서비스가 실행되면,

level5권한으로 /home/level4/tmp/backdoor 가 실행되는것 같다.

 

finger 명령어에 대해 알아보도록 하자.

* finger 명령어 : 로컬 사용자 또는 원격 사용자의 계정 정보를 확인하는 명령어

 

6) 이상하게 backdoor 파일이 말하는 경로에

backdoor 파일은 없다.

 

그러므로 현 상태에서 finger 를 사용해도

파일이 없기때문에 아무런 반응도 없을것이다.

 

 

7) 보는바와 같이 정상적으로 finger 명령어가 수행되며, 아무 반응도 없는것을 확인할수 있다.

 

그렇다면

/home/level4/tmp 디렉토리에

backdoor 파일을 생성하여 이곳에 my-pass 가 실행되게 하면

level5 권한으로 my-pass 가 실행될것이다.

 

확인해 보자

 

8) 프로그램 파일을 만들기 위해 간단한 c 코드를 작성하였다.

VI 편집기를 이용할수도 있지만 , 트레이너 에서 배웠던 cat 과 리다이렉션( > ) 을 통해 코드를 작성해 본다.

 

#include <stdio.h>

int main()

{

    system("my-pass");

    return 0;

}

 

다음과 같이 코드를 작성하고 Ctrl + d 키를 눌러 저장을 한다.

 

9) 정상적으로 저장되었는지 확인하기 위하여

cat backdoor.c 를 입력해 내용을 확인한다.

 

이제 해당 코드를 프로그램 파일로 만들기 위하여 해당 파일을 컴파일 해보도록 하자

 

 

10 ) 컴파일을 위해

gcc [소스코드] -o [프로그램명] 순으로 입력한다.

 

11) ls 명령어를 통해서 해당 프로그램을 확인한다.

 

이제 finger 명령어를 수행하면 실행이 될것이다

 

12) 예상과 달리 아무런 반응이 없다.

 

13) finger 명령어 수행에 문제가 있나 하여 해당 경로를 검색한후, 

finger 의 내용을 확인해 보기로 했다.

 

14) /etc/xinetd.d/backdoor 파일과 findger 파일과의 차이를 보면

disable 값이 

backdoor 는 no 로 되어있고,

finger 는 yes로 되어있다.

 

disable 값은

yes 일 경우, 외부에서 실행되면 실행이 안되고,

no 일 경우, 외부에서 실행해야 실행이 된다.

 

따라서 finger 를 외부에서 사용하도록 하기 위해서는 외부서버의 유저 정보를 가져와야 하는데 이를 수행하는 명령어가

finger [user]@[host] 이다.

 

이를 통해 

finger @localhost 를 실행하면 외부에서 실행되게 되어

finger 는 실행되지 않고

backdoor 가 실행될 것이다.

 

확인해보자

 

15) 위와같이 finger @localhost 를 실행하니

level5에 대한 비밀번호가 출력되었다.

 

* 이해 안가는 부분.

- 한번 실행시 이상한 문자가 출력되었으며,

finger @localhost 

를 반복하여 입력하니

어느순간 비밀번호가 출력이 되었다.

 

예상하는 바로는 외부 유저정보를 받아오는부분의 문제인것 같은데

확실하진 않다.

 

이유를 도저히 모르겠지만

 

아무쪼록 

level5의 비밀번호는 "what is your name?

이다.

+ Recent posts