Security || AI

[해커스쿨 FTZ] level1 본문

워게임(wargame)/FTZ

[해커스쿨 FTZ] level1

보안&인공지능 2018. 10. 23. 11:27

 

level1에 접속하여 hint를 아래의 명령어를 사용하여 확인해 봅니다.

 

[level1@ftz level1]$ cat hint

 

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

여기서 setuid는 사용자가 파일을 열 때 파일 소유자의 권한 즉 level2가 소유하고 있는 파일의 권한을 파일을 실행할 때만 주는 것이다.

 

[level1@ftz level1]$ find / -perm +4000 -user level2 2> /dev/null

위 명령어를 통해 찾으면 되는 문제이다. 위 명령어에 대해 설명하자면 level2권한에 최소한 4000의 퍼미션을 가진 파일을 찾는 것이다. 여기서 4는 setuid이고 000은 0-유저 0-그룹 0-나머지를 의미하는 것이므로 setuid가 걸린 모든 파일을 찾아낼 수 있다. 그 뒤에 2> /dev/null에서 2는 표준에러를 의미하고, /dev/null은 리눅스에서의 휴지통을 의미한다. 그러므로 이는 검색 결과 중 표준에러가 발생하는 것을 전부 휴지통에 버린다는 의미이므로 표준 출력만을 출력하게된다. 위 명령어는 FTZ를 푸는데 매우 중요하므로 외워두면 좋다.

 

- 실행결과 -

 

/bin/ExecuteMe를 실행시키면 잠시 level2로 넘어가게 된다.

 

 

여기서 my-pass를 막았으므로 level2를 풀 수 있는 비밀번호는 바로 알아낼 수 없다. 그러므로 level2의 권한을 유지하면서 my-pass를 통해 비밀번호를 얻어내야한다. 이때 쉘을 실행시키면 level2의 권한을 유지시킬 수 있으므로 sh 명령어를 사용하면 성공한다.

 

 

반응형