ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Linux/Unix 권한 상승
    System 2016. 8. 9. 10:28
    반응형

    리눅스 시스템에서는 로그인한 계정이 UID(user id)사용자 번호, GID(Group id)그룹 번호를 부여 받게되는데, 이는 UID와 GID가 로그인한 계정이 누구인가를 식별한다.


    그리고 계정이 누구인가를 식별하는 UID, GID를 RUID(Real UID), RGID(Real GID)라고도 부른다. 

    하지만 리눅스에서는 어떤 권한을 가지고있는가에 대한 UID와 GID가 별도로 존재하는데, 이를 EUID(Effective UID), EGID(Effective GID)라고 한다.

    최초로 로그인 할때에는 RUID와 EUID, RGID와 EGID가 각각 같은 값을 같게 된다. 일반적인 프로그램을 실행해도 일정한 값을 갖게 된다.

    그러나 SetUID 비트를 가진 프로그램을 실행했을 때만 프로세스 안에서 잠시 일치하지 않는 상태가 발생한다. -> SetUID를 이용해 EGID를 관리자 권한으로 획득이 가능하게 된다. 물론 일시적으로 그 파일이 실행된 상태에서만 [프로세스 진행상태]


    SetUID 개념은 쉽게 설명하자면 rwx rwx rwx 각각 소유자 그룹 일반 이라는 것은 안다고 생각한다.


    소유자 접근 권한 부분에서 실행권한x대신에 s가 있다면 rws 일시 SetUID가 된다. 

    그리고 r w x 도 각 4 2 1 값을 갖듯 SetUID는 4000의 값을 갖고 있다. 그래서 파일 권한이 4755가 있다면 rws r-x r-x 라고 표현하는 것이 맞다.


    SetGID의 개념 또한 SetUID와 똑같다. 

    그룹 접근권한에 x대신에 s가 있다면 SetGID라고 표현할 수 있다.

    그리고 SetGID는 2000의 값을 갖는다. 2775라면 즉 rwx rws r-x 라고 표현할 수 있다.


     복습 설명 -> SetUID가 설정되어 있는 파일을 실행하면 파일 소유자가 root일 경우 파일을 실행하는 동안 root의 권한을 얻게된다. 종료되면 다시 본래의 권한으로 돌아온다. SetUID는 유닉스 최초의 특허로 알려져 있다. 


    스키티 비트라는 것도 있는데 이러한 것은 1000의 값을 갖고, 공용 디렉토리안의 파일이 훼손되는것을 막기위해 사용할 수 있다.

    chmod 1777 파일이름 이나 chmod +t 파일이름 명령을 할 경우 일반권한이 rwt로 바뀐다. 스키티 비트가 설정된 디렉토리의 소유자 계정이 아닌 다른 계정은 해당 디렉토리를 수정하거나 삭제할 수 없다.


    root 권한 -> SetUID 0 SetGID 0

    셸 -> /bin/bash , sh , bash

    프로그램 내의 셸 명령어 실행 함수 -> system(" ")    예 : system("/bin/bash");


    SetUID를 이용한 해킹 방법 유의사항

    SetUID비트의 영향으로 인해 특정 프로세스를 다른 프로세스로 감싸줘야한다.

    cp /bin/bash /test/bash

    chmod 4755 /test/bash

    ./test/bash

    이렇게 하면 UID GID가 root권한을 가질 수 없다. 셸도 리눅스 시스템에서 동작하는 하나의 프로세스 이다.


    chmod 4755 /bin/more 명령을 이용하여 more 명령어에 SetUID를 부여해 /etc/shadoow 파일을 읽을 수 있다.

    more /etc/shadow

    SetUID를 이용한 해킹


    말 그대로 적용시킬 수도 있는 것이다.


     

    Esc + : 에디터 아래 입력가능 

    :! 뒤에 실행할 프로그램 또는 명령어를 적으면 실행된다. 

    :!/bin/bash

    그리고 셸의 프롬포트가 $일 경우는 일반 셸 #일 경우는 관리자 셸이라고 보면 된다.


    /etc/passwd 구조

    root : x : 0 : 0 : root : root : /bin/bash

    사용자 계정 : 패스워드가 암호화되어 shadow 파일에 저장되어 있음 표시 : 사용자 번호(UID) : 그룹 번호(GID) : 사용자 이름 : 사용자 홈 디렉터리 설정 : 사용자 셸 정의




    반응형

    'System' 카테고리의 다른 글

    Linux/Unix 계정과 권한 체계  (0) 2016.08.08
Designed by Tistory.