level00

(SETUID 권한을 가진 파일 찾기(정보 수집))

 

문제 설명 : 이번 레벨은 "flag00" 계정으로 "Set User ID"가 설정된 프로그램을 찾는 능력을 요구한다. 루트 디렉토리(/)를 이용하여 찾는다면 도움이 될 수 있다.

 

 

find 명령어를 활용해 SETUID 권한을 가진 파일을 찾는다.

$ find / -user "flag00" -perm -4000 2>/dev/null
해석 : 소유자 계정이 flag00이고 SETUID 권한을 가진 파일을 검색하겠다. 오류 메시지는 휴지통에 넣겠다.

권한 옵션의 값으로 입력된 "-4000"의 좌측에 포함된 대시(-) 기호는, '전부'라는 의미를 지닌다. '다른 부분은 모르겠는데, 이 기준의 설정된(1) 부분만은 전부 준수해야 만족한다.'는 의미이다. 반대로, 슬래시(/) 기호는, '일부'라는 의미를 지닌다. '이 기준의 설정된(1) 부분을 일부만 준수해도 만족한다.'는 의미이다. 

 

find 명령어 옵션
/ 최상위 디렉터리에서 검색하겠다.
-user 유저 아이디
-perm 권한 정보
2>/dev/null 오류 메시지를 휴지통에 넣어 출력되지 않게 한다.

 

출력
level00@nebula:~$ find / -user "flag00" -perm -4000 2>/dev/null
/bin/.../flag00
/rofs/bin/.../flag00

 

SETUID 권한을 가지고 있는 파일들의 정보를 확인해본다.

level00@nebula:~$ ls -al /bin/.../flag00 /rofs/bin/.../flag00
-rwsr-x--- 1 flag00 level00 7358 2011-11-20 21:22 /bin/.../flag00
-rwsr-x--- 1 flag00 level00 7358 2011-11-20 21:22 /rofs/bin/.../flag00

각 파일에 SETUID 권한이 설정된 것을 확인할 수 있다.

 

이제 이 파일들을 실행한다. 

level00@nebula:~$ /bin/.../flag00
Congrats, now run getflag to get your flag!
flag00@nebula:~$ /rofs/bin/.../flag00
Congrats, now run getflag to get your flag!

축하메시지가 출력되며, getflag 명령어를 입력하여 flag를 획득하라고 한다.

 

getflag 명령어를 입력한다.

flag00@nebula:~$ getflag
You have successfully executed getflag on a target account

flag를 획득하였다.

+ Recent posts