Trainer 10
=========
리눅스 4가지의 사용자
유저: 자신을 의미, A라는 아이디로 로그인 상태면 A라는 유저가 됨,
그룹: 모든 유저는 하나의 그룹에 속함, 임의로 변경하기 전까진 같은 그룹
아더: 유저와 그룹을 제외한 모든 사람을 의미
루트: 절대적인 권한 사용자, 구애받지 않는 상태로 파일 제어, 해킹의 본질
id
: 자신이 무슨 유저이며, 무슨 그룹에 속하였는지를 알려주는 명령어
uid : 자신의 UserID 의 약자,
gid : Group ID의 약자
groups : 현재 자신이 어떤 그룹에 속해있는지 알려준다. 임의로 변경하지않는 이상 uid 와 같은 그룹.
rwx ?
1 : 유저의 권한, 2 : 그룹의 권한, 3 : 아더의 권한
d : 디텍토리를 일컫음, r : 읽기권한(r), w : 쓰기권한(w), x : 실행권한(x), s: SetUID
Local hacking?
: 1. Remote 해킹/ 아이디를 얻고자 시도 하는 것
2. Local 해킹/ 일반계정으로, 관리자 권한(root)를 얻고자 시도하는 것
SetUID?
: Set/ 변경하다 UID/ UserID ... "ID를 변경한다."
1. 파일에 걸려있는 것
2. 걸린 파일을 실행되면 자신의 아이디는 root 권한을 임시적으로 지님
3. 파일의 실행이 끝나면 원래의 아이디로 복구
기법: 레이스컨디션, IFS버그, 링크버그, 버퍼 오버플로우, 포맷 스트링 어택 등
버퍼 오버플로우?
: joe 파일이 root 형식으로 SetUID가 걸려있다.
: joe 는 문서 편집을 사용할 떄 쓰는 파일로 joe filename 을 입력하면 해당 파일의 편집 화면이 출력
: joe filename 에 Filename이 1000자가 넘어버리면 프로그램 오작동
: 버퍼 오버플로우가 일어날 때, 그 순간에 /bin/bash 파일을 실행하도록 한다.
: joe 파일이 실향되는 동안, root 아이디로 변경, 그 상태에서 /bin/bash 실행 = 루트권환 Shell 습득.
find / -perm -4000
: / 에서 부터, 적어도 SetUID가 걸린 모든 파일을 찾아라.
: 4000 앞에 붙은 -가 바로 "적어도" 를 의미,
: -perm 은 "권한을 찾겠다" 라는 옵션, 그 뒤의 '4' 자가 Setuid를 의미 하며, 000은 rwx 모두를 의미한다.
find 옵션?
-perm 권한과 일치하는 파일을 찾는다
ex) find / -perm 4755
-name 이름과 일치하는 파일을 찾는다
ex) find / -name cat
-user 유저와 일치하는 파일을 찾는다
ex) find / -user mmug2
-group 그룹과 일치하는 파일을 찾는다
ex) find / -group guta
위 옵션을 서로 조합하여 동시에 사용가능,
ex ) find / -user root -perm -4000
-> 루트의 권한으로 Setuid가 걸린 파일을 찾아라.
'정보보안 카테고리 > hackschool FTZ' 카테고리의 다른 글
hackerschool FTZ : level2 풀이 (2) | 2013.10.01 |
---|---|
hackerschool FTZ : level1 풀이 (0) | 2013.10.01 |
hackerschool FTZ : Training 6~8 (0) | 2013.09.30 |
hackerschool FTZ : Training 5 (0) | 2013.09.30 |
hackerschool FTZ : Training 4 (0) | 2013.09.30 |