먼저 level1 의 디렉토리에 무엇이 있는지 확인하고,
hint라는 파일안의 내용을 확인하면 아래와 같은 문구가 나온다.
level2 권한에 setuid가 걸린 파일을 찾는다.
라는 힌트 문구가 보인다.
실행 퍼미션에는 setuid와 setgid라는 특별한 퍼미션이 있다.
setuid는 심볼릭 모드로 's'로 표현되고 8진수 모드로는 4000 으로 표현된다.
setuid 퍼미션이 설정되어 있는 실행 파일은 실행되는 동안에는 그 파일의 소유자 권한을 가지게 된다.
이러한 이유때문에 root 소유의 setuid 퍼미션이 포함되어 있는 파일은 아주 신중히 관리를 해야 된다.
setgid 퍼미션이 포함되어 있는 실행 파일은 실행되는 동안은 그 파일의 소유 그룹의 권한을 가지는 것 빼고는 setuid와 같다.
setgid의 8진수 모드는 2000 이다.
setuid 퍼미션을 포함하고 있는 실행 파일을 ls -al 명령으로 확인해 보면
다음과 같이 소유자 실행퍼미션에 's'라고 되어 있는 것을 확인할 수 있다.
그럼 level2 권한에 setuid가 걸린 파일을 찾아보자.
파일을 찾기 위해 find 명령어를 사용한다.
find / -perm +4000 -user level2
이 명령어의 뜻은 / 디렉터리에서 permission에 setuid가 설정되어져 있고, 소유자가 level2인 파일을
찾는 것이다.
검색 결과 허가가 거부 되지 않은 파일을 하나 찾을 수 있었다.
/bin/ExcuteMe 를 실행해 보자.
my-pass를 실행할 수 없으므로, 비밀번호를 알수 없다.
그럼 level2권한을 지속적으로 유지하면서 비밀번호를 알 수 있는 명령어가 뭐가 있을까 굉장히
고민하게 만든다.
sh, bash 를 이용하여 명령어를 수행하면 level2권한을 그대로 유지하면서 사용할 수 있다.
쉘을 실행한 후 my-pass 명령어를 치면
'ETC > Security' 카테고리의 다른 글
Level 6 (0) | 2013.10.31 |
---|---|
Level 5 - Race Condition or Symbolic link (0) | 2013.10.30 |
level4 (0) | 2013.10.11 |
level3 (0) | 2013.10.01 |
Level 2 (0) | 2013.10.01 |