본문 바로가기

Write-Up/해커스쿨 FTZ

해커스쿨 FTZ trainer1~10 정리

Trainer1

[trainer1@ftz trainer1]$
   ↑      ↑    ↑
 접속ID  서버 현재위치

- ls : 리스트 출력

- ls -l : 디렉토리와 파일을 구분하여 출력

파일성격 permission 용량 생성날짜 이름 순으로 출력됨

-rw-rw-r--    1 trainer1 trainer1      779  9월 24 18:37 start.txt
drwxr-xr-x    2 trainer1 trainer1     1024  9월 24 11:52 tmp

 

-rw-rw-r--처럼 앞부분이 -면 파일, drwxr-xr-x d이면 디렉터리

- ls -a : 숨겨진 파일찾기

숨겨진 파일은 앞자리에 .(dot)이 들어감

- ls -al : 숨겨진파일 디렉터리 리스트 출력

Trainer2

- pwd : 현재 경로 출력

- cd : 경로 이동 (cd .. :한단계 위로이동, cd / : 한번에 최상위 디렉토리로 이동)

- mkdir : 디렉터리 생성

- rmdir : 디렉터리 삭제

- cp : 파일 복사

- rm : 파일 삭제

- mv :  이름변경

 

 

Trainer3

- w : 서버 접속자 보기

 

 12:51pm  up 2 days,  5:23,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT
root     tty1     -                12:51pm  0.00s  0.20s  0.03s  w
guest    pts/0    210.95.24.129    03:21am  3.10m  0.12s  0.01s  -bash

 ①       ②         ③              ④       ⑤     ⑥     ⑦    ⑧

 

 

  1. 어떤 아이디로 로그인했는지 출력
  2. 콘솔로 접속했는지 터미널로 접속했는지 (tty는 콘솔, pts는 터미널)
  3. 접속한 사람의 ip
  4. 어느 시간에 로그인 했는지 출력
  5. 지연시간 (입력하기전 대기시간)
  6. 각 사용자가 CPU를 사용한 지연 시간
  7. WHAT필드에 있는 명령이 지연된 시간
  8. 접속된 사용자들이 현재 어떤 명령을 출력하는지

- finger -l : 서버 접속 사용자 많은 정보 보기

- tty : 자신의 터미널 확인하는 방법

- ifconfig : 현재 접속한 ip확인

 

 

Trainer4

- bin : 가장 필수적인 리눅스 실행파일. ls, rm 모두 이곳에 들어가있음

- boot : 리눅스 부팅관련 파일들과 리눅스 심장인 커널이란것이 들어가있다.

- dev : 하드웨어 관련 정보를 파일형태로 저장

- etc : 패스워드 파일, 쉐도우 파일, 리눅스 설정 파일 등등..

- /etc/passwd    : 사용자들에 대한 간단한 정보가 들어있습니다.
- /etc/shadow    : 사용자들의 패스워드가 들어있습니다.
                   아무나 보지 못하도록 설정되어있지요.
- /etc/services  : 서버가 어떤 어떤 서비스를 하는중인지 보여줍니다.
- /etc/issue.net : 처음 접속될 때 나오는 화면 입니다.
                   해커스쿨의 F.T.Z에 오신걸 환영합니다!
                   라는 문구도 이 곳에 들어가 있습니다.
- /etc/motd      : 로그인 후에 나오는 메세지가 들어가 있습니다.
- ~/public_html  : 각 사용자들의 홈페이지 파일이 들어가 있습니다.
                   보통 해킹에 성공하면 이 파일을 수정하여,
                   hacked by xxx 라는 문구를 남깁니다.

- home : 일반 사용자들의 디렉터리 있는곳

- lib : 라이브러리 파일

- mnt : mount 명령을 사용하여 마운트 시킨 시디롬 플로피 디스켓등이 들어가는 디렉

- porc : 프로세스들이 파일 형태로 저장되는 디렉토리

- root : 루트 홈디렉토리

- sbin : 기본 명령을 제외한 시스템 관리용 실행파일

- tmp : 임시로 파일을 저장하는 디렉

- usr : 다양한 응용 프로그램들이 설치되어 있는곳

- var : 시스템 운영중에서 생성되는 각종 임시 파일이 들어가있음, 외부로그 파일들이 저장되는곳

 

 

Trainer5

- whoami : 자신의 기본 정보

- id : 좀더 자세한 자신의 정보

- cat /etc/passwd : 서버에서 활동중인 사람들의 계정 정보

가장 왼쪽 단어가 사용자들의 아이디

- uname -a : 커널 버전 확인

2.4.20버전

