본문 바로가기

Security/System Hacking

No.1 Process OR SetUID

 process 권한과 SetUID에 대해 알아보아요.

 

(1)SetUID 란?

 

 SetUID란 유닉스라 리눅스 계열에서 권한이 rwsr-xr-x 등의 식으로 되있는 것입니다.

즉 , root유저의 실행권한이 x가 아닌 s로 설정 되있는 것을 말합니다.

 

이때 이 SetUID 파일을 실행하면 그것이 일반 유저든 root 권한의 유저든 파일 소유자의 권한을 갖습니다.

즉 해당파일이 root 이면 그 파일은 누가 실행하든 파일이 실행되는 process 실행시간동안 파일 소유자인 root권한이 되는 것입니다.

 

  즉 SetUID 일때

 

위의 그림 처럼 이해하자

즉 , test 라는 파일의 소유자가 root이고 이것이 SetUID 파일일 경우에

실행을하면 일반유저든 어떤 유저든 그 process가 올라와 있는 동안에는 root 권한을 얻을수 있다는 것이다 .

 

 낮은 버젼의 리눅스 에서 해볼수있는 해킹 기법이 있다.

 

bash 쉘을 올릴수있는 script파일인 shell이 있다고 하자.

$./shell => bash$ 이렇게 된다.

 

이때.

 

$chmod 4755 ./shell => 권한 을 SetUID로 변경한다.

$./shell => 실행

bash#

bash# id

 

=> uid는 일반 유저지만 euid가 root로 바뀐것을 알수있고 bash의 prompt또한 #이다.

 

이것으로 알수있다.

[출처] No.1 Process OR SetUID|작성자 Securely