티스토리 뷰

Pwnable/FTZ

FTZ Level1

dtqdtq01 2018. 9. 8. 21:24

FTZ Level 1







Level1에 접속하여 hint를 보게 되면 Level2 권한에 Setuid가 걸린 파일을 찾으라고 합니다.


그럼 Setuid가 무엇인가??


Setuid란  소유자가 아니더라도  실행 시 일시적으로 파일 소유자 권한으로 실행하는 것을 말합니다.


파일을 실행할 때 사용자의 UID를 사용하는 것이 아니라 파일의 inode 정보로부터 파일 소유자의 UID를 받아서 실행합니다.


따라서 파일을 실행 하였을때 Level2의 소유자 권한을 갖는 파일을 찾으라는 것입니다.


find 명령어를 통하여 Setuid가 걸린 파일을 찾아 보겠습니다.


find / -perm 600 -user level2


-perm +6000 ---> setuid or setgid가 걸린 파일 찾기

-user level2 ---> 소유자가 Level2인 파일 찾기  







하지만 수 많은 Permission denide가 뜨게 됩니다.


그럼 보기 좋게 Permission denide가 안 뜨게 find명령어에 옵션을 더 주겠습니다.


검색 결과 중에서 에러가 발생한 결과를 제외하는 옵션은 2> /dev/null 입니다.


여기서 숫자 2는 표준에러(STDERR)를 뜻하고, /dev/null은 휴지통을 뜻합니다.


따라서 에러를 휴지통에 넣으라는??  그런 옵션입니다.







깔끔하게 하나의 파일이 발견됩니다.







1) 허가권 : SUID가 설정되어 있으므로 해당 파일을 실행하면 파일의 소유자 권한으로 실행됩니다.


2) 소유권 : 그룹 level1이 해당 파일을 소유하므로 Level1인 사용자도 저 파일을 실행시킬 수 있습니다.


정리하자면, 저 파일을 실행시킬 수 있으며 실행시킬경우 Level2의 권한으로 실행할 수 있다는 점입니다.


그럼 한번 실행 시켜 보도록 하겠습니다.







my-pass와 chmod는 제외하라고 되어있어, /bin/sh 명령어로 Level2의 권한을 획득합니다.


이제 지속적인 Level2 권한으로 원하는 행위를 할 수 있습니다.


그리고 my-pass명령어를 이용하여 Level2의 암호를 알아냅니다.







hacker or cracker

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

FTZ Level6  (0) 2018.10.26
FTZ Level5  (0) 2018.10.26
FTZ Level4  (0) 2018.10.26
FTZ Level 3  (0) 2018.10.26
FTZ Level2  (0) 2018.10.16
댓글
최근에 올라온 글
Total
Today
Yesterday