물먹는산세베리아

setuid란? 본문

카테고리 없음

setuid란?

suntall 2021. 5. 5. 23:36

* SWING pwnable study

 

1. SetUID란

  • SetUID가 설정된 파일을 실행할 때, 특정 작업을 수행하기 위해 일시적으로 파일의 소유자 권한을 얻게 된다.
  • 소유자가 root인 파일에 SetUID 설정 시, 일반 사용자가 그 파일을 실행하게 되면 잠시동안 파일의 소유자 권한인 root의 권한을 빌려온다.

2. SetUID 설정 이유

예를 들어, 계정의 password을 변경하려고 할 때 passwd 명령어도 패스워드를 지정하고, 변경하면 /etc/passwd, /etc/shadow 파일의 내용이 변경된다.

 

하지만 이에 대한 권한은 root만 갖고 있기 때문에 일반 사용자가 password를 변경할 수 없다. 즉, /etc/passwd, /etc/shadow 파일은 일반 사용자가 권한을 갖고 있지 않기 때문에 비밀번호를 바꿀 수 없다는 말이다.

 

이때 SetUID를 사용하면 된다.

 

SetUID bit를 설정하면 일반 사용자가 실행했을 때도 그 파일의 소유자 권한으로 실행되므로 수정작업을 할 수 있다.

 

3. SetUID 설정 방법

  1. u + s(user에 SetUID 적용)
  2. 4000

4. SetUID 설정된 파일, 디렉토리 찾기

  • find [경로] -user [소유자] -perm [접근권한]
  • 예시: fine / -user root -perm -4000

 

id 명령어 Set-UID 프로그램화하기

먼저, id의 위치를 검색했고, cp 명령어로 SWING_pwnable 폴더에 복사해왔다.

잘 복사된 것을 확인한 후 chmod(권한 명령어) 4000을 주어 SetUID프로그램으로 활성화시켰다.

 

Cat 명령어 Set-UID 프로그램화하기