▶ SetUID?

 

- 실행권한에 관련된 개념

- SetUID가 설정된 파일을 실행할 때 일시적으로 파일 소유자의 권한을 얻게 됨

- ex) root 권한으로 지정된 프로그램에 SetUID가 지정되어 있다면 실행할 때 root 권한으로 실행

- SetUID를 적용하기 위해서는 기존의 허가권 앞에 4를 붙여야 함

- 기존 권한에 실행권한이 없으면 S, 있으면 s로 표시됨

- 어떤 파일을 SetUID로 만드는 방법

chown root

chmod 4755

- /usr/bin/passwd 파일

: SetUID가 적용된 가장 대표적인 파일

: 계정의 비밀번호를 변경할 수 있도록 하는 명령어 실행 파일

: /etc/passwd의 권한은 root만 변경 가능

: /usr/bin/passwdSetUID가 적용되어 있지 않다면 일반 사용자들은 항상 관리자를 거쳐 비밀번호를 변경해야 함

일반 사용자도 root의 권한으로 /etc/passwd 파일을 수정 가능하도록 설정

 

 

 

▶ id 명령 SetUID 프로그램화

 

 

위에서 볼 수 있듯이 id 명령어의 소유자는 ubuntu이다.

 

 

which를 이용하여 id의 위치를 찾는다.

 

 

id의 위치를 myid라는 이름으로 복사한 후 ls를 통해 확인할 수 있다.

 

 

myid를 실행시켜보면 위에서 id 명령어를 이용한 것과 동일한 결과가 나온다.

 

 

파일을 SetUID로 만들기 위해 chown과 chmod를 이용한다.

먼저 chown root로 소유자를 root로 변경한다.

 

 

그다음에 chmod 4755로 특수 권한을 부여한다. ( 4 : setUID, 755 : 권한 )

위에서 myid가 setuid로 변경이 된 것을 확인할 수 있다.

 

 

마지막으로 myid를 실행해보면 euid=0(root)을 통해 루트 권한으로 실행된 것을 확인할 수 있다.

 

 

 

▶ cat 명령 SetUID 프로그램화

 

 

which를 이용하여 cat 명령의 위치를 찾는다.

 

 

해당 경로의 명령 파일을 mycat으로 복사한다. ls를 통해 확인할 수 있다.

 

 

chown으로 root 권한 갖기

 

 

chmod로 실행 권한 획득한 후 mycat을 실행시켜보면 root 권한으로 실행된 것을 확인할 수 있다.

'2021-1 STUDY > Pwnable Study' 카테고리의 다른 글

Week05_BOF  (0) 2021.05.19
Week04_GDB 분석  (0) 2021.05.12
Week03_collision  (0) 2021.05.05
Week02_Pwntools  (0) 2021.04.28
Week01_메모리구조  (0) 2021.03.31

+ Recent posts