Cha4SEr Security Study

[FTZ-Level1] 풀이 본문

System/FTZ

[FTZ-Level1] 풀이

Cha4SEr 2019. 12. 22. 17:24

FTZ 로컬 서버를 구축한 후 

ID : level1

PW : level1

을 입력하여 FTZ를 풀어본다.

 

 

[그림 1]

우선 "ls -al" 명령어를 입력하여 현재 디렉토리에 있는 파일들을 확인한다. 

파일 목록 중 "hint" 라는 파일이 있기에 파일 읽기 명령인 "cat"을 이용해 hint 파일을 열어본다.

 

[그림 2]

 

"cat hint" 를 하면 "Level2 권한에 setuid가 걸린 파일을 찾는다" 라는 힌트가 주어진다.

 

해당 파일을 찾기위해 find 명령을 해야하는데 조건에 맞는 옵션을 추가하면 쉽게 찾을 수 있다.

 

=== 필요한 명령과 옵션 ===

 

◎  find : 파일을 찾는 명령어

◎  -perm : 권한을 찾는다.

◎  -4000 :  4-> SetUID,   000 -> rwx 모두 

 

=> find / -perm -4000 

 

여기서 문제에 Level2의 권한이라 했으니 -user level2 라는 옵션을 추가해준다.

 

=> find / -user level2 -perm -4000

 

 

[그림 3]

결과가 나오긴 하지만 Permission denied로 걸러지는게 많아서 찾기 힘들었다. 이때 denied를 제외한 결과를 볼때 필요한 옵션은 다음과 같다.

 

◎ 2> /dev/null

 - 2는 표준에러를, /dev/null은 휴지통을 의미하며 해석하면 표준에러에 걸린 결과는 휴지통에 넣고 이를 제외한 결과만 출력한다.

 

따라서 위의 옵션을 추가하여 검색을 해본다.

 

 

[그림 4]

/bin 폴더에 ExcuteMe 라는 파일을 발견했다!

 

해당 파일에 대해 분석해 보기 위해 cd 명령어로 /bin 폴더로 이동 후 ls -al로 보았다.

 

[그림 5]

이 파일은 level2의 user로 SetUID가 걸려있고 level1의 그룹도 실행할 수 있는 파일이다. 따라서 해당 프로그램을 ./ 명령어를 통해 실행시켜 보겠다.

 

[그림 6]

level2의 권한으로 한가지 명령어를 실행시켜 준다고 하였지만 FTZ의 핵심인 my-pass 명령어가 막혀있다..

하지만 bash 로 level2의 권한을 지속적으로 얻으면 후에 my-pass 명령을 사용할 수 있을것이다!

 

 

 

[그림 7]

 

다음과 같이 bash 명령어를 입력하면 level2의 권한을 얻을 수 있고 이때 my-pass를 입력한다.

 

[그림 8]

level2의 Password : "hacker or cracker"

 

 

★ 요약  

 

-  level2의 SetUID가 걸린 파일검색

find / -user level2 -perm -4000 2> /dev/null

 

 

이로써 FTZ Level1을 다 풀었따!

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

[FTZ-Level6] 풀이  (0) 2019.12.28
[FTZ-Level5] 풀이  (1) 2019.12.26
[FTZ-Level4] 풀이  (0) 2019.12.23
[FTZ-Level3] 풀이  (0) 2019.12.23
[FTZ-Level2] 풀이  (1) 2019.12.22
Comments