선릉역 1번 출구
Linux account and SetUID 본문
로그인(login)
사용자 계정과 패스워드를 이용해 시스템에 엑세스
Root 계정: 특권화된 접근 권한(root 권한)
일반 계정: 일반적인 접근 권한
*/etc/passwd
시스템에 현재 등록되어 있는 계정 정보들의 리스트를 포함
-rw-r--r--로 되어있기 때문에 read할 수 있음
root : x : 0 : 0 : root : /root : /bin/bash
(1) (2) (3) (4) (5) (6) (7)
(1) 사용자 계정
(2) 암호화된 패스워드가 /etc/shadow 파일에 위치함을 나타냄(x로 되어 있으면 /etc/shadow에 암호화 or Hash 된 패스워드가 있다는 것을 나타냄)
(3) UID(root = 0, 일반 UID: 500이상)
(4) GID
(5) 사용자 이름
(6) 홈디렉토리
(7) 쉘
*/etc/shadow
파일에 있는 계정 정보와 연관된 암호화된 or 해시된 패스워드들을 포함
사용자 ID(UID), 그룹 ID(GID)
-RUID(Real UID), RGID(Real GID): 사용자 게정을 식별하는데 사용
ex) bigcarrot:x:500:500::/home/fedlab:/bin/bash는 사용자 계정이 bigcarrot이고 일반사용자 UID임
-EUID(Effective UID), EGID(Effective GID): 사용자 계정의 액세스 권한을 나타내는데 사용됨
***액세스 권한 상승
실행 파일이 SetUID 비트를 가지면 파일이 실행되는 동안 사용자는 상승된 액세스 권한을 가질 수 있음
SetUID: 4000
SetGID: 2000
6777로 권한 설정을 해주면 4000, -> x가 s로 변함
6666로 권한 설정을 해주면 x자리가 대문자 S로 변함
즉 소문자 s는 x의 권한이 더해진 것을 나타내고 대문자 S는 x의 권한이 없는 상태임
권한 상승 하는 법
1. SetUID 실행프로그램을 root가 생성
***setuid는 파일 소유자의 권한으로 일시적 권한 상승을 할 수 있게함 그렇기 때문에 일반사용자가 루트 권한을 얻기 위해서는 루트계정으로 파일을 생성해야함(루트 계정으로 파일을 생성해야 파일 소유자UID가 root로 설정되기 때문 또는 일반 계정으로 생성 후 chown으로 파일 소유자를 바꿀 수도 있긴함)
2. SetUID 실행프로그램에 Setuid bit를 root가 설정
1.번에서 실행프로그램을 root가 설정하는 것은 파일 소유자가 root가 되어야하기 때문이라고 했는데 파일 소유자(UID)가 root라면 chmod 명령어는 root만이 할 수 있기 때문에 root가 setuid bit를 설정하는 것임
결론
=>setuid는 파일 소유자의 권한으로 일시적 상승하는 것.
파일의 소유자가 root이고 실행권한이 rws로 되어있다면 내가 일반 사용자여도 이 파일을 실행했을 때, 일시적으로 파일의 소유자 root의 권한을 가지고 실행을 할 수 있음
ls 명령어
ls는 list의 줄임말로 현재 디렉토리의 파일리스트를 출력함
내가 자주 쓰는 옵션은 -a, -l이다.
-a: 숨김 파일 포함 리스팅, ..포함(현재 디렉토리랑 상위 디렉토리: .. 포함)
-l: 상세 리스팅
-은 파일을 의미함
허가권(chmod): rwxr-x---
소유권: root root(UID, GID)
용량: 92
생성시간: Oct 15 04:51
파일이름: 1.bash
'Computer > Linux' 카테고리의 다른 글
ubuntu - django 설치하기 (0) | 2022.08.05 |
---|---|
[remind] Kali pwd/mkdir/touch (0) | 2022.06.05 |
[remind] Kali root (0) | 2022.06.04 |
[remind] Kali tutorial (0) | 2022.06.04 |
Directory structure (0) | 2021.10.22 |