ftz level4 문제풀이를 시작한다.
일단 cat hint 를 통해 힌트를 먼저 보았다.
/etc/xinetd.d/ 에 backdoor 를 심어놓았다고 한다. backdoor란? 그대로 해석하면 뒷문이라는 것인데 말그대로 침입할 수 있는 경로 이기도 하다.
ls - al /etc/xinetd.d/ 를 입력하여 알아보았다.
3번째 줄에 backdoor 가 있는 것이다.
그래서 일단 cd /etc/xinetd.d/ 로 들어가서 ls -l 을 다시 입력해보았다.
backdoor 가 있다.
위에 그림은 backdoor.c 프로그램을 만든 후 보여준 사진이다.
위에 #include <studio.h>를 잘못 입력하였다.
원래 문제를 풀 때에는 cd /etc/xinetd.d/ 에 들어간 후 vi backdoor.c 로 vi 에디트으로 들어가서
#include <studio.h>
int main()
{
system("my-pass");
return 0;
}
를 입력하고 ESC를 누른 후 wq 를 입력하면 저장과 끝내기가 된다.
return 은 현재 있는 함수에서 빠져나가며 그 함수를 호출했던 곳으로 되돌아 가라는 뜻입니다.
되돌아 가면서 그 함수를 호출했던 곳 즉 calling routine 에 어떤 값을 반환하는 것입니다.
return 0; 는 0 이라는 값을 반환하라는 의미이고
return 1; 은 1 이라는 값을 반환하라는 뜻입니다.
return 은 함수의 어떤 곳에서도 위치할 수 있는데, return 이 실행되는 즉시 그 함수는 무조건 실행이 종료됩니다.
즉, 현재의 함수에서 빠져 나가라는 의미입니다.
위에 file backdoor 를 살펴보면 ASCII text 이고, cat backdoor 를 보면 user=level5 이다.
server=/home/level4/tmp/backdoor 그래서 tmp안에 들어있다고 하는 것 같다.
그래서 cd ~/tmp를 입력하여 tmp로 들어가고 vi backdoor.c 를 수정하면 된다.
패스워드가 뜬다.
'* Wargame > F.T.Z' 카테고리의 다른 글
F.T.Z - level6 (2) | 2012.07.05 |
---|---|
F.T.Z - level5 (0) | 2012.07.05 |
F.T.Z - level3 (0) | 2012.02.28 |
F.T.Z - level2 (0) | 2012.02.09 |