ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HackerSchool Level1 문제풀이
    System/FTZ 2017. 10. 5. 00:05

    Level 1 







    우선, Putty로 ftz.hackerschool.org에 접속 후

    level1/level1으로 로그인 한다.


    현재 디렉토리에 어떤 것들이 있나 ls -al명령어를 쳐보니

    hint문서가 있다.





    힌트에는

    'level2 권한에 setuid가 걸린 파일을 찾는다.'


    여기서 setuid란?

    - 우선, set은 '변경하다' 라는 뜻을 가지고 있다.

    uid는 'User id'라는 의미이다.

    합쳐서 생각해보면 'User id를 변경하는 것' 이라고 생각해볼 수 있다.


    그럼 왜 이런 기능이 있는 것일까?


    우리가 패스워드를 변경할 때, /etc/shadow파일을 수정해야 하는데

    shadow파일은 root권한을 있어야만 접근 가능하다.

    이때, 일반 사용자도 편하게 패스워드를 변경할 수 있도록

    passwd명령어를 사용할 때만 잠깐 User id를 root로 변경해주는 것이다.









    그럼 level2 setuid권한이 걸린 파일을 찾아보자.

    find / -user level2 -perm -4000

    ​/ : root 디렉터리 부터

    -user level2 : uid가 level2인

    -perm -4000 : 4:setuid가 걸리고 000(rwx)모두 설정된 파일을

    찾아라!








    결과를 보면, 다 권한거부가 걸려있는데 

    bin디렉터리에 있는 ExcuteMe만 접근 가능하다.

    /bin으로 이동하자








    상세정보를 보면, 사용자는 level2이고 rws로 setuid가 걸려있는걸 확인할 수 있다.

    ./ExcuteMe로 파일을 실행하면 









    level2권한으로 원하는 명령어를 입력하라고 한다.

    우리가 원하는건 level2로 가는 passwd인데

    my-pass와 chmod는 입력할 수 없게 막아두었다.


    그렇다면 어떤 명령어로 level2의 패스워드를 알아낼 수 있을까?


    일단, /bin/bash가 무엇인지부터 알고 가야할 필요가 있다.

    나도 아직 쉘 스크립트를 공부하지 않아서, 정확한 의미는 모른다.

    /bin/bash란 root단의 명령어를 해석해주는 파일 정도로 알고있으면 될 것 같다.


    따라서, /bin/bash를 실행시켜주면 

    level2의 권한을 지속적으로 유지할 수 있게 된다.

    그 후, my-pass를 입력하게 되면

    level2의 패스워드인 hacker or cracker 가 출력된다!




     



    Level 1은 쉘에 대한 지식을 얻기위한 문제인 것 같다. 

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

    [FTZ Level15 풀이]  (0) 2018.02.16
    [FTZ Level14 풀이]  (0) 2018.02.16
    [FTZ Level13 풀이]  (0) 2018.02.16
    [FTZ Level12 풀이]  (0) 2018.02.15
    [FTZ Level11 풀이 ]  (0) 2018.02.15

    댓글

Designed by Tistory.