setuid

24
SetUID 학학 : 20032339 학학 : 학학학

Upload: raisie

Post on 05-Jan-2016

92 views

Category:

Documents


0 download

DESCRIPTION

SetUID. 학번 : 20032339 이름 : 장지현. 학습목표. 리눅스 / 유닉스에서의 접근제어 이해 리눅스 / 유닉스에서의 접근제어 설정 SetUID 의 필요성과 기능 이해 SetUID 를 이용한 관리자 권한 획득의 원리 이해. 리눅스 / 유닉스의 접근 제어. 유닉스 파일과 디렉토리에 대한 정보. ls. ls -a. 유닉스 파일과 디렉토리에 대한 정보. 리눅스 / 유닉스의 접근 제어. ls -al /etc. ① : 파일에 대한 접근 권한을 표현한다 . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SetUID

SetUID

학번 : 20032339이름 : 장지현

Page 2: SetUID

학습목표 리눅스 / 유닉스에서의 접근제어 이해

리눅스 / 유닉스에서의 접근제어 설정

SetUID 의 필요성과 기능 이해

SetUID 를 이용한 관리자 권한 획득의 원리 이해

Page 3: SetUID

리눅스 / 유닉스의 접근 제어 유닉스 파일과 디렉토리에 대한 정보

ls

ls -a

Page 4: SetUID

유닉스 파일과 디렉토리에 대한 정보

ls -al /etc

① : 파일에 대한 접근 권한을 표현한다 . ② : 해당 파일에 링크 (Link) 되어 있는 파일의 개수를 표시한다 . ③ : 보통 해당 파일을 생성한 계정이지만 , 파일 생성자 또는 관리자가 임의로 바꿀

수 있다 . ④ : 위와 마찬가지로 보통 해당 파일을 생성한 계정이 속해 있는 그룹이나 , 파일

생성자 또는 관리자가 임의로 바꿀 수 있다 .

리눅스 / 유닉스의 접근 제어

Page 5: SetUID

리눅스 / 유닉스의 접근제어 - 유닉스 파일의 종류

파일 속성 내 용

d 디렉토리 파일

- Regular File : 일반 정규 파일

l Symbolic Link : 링크되어 있는 파일

cCharacter File : 버퍼에 저장되지 않은 특수 파일 . 예 ) 터미널

b Block File : 버퍼링된 특수 파일 . 예 ) 디스크 드라이브

s Socket File : 소켓 기능을 하는 파일

p Pipe File : 파이프 기능을 수행하는 파일

Page 6: SetUID

유닉스 파일 접근권한의 표현

-rwxrwxrwx‘rwx’ => r : 읽기 (Read), w : 쓰기 (Write), x : 실행하기 (Execution)

- : 파일의 종류 , rwx : 소유자 권한rwx : 그룹의 권한 , rwx : 일반 사용자

다음처럼 각각의 고유한 숫자로 표기한다 .

r : 4(2 진수로 100) , w : 2(2 진수로 10), x : 1(2 진수로 1) rwx -> 7(2 진수로 111) 로 읽는다

Page 7: SetUID

유닉스 파일 파일 및 디렉토리 생성 시 기본 권한

touch a.txt mkdir a

기본적으로 디렉토리는 755 의 권한으로 , 파일은 644 의 권한으로 생성된다 .

Page 8: SetUID

유닉스 파일 파일 및 디렉토리 생성시 기본 권한 설정

vi /etc/bashrc

umask 값에 따라 기본 권한 설정이 결정되는데 , 파일의 경우에는 기본 생성 최고 권한이 666 이며 , 디렉토리의 경우에는 777 이다 . 디렉토리가 777 인 이유는 디렉토리에 실행 권한 (x) 이 없으면 , 디렉토리 안으로 들어갈 수 없기 때문이다 . 또한 기본 권한은 최고 권한에서 umask 값을 빼준 값이 된다 .

Page 9: SetUID

유닉스 파일 사용자 계정 생성

adduser wishfreecd /homels -l

Page 10: SetUID

유닉스 파일 파일 및 디렉토리 권한 변경

touch c.txt chmod 777 c.txt

