FTZ - Trainer 6~10

·2020년 6월 18일
0

FTZ

목록 보기
2/2

Trainer 6 - 패스워드 파일 분석 방법

(패스워드 파일 : 한 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일)

  • cat 파일이름 : 파일의 속내용 화면으로 뿌려줌

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 디렉토리, 파일, 개인정보, 게시물) 를 똑같이 다른 곳으로 복사하여 안전하게 보관하는 것

옵션 정리

  • c (Create) : 새로운 파일을 만드는 옵션
  • x (eXtract) : 압축을 해제시키는 옵션
  • v (View) : 압축이 되거나 풀리는 과정을 출력하는 옵션
  • f (File) : 파일로서 백업을 하겠다는 옵션

tar 명령

  • tar cvf 합칠파일 합칠파일들 : 합치기

     ex. tar cvf songs.tar *  (= 현재 디렉토리의 모든 파일(*)을 songs.tar 라는 새로운 파일로 합쳐라!)
  • tar xvf 해제할파일 : 해제하기

tar 명령은 파일을 압축하지 않고 그냥 합쳐버리기만 함 → 기존 파일 복구할 때 속도 짱빠름

gzip 프로그램은 한번에 한개의 파일만 압축할 수 있음

⇒ BEST: tar 사용하여 여러 파일 1개로 뭉쳐버리고 gzip 프로그램 사용하여 압축!

gzip 명령

  • gzip 파일이름 : 선택된 파일을 압축한다
  • gzip -d 파일이름 : 선택된 파일을 해제한다

압축파일의 확장자

  • tar : tar 프로그램을 사용하여 압축된 파일, 사실 압축이 아닌 여러 파일들이 뭉쳐 있는 파일
  • gz : gzip 프로그램을 사용하여 압축된 파일
  • tar.gz : tar 으로 파일 합친 후, gzip 사용하여 압축 한 파일
  • tgz : 위의 tar.gz 을 합쳐서 tgz라는 확장자로 만들 때도 있음

압축 과정

많은 파일들 → tar을 사용하여 1개로 뭉침 → gzip을 사용하여 압축

                              (songs.tar)                          (songs.tar.gz)

총 정리

매우 중요한 여러 파일들이 있다. 이것을 백업하고자 한다!

  1. tar cvf 명령 → 파일들 하나로 합쳐버려
  2. gzip 명령 → 용량 팍팍 줄여버려
  3. 이 압축된 파일 잘 보관.. 후에 자료 손실되었다면!
  4. gzip -d 명령 → 다시 tar로 만들어
  5. tar xvf 명령 → 파일들 복구
  6. 손실된 파일들이 고스란히 되살아납니다~

Trainer 8 - 파일 만들기, 실행시키기

ㄴ 새로운 파일 만들고, 컴파일하고, 실행시키는 방법

파일의 종류

  1. 일반 텍스트 파일 (cat 명령 사용→내용 출력 ok)
  2. 프로그램 소스 파일 (컴파일을 거쳐 실행이 가능하도록 만든 후 사용)

텍스트 파일 생성법

  1. 쉘 프롬프트 상태에서 cat > 파일이름.txt 입력 ( >(리다이렉션) : 방향을 전환한다)
  2. 원하는 내용 쭉 쓰기 + 엔터
  3. Ctrl + D : 이제 그만!

리다이렉션 연속 2번 사용하기 (기존 내용 보존시키며 새로운 내용 추가)

ex. cat >> test.txt

프로그램 소스 파일 만들고 + 컴파일 + 실행 하는법

(컴파일 = 소스를 프로그램으로 만듦)

  • 컴파일 방법 : gcc -o 프로그램이름 소스파일이름 ex. gcc -o program.exe program.c

파일 실행시키는 방법

  • 절대경로 : 최상위 디렉토리 루트(/) 부터 시작되는 경로 ex. cd /home/guest/public_html/
  • 상대경로 : 자신이 위치한 디렉토리를 기준으로 경로를 따지는 것 ex. cd public_html/
  • pwd : 절대 경로 보는 법

