▶ SetUID란?
- 실행권한에 관련된 개념
- SetUID가 설정된 파일을 실행할 때 일시적으로 파일 소유자의 권한을 얻게 됨
- ex) root 권한으로 지정된 프로그램에 SetUID가 지정되어 있다면 실행할 때 root 권한으로 실행
- SetUID를 적용하기 위해서는 기존의 허가권 앞에 4를 붙여야 함
- 기존 권한에 실행권한이 없으면 S, 있으면 s로 표시됨
- 어떤 파일을 SetUID로 만드는 방법
① chown root
② chmod 4755
- /usr/bin/passwd 파일
: SetUID가 적용된 가장 대표적인 파일
: 계정의 비밀번호를 변경할 수 있도록 하는 명령어 실행 파일
: /etc/passwd의 권한은 root만 변경 가능
: /usr/bin/passwd에 SetUID가 적용되어 있지 않다면 일반 사용자들은 항상 관리자를 거쳐 비밀번호를 변경해야 함
→ 일반 사용자도 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 |