파일 및 디렉토리 소유자 및 그룹 변경

Page 11: SetUID

유닉스 파일

chown wishfree c.txt

파일 및 디렉토리 소유자 및 그룹 변경

chgrp wishfree c.txt

Page 12: SetUID

SetUID

기능 : 프로세스가 실행되는 동안 그 프로세스의 주인의 권한을 임시로 가지는 기능

필요성 : 프로세스가 사용자 보다 높은 수준의 접근을 요구 할 때 파일접근 제한 때문에 원할 한 기능을 제공 할 수 없다 이를 해결하기 위한 방법

Page 13: SetUID

SetUID, SetGID, Sticky bit 의 표현 SetUID 의 값은 4000, SetGID 의 값은 2000, Sticky bit 는 1000

이다

SetUID 는 소유자 권한의 ‘ x’ 자리를 ‘ s’, SetGID 는 그룹의 ‘ x’ 자리를 ‘ s’, Sticky bit 는 관련이 없는 이들 (Others) 에 대한 실행 비트인 ‘ x' 대신에 ’ t' 문자를 사용한다 .

4755 권한의 파일 = rwsr-xr-x 7777 의 권한 = rwsrwsrwt

SetUID 의 사용 예ls –al /user/bin/passwd

SetUID

Page 14: SetUID

SetUID 의 동작

SetUID

Page 15: SetUID

Sticky bit 의 동작 스티키 비트는 파일에 주어지는 권한이 아니며 , 디렉토리에서

모든 사용자가 읽고 , 쓰고 , 실행이 가능하다 .

디렉토리 속의 파일들을 삭제하거나 이름 변경은 파일의 소유자 , 디렉토리의 소유자 , 관리자만 가능하다 .

스티키 비트가 주어진 대표적인 디렉토리로는 /tmp 디렉토리가 있다 .

SetUID

Page 16: SetUID

SetUID 를 이용한 해킹 SetUID 비트를 가진 셸의 생성

원본의 bash 셸을 /tmp 디렉토리에 복사하여 4755 권한을 주었다 . SetUID 비트가 주어진 bash 셸 프로그램은 프로세스가 살아있는 동안은 파일의 소유자인 root 권한으로 실행될 것이다 .

cp /bin/bash /tmp/bash chmod 4755 bash

SetUID

Page 17: SetUID

SetUID 를 이용한 해킹 사용자 계정변경

Root 에서 변경 시 ‘ su wishfree( 계정 )’ 으로 변경가능

일반 사용자에서 다른 일반 사용자로 변경시 비밀번호 입력 필요

Wishfree 계정에서 Root 이동시 ‘ exit’ 사용

SetUID

Page 18: SetUID

SetUID 를 이용한 해킹 일반 사용자 계정으로 SetUID 비트가 주어진 셸 실행 – 권한 획득 실패

앞에서 SetUID 비트를 부여한 셸을 일반 사용자 계정으로 실행했다 . 그러나 실행 전과 다름없는 UID 와 GID 를 가지고 있는 것을 확인할 수 있다 . ./bash

SetUID

Page 19: SetUID

SetUID 를 이용한 해킹 일반 사용자 계정으로 SetUID 비트가 주어진 셸 실행 – 보안 설정 우회

backdoor.c 생성

SetUID

backdoor 컴파일

Page 20: SetUID

SetUID 를 이용한 해킹 일반 사용자 계정으로 SetUID 비트가 주어진 셸 실행 – 보안 설정 우회

SetUID

Page 21: SetUID

SetUID 를 이용한 해킹 bash 1.14.7 셸을 이용한 SetUID 쉘 획득

chmod 4755 bash

./bash

SetUID

Page 22: SetUID

SetUID 를 이용한 해킹 More 명령을 이용한 관리자 권한 사용

chmod 4755 more

more /etc/shadow

SetUID

Page 23: SetUID

Vi 에디터를 이용한 해킹

#include <stdio.h> main(){ setuid(0); setgid(0); system("/bin/vi"); }

:!/bin/sh

SetUID 를 이용한 해킹

SetUID

Page 24: SetUID

■ SetUID 를 이용한 해킹

SetUID