/home/trainer8/program.exe : 절대경로 + 파일 이름 → 실행

  • . : 현재 디렉토리

./program.exe → 간편하게 실행!

Trainer 9 - 권한 정보 분석하기

ㄴ 리눅스의 권한 (Permission) 정보 분석하는 방법 알아보기

리눅스는 윈도우와 달리 한 서버에 여러 사용자가 접속하여 사용한다!

4가지 종류의 사용자

  • 유져 : 자신
  • 그룹 : 모든 유져는 하나 이상의 그룹에 속함. 임의로 그룹을 변경하지 않는 한 모든 유저는 자신의 유져네임과 같은 이름의 그룹에 속하게 됨.
  • 아더 : 유져와 그룹을 제외한 모든 다른 사람들
  • 루트 : 절대적 권한을 가지고 있는 사용자

id 명령으로 정보 분석하기

uid=2009(trainer9) gid=2009(trainer9) groups=2009(trainer9)

  • uid → User ID의 약자
  • gid → Group ID의 약자
  • groups → 현재 자신이 어떤 그룹에 속해 있는지

파일의 권한 정보 분석하는 방법

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3a7025f9-02f8-4113-97f7-f269600a5695/Untitled.png

  • rwx rwx rwx : 권한에 대한 정보 (유저의 권한, 그룹의 권한, 아더의 권한)

    (읽기권한(r), 쓰기권한(w), 실행권한(x))
  • trainer9 trainer10 : 유저, 그룹 (이 둘을 제외한 모든 아이디는 아더임)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7ab4414d-dc3d-4741-9736-eaab0bd51a62/Untitled.png

권한의 종류

  • 읽기 권한 (cat)
  • 쓰기 권한 : 그 파일의 수정권한 (cat >>)
  • 실행 권한 - 실행파일인지 아닌지 구분할 때, 실행권한 x 문자가 있는지 없는지 보고 판단

Trainer 10 - SetUID 알아보기

ㄴ Local 해킹시 핵심이 되는 SetUID 알아보기

해킹의 종류

  1. Remote 해킹 : 해킹할 서버에 아이디 가지고 있지 않을 때, 아이디 얻고자 시도하는 것

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

                       (SetUID가 걸린 파일 조작하여, 관리자 권한 얻을 수 o)
  • SetUID : 일시적으로 자신의 ID 변경하는 것 <루트의 권한 나눠가졍!>

SetUID가 걸린 파일은 수십개 ex.passwd, sendmail, crontab

(해커스쿨 Local Exploit → 해킹 기법 모아 놓은 것)

오버플로우(해킹 기법) - C언어 사용

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1e2b231d-d43f-4525-831e-ecd0f818849e/Untitled.png

따라서, SetUID가 걸려있는 파일들은 항상 해킹의 두려움 o

SetUID가 걸려있는지 아닌지 알아보기

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0859a87f-2474-451d-bbbd-c4f4924867dd/Untitled.png

  • s : SetUID를 의미, x를 포함함
  • → root에게 SetUID가 걸려있기 때문에 어느 사용자이던간에 저 파일을 실행할 때는 root의 권한을 갖게됨 ??

서버 전체에서 SetUID가 걸린 파일 찾는 방법

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 mmung2
  • -group : 그룹과 일치하는 파일을 찾는다 ex. find / -group guta
  • 조합 → find / -user root -perm -4000 : 루트의 권한으로 SetUID가 걸린 파일을 찾아라

레벨별 해킹 통과하는 방법

  1. 내 아이디가 level3 이라 해보자

  2. level4로 넘어가기 위해, level4의 권한으로 SetUID가 걸린 파일 찾기

    → ( find / -user level4 -perm -4000)

  3. 그럼 한개 이상의 파일 발견될걸

  4. 그 파일들은 임의로 작성된 "멍청한 파일" 임

  5. 그 파일을 이용하여 level4의 쉘을 얻으면 성공

  6. my-pass 입력 → level4 패스워드 나옴

0개의 댓글