ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • lvl 01
    Wargame/HackerSchool FTZ 2018. 12. 11. 01:05

    → level 1 계정을 로그인 하면, level 1 계정의 디렉토리에 들어와져 파일 구조를 살펴볼 수 있다. 


    → hint 파일과, public_html, tmp 디렉토리로 구성되어 있다. hint 파일의 내용은 다음과 같다.



    → "level2 권한에 setuid가 걸린 파일을 찾는다" 라는 힌트를 볼 수 있다. 여기서 setuid의 개념을 정리.

    SetUID, SetGID 개념


    SetUID 파일은 누가 실행하든지 관계없이 해당 파일이 실행될 때 파일 소유자의 권한을 갖는다는 특징이 있다.

    해당 파일의 소유자가 root이면 그 파일을 실행하는 사람이 누가 되었든지 파일이 실행되는 프로세스는 실행되는 동안 파일 소유자인 root 권한으로 실행된다.

    예를 들어, test라는 파일이 root 소유이고 SetUID 비트가 설정되어 있으면 [그림 5-16]과 같이 실행되고, SetUID비트가 설정되어 있지 않으면 [그림 5-17]과 같이 실행된다.



    SetUID가 사용자가 사용할 때, 소유자의 권한으로 파일을 실행한다면, SetGID는 사용자가 사용할 때, 그룹의 권한으로 파일을 실행한다.

    그리고, SetUID와 SetGID가 설정되어있는 지는 기존의 허가권 앞에 4(SetUID)나 2(SetGID)를 붙여서 파일을 표시한다.

    다음은 SetUID와 SetGID를 지정할 때마다, 권한의 흐름의 변화를 테스트하였다.



    기존의 실행권한(x)가 없을경우 S(대문자), 실행권한(x)가 있다면 s(소문자)로 표시된다.

    예를 들어, 명렁어 passwd는 /usr/bin/passwd에 속해있는 실행파일이고 이 파일은 SetUID가 적용되어있는 대표적인 파일이다.


    passwd는 소유자가 root이며, 각 계정이 해당 파일을 실행할 때 각자의 계정의 비밀번호를 변경하기 위해 root 권한을 획득한다고 생각할 수 있다.

    → 다시 문제롣 돌아와 "level2 권한에 setuid가 걸린 파일을 찾는다" 를 근거로 파일을 찾기 위해, 다음과 같은 명령어를 사용한다.


    → 찾은 파일을 실행해본다. 그리고, 소유자가 level2이며 SetUID가 설정되어있으므로, 해당 파일을 실행하면 level2의 권한을 획득할 수 있다.  이때, 지속적인 level2 권한을 위해 bash를 실행한다.


    → 이제, level2의 비밀번호를 알아내기 위해.... my-pass를 입력한다. (사실 비밀번호가 담긴 파일명을 몰랐는데, 위의 문제에서 my-pass라는 걸 알려준다)

    'Wargame > HackerSchool FTZ' 카테고리의 다른 글

    lvl 06  (0) 2019.01.10
    lvl 05  (0) 2019.01.10
    lvl 04  (0) 2019.01.09
    lvl 03  (0) 2019.01.05
    lvl 02  (0) 2018.12.11

    댓글

Designed by Tistory.