Trainer 6 - 패스워드 파일 분석 방법
(패스워드 파일 : 한 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일)
root:x:0:0:Admin:/root:/bin/bash
root : x : 0 : 0 : Admin : /root : /bin/bash
① 로그인 아이디(계정)
② 원래 패스워드가 있던 필드 -> /etc/shadow 파일로 감 (쉐도우 파일은 관리자 권한으로만 볼 수 있음)
③ 컴퓨터가 인식하는 우리
④ 해당 사용자가 속해있는 그룹
(컴퓨터는 우리가 root라고 입력 하면 -> "지금 들어오는 녀석은 0이란 녀석이고, 0이란 그룹에 속해있구나!"라고 판단)
⑤ 사용자의 이름 ex. Admin : 관리자
⑥ 해당 사용자가(root) 로그인에 성공 했을 때 기본으로 위치하게 되는 디렉토리
⑦ 사용자가 처음 로그인 했을 때 실행되게 할 프로그램 ex. 쉘
Trainer 7 - 파일들 압축, 해제
ㄴ 파일들을 압축하고 해제하는 방법 <백업 할 때 사용됨>
ㄴ 백업 : 하드에 들어있는 데이터(ex 디렉토리, 파일, 개인정보, 게시물) 를 똑같이 다른 곳으로 복사하여 안전하게 보관하는 것
옵션 정리
tar 명령
tar cvf 합칠파일 합칠파일들 : 합치기
ex. tar cvf songs.tar * (= 현재 디렉토리의 모든 파일(*)을 songs.tar 라는 새로운 파일로 합쳐라!)
tar xvf 해제할파일 : 해제하기
tar 명령은 파일을 압축하지 않고 그냥 합쳐버리기만 함 → 기존 파일 복구할 때 속도 짱빠름
gzip 프로그램은 한번에 한개의 파일만 압축할 수 있음
⇒ BEST: tar 사용하여 여러 파일 1개로 뭉쳐버리고 gzip 프로그램 사용하여 압축!
gzip 명령
압축파일의 확장자
압축 과정
많은 파일들 → tar을 사용하여 1개로 뭉침 → gzip을 사용하여 압축
(songs.tar) (songs.tar.gz)
총 정리
매우 중요한 여러 파일들이 있다. 이것을 백업하고자 한다!
Trainer 8 - 파일 만들기, 실행시키기
ㄴ 새로운 파일 만들고, 컴파일하고, 실행시키는 방법
파일의 종류
텍스트 파일 생성법
리다이렉션 연속 2번 사용하기 (기존 내용 보존시키며 새로운 내용 추가)
ex. cat >> test.txt
프로그램 소스 파일 만들고 + 컴파일 + 실행 하는법
(컴파일 = 소스를 프로그램으로 만듦)
파일 실행시키는 방법
/home/trainer8/program.exe : 절대경로 + 파일 이름 → 실행
./program.exe → 간편하게 실행!
Trainer 9 - 권한 정보 분석하기
ㄴ 리눅스의 권한 (Permission) 정보 분석하는 방법 알아보기
리눅스는 윈도우와 달리 한 서버에 여러 사용자가 접속하여 사용한다!
4가지 종류의 사용자
id 명령으로 정보 분석하기
uid=2009(trainer9) gid=2009(trainer9) groups=2009(trainer9)
파일의 권한 정보 분석하는 방법
rwx rwx rwx : 권한에 대한 정보 (유저의 권한, 그룹의 권한, 아더의 권한)
(읽기권한(r), 쓰기권한(w), 실행권한(x))
trainer9 trainer10 : 유저, 그룹 (이 둘을 제외한 모든 아이디는 아더임)
권한의 종류
Trainer 10 - SetUID 알아보기
ㄴ Local 해킹시 핵심이 되는 SetUID 알아보기
해킹의 종류
Remote 해킹 : 해킹할 서버에 아이디 가지고 있지 않을 때, 아이디 얻고자 시도하는 것
Local 해킹 : 해킹할 서버에 일반 계정을 가지고 있을 때, 관리자 권한(root) 얻고자 시도하는 것
(SetUID가 걸린 파일 조작하여, 관리자 권한 얻을 수 o)
SetUID가 걸린 파일은 수십개 ex.passwd, sendmail, crontab
(해커스쿨 Local Exploit → 해킹 기법 모아 놓은 것)
오버플로우(해킹 기법) - C언어 사용
따라서, SetUID가 걸려있는 파일들은 항상 해킹의 두려움 o
SetUID가 걸려있는지 아닌지 알아보기
서버 전체에서 SetUID가 걸린 파일 찾는 방법
find / -perm -4000 : / 에서 부터 , 적어도 SetUID가 걸린 모든 파일을 찾아라
find 명령의 옵션
레벨별 해킹 통과하는 방법
내 아이디가 level3 이라 해보자
level4로 넘어가기 위해, level4의 권한으로 SetUID가 걸린 파일 찾기
→ ( find / -user level4 -perm -4000)
그럼 한개 이상의 파일 발견될걸
그 파일들은 임의로 작성된 "멍청한 파일" 임
그 파일을 이용하여 level4의 쉘을 얻으면 성공
my-pass 입력 → level4 패스워드 나옴