- cat /etc/*release : 설치된 OS버전 확인

- rpm -qa  : 패키지 정보

- cat /proc/cpuinfo  : cpu 정보

intel celeron cpu

※ cat : 파일의 내용을 간단하게 출력할 때도 사용하지만, cat명령어 이름처럼 두 개 이상의 파일을 연결(concatenate)해서 출력할 때 사용하는 것이 기본

 

 

Trainer6

※ 패스워드 파일 분석 방법

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

cat /etc/passwd

root : x : 0 : 0 : Admin : /root : /bin/bash

  1    2   3   4     5        6          7

  1. 로그인할 때 사용되는 아이디(계정)
  2. 패스워드 (x만 보여지는데 이것은 암호화기법, 사용자 패스워드만 모아서 새로운 파일을 만듬 etc/shadow)
  3. 컴퓨터가 인지하는 사용자의 아이디 (root를 0으로 판단)
  4. 해당 사용자가 속해있는 그룹
  5. 사용자의 이름
  6. 로그인 했을때 기본으로 위치하게 되는 디렉토리
  7. 처음 로그인 했을때 쉘이 실행되는 것

 

Trainer7

리눅스 압출을 할 때 사용되는 명령어 두 개 tar, gzip

 

tar 사용법

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

"해제하기 : tar xvf 해제할파일"

 

c -Create : 새로운 파일을 만드는 옵션

x -eXtract : 압축을 해제시키는 옵션

v -View : 압축이 되거나 풀리는 과정을 출력하는 옵션

f - File : 파일로서 백업을 하겠다는 옵션

 

※ tar은 사실 압축 프로그램이 아님, 압축을 하면 용량이 줄어야하는데 늘기 때문

일단 파일을 압축하지 않고 그냥 합쳐버리기만 하니 기존 파일을 복구 할때 속도가 엄청나게 빠름

tar은 속도면에서 백업용 프로그램으로 적합

 

gzip 사용법

"gzip 파일이름 -선택된 파일을 압축한다 "

"gzip -d 파일이름 -선택된 파일을 해제한다 "

 

리눅스 압축 확장자 형태

tar : tar프로그램을 사용하여 압축된 파일 ( 사실 압축이 아닌 여러 파일들이 하나로 뭉쳐있는 파일)

gz : gzip 프로그램을 사용하여 압축된 파일

tar.gz : tar 프로그램을 사용하여 파일을 합친 후, 또 다시 gzip을 사용하여 압축을 한 파일

tgz : 위의 tar.gz 을 합쳐서 tgz라는 확장자로 만들 때

 

 

Trainer8

- 텍스트 파일 생성법

1. 쉘 프롬프트 상태에서,  cat > 파일이름.txt 라고 입력한다. ( '>' 리다이렉션 : 출력 방향을 바꿈)

2. 원하는 내용을 쓴다.

3. ctrl + d

4. 내용 수정시 >> ( 리다이렉션 두번) 입력 후 추가할 파일

 

-소스파일 생성방법

1. cat > filename.c

2. input str

3. gcc -o filename.exe filename.c

 

 

Trainer9

리눅스에 4가지 종류의 사용자

 

유져 : 자신을 의미

그룹 : 자신이 속한 그룹

아더 : 유저와 그룹을 제외한 모든 다른 사람

루트 : 절대적 권한을 가지고 있는 사용자

 

uid : User ID약자. 컴퓨터가 숫자로 누구인지 판단 (trainer9 = 2009)

gid : Group ID의 약자. 특별한 일이 없는 한 gid는 항상 uid와 같다

groups : 현재 자신이 어떤 그룹에 속하고 있는지를 말해준다. 임의로 변경 하지 않는 한 uid와 같은그룹에 속함

 

-rwxrwxrwx    1 trainer9 trainer10        5 10월 20 21:35 test1
  ③ ⑤ ⑦         ②       ④                            ①

 

  1. test라는 파일은
  2. trainer9라는 uid를 가진 사용자에게
  3. 읽기(r), 쓰기(w), 실행(x) 권한이 있고
  4. trainer10 이라는 gid를 가진 사용자에게도
  5. 읽기(r), 쓰기(w), 실행(x) 권한이 있고
  6. trainer9와 10을 제외한 사람도
  7. 읽기(r), 쓰기(w), 실행(x) 권한이 있다

즉 test1라는 파일은 아이디를 가지고 있는 사람이라면 누구나 마음데로 변경할 수 있는 파일이다.

 

 

Trainer10

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

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

SetUID : 일시적으로 자신의 ID를 변경하는 것을 말한다.

 

s -> SetUID의미 s가 x를 포함한다.

 

find / -perm -4000 = ' / 에서 부터, 적어도 SetUID가 걸린 모든 파일을 찾아라 "

 

find 명령

옵션 :  -perm   권한과 일치하는 파일을 찾는다.
                ex) find / -perm 4755
        -name   이름과 일치하는 파일을 찾는다.
                ex) find / -name cat
        -user   유져와 일치하는 파일을 찾는다.
                ex) find / -user mmung2
        -group  그룹과 일치하는 파일을 찾는다.
                ex) find / -group guta

'Write-Up > 해커스쿨 FTZ' 카테고리의 다른 글

FTZ level5  (0) 2021.03.11
FTZ level4  (0) 2021.03.11
FTZ level3  (0) 2021.03.11
FTZ level2  (0) 2021.03.11
FTZ level 1  (0) 2021.03.11