시스템 해킹

set UID

kchabin 2022. 8. 10. 21:06

SUID = Set UID의 약자. 

 

프로세스가 실행중인 동안 일시적으로 해당 실행 파일의 소유자, 소유그룹의 권한으로써 자원에 접근할 수 있도록 하는 권한 설정.

 

SUID가 설정된 프로그램 동작 시 프로세스가 동작하는 동안에 다음과 같이 설정한다.

RUID = 실행시킨 사용자의 UID

EUID = 실행 파일 소유자의 UID

 

유닉스 파일에 rwsr-xr-x 권한 설정된 경우

 

소유자 권한에서 x 권한 자리에 s로 설정되어있다. 

누가 실행하든지 관계없이 해당 파일이 실행될 때 파일 소유자의 권한을 갖는다. 

 

A = 파일 소유자

B = 파일 실행자

이때 B가 파일을 실행하면 A의 권한을 갖는다. 

 

해당 파일의 소유자가 root이면 그 파일을 실행하는 사람이 누가 되었든지 파일이 실행되는 프로세스는 실행되는 동안 파일 소유자인 root 권한으로 실행된다. 

 

 

* UID = User ID

유닉스 운영체제의 커널은 사용자를 식별할 때 사용자 식별자(UID)라 불리는 양의 정수를 사용한다.

15비트 정수(0~32767)로 표현됨.

- UID 0 = 슈퍼 유저.

- nobody 사용자에게는 가장 큰 UID가 할당된다.

- 관레적으로 1~100까지는 시스템 용도로 예약돼있다. 

레드햇 = 1~499

데비안 = 1~999

 

어떤 UID에 해당하는 사용자는 /etc/password에서 찾을 수 있다. 

쉐도우 패스워드 파일과 네트워크 정보 서비스 또한 사용자를 UID로 참조한다.

유닉스 파일 시스템과 프로세스에서도 사용된다. 

일부 운영체제는 16비트 UID를 지원해 65,536개의 숫자를 사용할 수 있게 해준다. 

32비트 UID는 2의 32승개만큼 지원한다.

'시스템 해킹' 카테고리의 다른 글

Buffer Overflow  (0) 2022.08.12
pwnable.kr collision  (0) 2022.08.12
질문 - 2주차  (0) 2022.08.05
quizmachine 문제 풀이  (0) 2022.08.04
SSH, File Descriptor, nc 명령어  (0) 2022.08.03