티스토리 뷰
1. home dir에 있는 setuid binary를 사용해야지 다음 레벨로 가는 비밀번호를 얻을 수 있다.
2. setuid binary를 이용한 후, /etc/bandit_pass 에서 찾을 수 있다.
문제에서 알아야하는 부분은 위 2개인 것 같습니다.
bandit19에 로그인한 후, ls를 이용해보니 "bandit20-do"라는 파일을 확인할 수 있었습니다.
* bandit20-do파일의 소유자는 bandit20임을 알 수 있다.
* bandit20-do 는 setuid가 설정되어 있음을 사용자 권한 필드에 s 가 적혀있음을 통해 알 수 있다.
bandit20-do 파일을 실행해보니 위와 같은 문구가 나왔다.
그래서 예문대로 실행했더니 아래와 같은 결과가 나왔다.
출력 결과, bandit20-do 라는 프로세스를 실행한 사용자와 그룹은 bandit19임을 알 수 있다.
그리고, euid가 bandit20임을 통해 bandit20-do를 이용해서 bandit20의 권한을 이용할 수 있음을 뜻한다.
/etc/bandit_pass/bandit20을 확인해보니 이렇게 소유자가 bandit20임을 알 수 있다.
이때까지 모은 정보를 종합한다면 아래와 같은 명령을 이해할 수 있다.
New
1. 파일을 실행할 때 ./ 를 이용할 수 있다.
2. setUID를 이용해서, 그 프로세스가 실행중인 동안 그 해당 파일의 소유자 권한으로써 자원에 접근할 수 있음을 알음.
3. EUID가 실행파일 소유자의 UID임을 알게 됨.
< 참조 : UNIX/Linux - 리눅스 Set UID, Set GID 란 무엇인가 (SUID,SGID) : 네이버 블로그 (naver.com) >
< 참조 : 프로세스 뜻 간단정리 (tistory.com) >
< 참조 : 프로세스의 구성요소 - PID, PPID, UID, GID, EUID, EGID :: toward the end · · · (tistory.com) >