해킹 공부/시스템 해킹

FTZ 해커스쿨 training 6~10

O'bin 2021. 9. 19. 02:07

training lesson 6

pw :coffee

 

cat 파일이름 : 파일 내용 화면에 출력

cat /etc/passwd : 패스워드 파일 내용 출력

패스워드 파일 : 한 서버의 사용자들의 모든 정보 기록 파일

 

① login한 ID

② 비밀번호 (실제 패스워드 목록은 shadow파일에 있음)

③ 사용자 숫자구분

④ 사용자가 속한 그룹

⑤ 사용자 이름

⑥ 로그인 성공 시 사용자 기본 위치 디렉토리

⑦ 사용자 처음 로그인 시 실행 프로그램

 

 

 

training lesson 7

pw : to the top

 

파일 백업 시 필요한 파일 압축 과정 학습

 

tar cvf 합친파일명.tar 합칠파일들 : 파일 합치기

tar xvf 해제할파일명 : 뭉친 파일 풀기

tar 명령은 압축해서 용량이 줄어들지 않음(오히려 증가) 단순히 합치는 개념 -> 복구 속도 빠름

 

c : 새로운 파일 생성(create)

x : 압축 해제(extract)

v : 압축 되거나 풀리는 과정 출력(view)

f : 파일로서 백업(file)

 

파일 압축(용량 감소)

gzip 파일이름 : 선택 파일 압축

gzip -d 파일이름 : 선택 파일 압축 해제

세 개 파일 gzip명령 실행 시 압축된 각 세개 파일 생성

 

확장자

.tar : 여러 파일을 하나로 뭉친 파일

.gz : gzip프로그램으로 압축된 파일

.tar.gz : tar프로그램으로 파일 합친 후 gzip으로 압축한 파일

.tgz : tar.gz를 합친 것

 

파일 뭉쳤다가 푸는 순서

tar cvf로 파일 뭉침 -> gzip으로 파일 압축 -> gzip -d으로 압축 해제 -> tar xvf로 뭉친것 풀기

 

 

 

training lesson 8

pw : player

 

텍스트 파일 생성

1. cat > 파일이름.txt : cat명령으로 입력하는 글자를 파일.txt.로 보냄(=파일 작성)

2. 내용 입력

3. ctrl+D

cat 파일이름.txt : 파일 내용 확인

 

이미 있는 파일 이름으로 새 파일 생성 시 기존 파일 없어지고 새 파일내용만 남음

cat >> 파일이름.txt : 기존 파일 뒤에 새로운 내용 추가

 

소스파일 생성

1. cat > 소스파일이름.c : 소스파일 생성

2. (c언어로) 프로그래밍

    ex)

        int main(){

           int a=10,b=20;

           printf("10+20=%d",a+b);

         }

3. ctrl+D

4. gcc -o 프로그램이름.exe 소스파일이름.c : 컴파일해 소스를 프로그램으로 만듦

5. pwd로 절대경로 확인

6. 절대경로.../프로그램이름.exe 또는 ./프로그램이름.exe : 프로그램 실행(. 는 리눅스에서 현재 디렉토리 의미)

 

 

 

training lesson 9

pw : programming

 

리눅스 사용자

1. 유저 : 본인

2. 그룹 : 모든 유저는 하나 이상의 그룹에 속함. 그룹을 임의변경 하지 않는 한 모든 유저는 자신의 유저네임과 같은 이름의 그룹에 속함

3. 아더 : 유저와 그룹 제외 나머지

4. 루트 : 절대권한

 

uid : (user id) trainer9 = 2009

gid : (group id) 특별한 일이 없는 한 gid=uid

groups : 현재 속한 그룹

 

 

파일 권한 정보 분석

 

 

 

리눅스에서는 확장자만 보고 실행파일인지 아닌지 알 수 없음. 실행권한인 'x'라는 문자 유무로 판단.

 

 

 

training lesson 10

pw : best!

 

remote 해킹 : 해킹하고자 하는 서버 아이디 없을 때 아이디 얻고자 시도

local 해킹 : 해킹하고자 하는 서버에 일반 계정 가지고 있을 때, 관리자 권한(root)얻고자 시도

 

SetUID : 일시적으로 ID변경. SetUID가 걸린 파일 실행 시 내 ID일시 변경, 파일 실행 끝나면 아이디 돌아옴. SetUID는 실행권한을 포함

 

/usr/bin/passwd 파일은

root에게 읽기,실행권한이 있고 (s가 x를 포함하기때문),

root라는 그룹에게는 실행 권한만 있고, 

위를 제외한 사용자들에게도 실행 권한만 있다.

하지만 root 에게 SetUID가 걸려있기 때문에

어느 사용자이던간에 저 파일을 실행할 때 root의 권한 갖게됨

 

find / -perm -4000 : / 에서 부터, 적어도 SetUID가 걸린 모든 파일을 찾아라
                             -perm = 권한을 찾겠다

                             000 = rwx 모두

find 명령옵션

perm : 권한과 일치하는 파일을 찾는다.
          ex) find / -perm 4755
name : 이름과 일치하는 파일을 찾는다.
           ex) find / -name cat
user : 유져와 일치하는 파일을 찾는다.
           ex) find / -user mmung2
group : 그룹과 일치하는 파일을 찾는다.
            ex) find / -group guta
명령옵션 조합해서 사용도 가능

     ex) find / -user root -perm -4000
          -> 루트의 권한으로 SetUID가 걸린 파일을 찾아라.

 

 

 

 

 

양이 적지 않다... 그래도 training 10까지 끝내고 나니 해킹에 관한 감..? 느낌은 알 것 같다. 전에는 막연했다면 이제는 대충 형태는 보이는 느낌이다. 열심히 해야지.