이제 문제로 들어가 봅시다 !
level1의 아이디와 비밀번호는 당연히 뭔지 아시죠 ^^?
ID : level1
PW : level1
먼저 Hint를 한번 열어 봅시다!

"level 2 권한에 setuid가 걸린 파일을 찾는다."
그럼 setuid가 뭘까?
SetUID는 소유자의 권한을 통하여 파일을 실행시키는 것으로써
유닉스 또는 리눅스에 소유자 권한이 s로 설정된 것이다.
예를 들어 소유자가 root이면 그 파일을 실행하는 사람이 누가 되었든지
파일이 실행되는 프로세스는 실행되는 동안 파일 소유자인 root 권한으로 실행된다.

출처 : [네이버 지식백과] 프로세스 권한과 SetUID
계속해서 SetUID가 걸린 파일을 찾는 것이니 find 명령어를 통해서 찾아보도록하자!
find [경로] [Option]
"어떤 옵션을 주고 찾을까?" 라는 생각을 하게 된다.
Hint의 단서를 통해 알 수 있는 것은 파일의 소유자 이름, SetUID 이므로
소유자 이름 및 권한으로 검색하면 효율적일 것 같다!

명령어에 보면 " ~ 2> /dev/null" 는 왜 넣었을까?
"2" 는 표준에러를 뜻한다.(0 : 표준입력, 1: 표준출력)
">"는 파일로 보낸다는 것을 의미한다.
"/dev/null"는 null 장치이다(뭔가 설명하기가 애매하다..).
즉, 에러가 뜨는 것들을 /dev/null로 보내어 출력을 시키지 않는 것을 의미하며
여기서 사용하는 이유는 " 2> /dev/null"을 빼고 입력 시 알 수 있는데
권한 불가로 상당히 많은 에러가 출력이 되기 때문에 보기 편하게 하기 위하여 사용한 것이다.
그럼 문제 파일을 찾았으니 실행을 시켜보도록 하자!

확인하여 보니 소유자가 level2 이고 "rws-r-x---" 소유자 권한이 걸려 있음을 확인했다.
그럼 실행을 시켜 보도록 하자!

my-pass와 chmod를 제외한 한가지 명령어를 실행시켜준다고 한다.
그리고 아이디를 보니 level2로 되어 있음을 볼 수 있고
SetUID 권한으로 인해 level2의 권한이 설정되어 있으니 /bin/bash 명령을 통해
level2 권한을 탈취할 수 있을 것이다!

이것으로 level2로 권한 상승이 되었다!
비밀번호는 my-pass를 통해 확인하면 됩니다^^! 뿅!
'CTF > FTZ' 카테고리의 다른 글
FTZ - Level 5 (0) | 2019.07.14 |
---|---|
FTZ - Level 4 (0) | 2019.07.13 |
FTZ - Level 3 (0) | 2019.07.12 |
FTZ - Level 2 (0) | 2019.07.11 |
FTZ 서버 구축하기 (0) | 2019.07.11 |