🌇│System_Study/📕│HackerSchool_FTZ

Trainer

2022. 3. 14. 20:26
목차
  1. Trainer1
  2. Trainer2
  3. Trainer3
  4. Trainer4
  5. Trainer5
  6. Trainer6
  7. Trainer7
  8. Trainer8
  9. Trainer9
  10. Trainer10

https://www.flaticon.com/premium-icon/hacker_924915?term=hacker&page=1&position=3&page=1&position=3&related_id=924915&origin=search

더보기

💡Trainer 비번
root - hackerschool │guest - guest │trainer1 - trainer1│trainer2 - linuxer│trainer3 - compute

trainer4 - mungguta│trainer5 - goodluck│trainer6 - coffee│trainer7 - to the top│trainer8 - player

trainer9 - programming│trainer10 - best!


Trainer1

리눅스를 처음 접속하면 "prompt"가 나타나며, 서버에 성공적으로 로그인 되었다는 것을 의미한다.


더보기

💡 [trainer@ ftz trainer1]$

     접속ID 서버 현재위치


ls  : 리스트 출력

ls -l  : 파일 & 디렉터리


더보기

 💡  파일 성격         Permission          용량     생성 날짜         이름

      rw-rw-r-- 1    trainer1 trainer1    779     9월 24 18:37   start.txt

      drwxr-xr-x 2  trainer2 trainer2    1024    9월 24 11:52     tmp

파일/디렉터리 구분 : 앞부분이 -이면 파일, d이면 디렉터리(directory)

ls -a  : 숨겨진 파일 리스트 출력 (숨겨진 파일은 앞자리에 "."이 들어감)

ls -al  : 숨겨진 파일 & directory list 출력

 


Trainer2

pwd : 현재 경로 출력


더보기

👉 [trainer2@ftz trainer2]$ pwd

/home/trainer2

[trainer2@ftz trainer2]$


cd : 경로 이동


더보기

👉[trainer2@ftz trainer2]$ pwd

/home/trainer2

 

[trainer2@ftz trainer2]$ cd ..

[trainer2@ftz home]$ pwd /home

 

[trainer2@ftz home]$ cd trainer2

[trainer2@ftz trainer2]$ pwd

/home/trainer2

 

[trainer2@ftz trainer2]$ cd /

[trainer2@ftz /]$


mkdir [디렉터리명] : 디렉터리 생성


더보기

👉[trainer2@ftz trainer2]$ mkdir linuxer

[trainer2@ftz trainer2]$ ls -al

drwxrwxr-x 2 trainer2 trainer2 1024 9월 25 16:36 linuxer


rmdir [디렉터리명] : 디렉터리 삭제


더보기

👉 [trainer2@ftz trainer2]$ rmdir linuxer

[trainer2@ftz trainer2]$ ls -al

 


cp [복사할 파일명] [복사된 파일명] : 파일 복사


더보기

👉 [trainer2@ftz trainer2]$ copy 복사원본 복사사본

[trainer2@ftz trainer2]$ ls -al

rw-rw-r-- 1 trainer2 trainer2 5 9월 25 11:18 복사원본

-rw-rw-r-- 1 trainer2 trainer2 5 9월 25 12:50 복사사본


rm [파일명] : 파일 제거


더보기

👉 [trainer2@ftz trainer2]$ remove 복사사본

[trainer2@ftz trainer2]$ ls -al

rw-rw-r-- 1 trainer2 trainer2 5 9월 25 11:18 복사원본


mv [변경할 파일명] [변경된 파일명] : 이름 변경 or 잘라내기-붙여넣기


더보기

👉 [trainer2@ftz trainer2]$ mv 복사원본 복사사본

[trainer2@ftz trainer2]$ ls -al

-rw-rw-r-- 1 trainer2 trainer2 5 9월 25 12:50 복사사본

 


Trainer3

w : 서버에 접속자 보기 / TTY 콘솔접속(telnet etc..), PTS 터미널 접속

  1. 어떤 아이디로 로그인 하였는지 출력
  2. 콘솔 or 터미널 접속 여부 ( tty는 콘솔, pts는 터미널)
  3. 접속한 사람의 IP를 출력
  4. 어느 시간에 로그인 했는지 출력
  5. 지연시간 (얼마나 아무것도 입력을 하지 않고 쉬고 있는지)
  6. 각 사용자가 CPU를 사용한 지연 시간
  7. WHAT 필드에 있는 명령이 지연된 시간
  8. 접속된 사용자들이 현재 어떤 명령을 사용하는지 출력

더보기

💡 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                3                           4                5             6             7              8


finger -l : 서버에 접속한 사용자 정보 자세히 보기


더보기

💡 [trainer3@ftz trainer3]$ finger -l

Login: guest                                                                                                     Name: 손님

Directory: /home/guest                                                                              Shell: /bin/bash

Last login Tue Sep 26 08:08 (KST) on 0 from 192.168.0.2

2통의 메일이 도착되어 있습니다.

예약된 작업이 없습니다.


tty : 자신의 터미널 정보 확인


더보기

💡 [trainer3@ftz trainer3]$ tty

/dev/pts/0


ifconfig : 현재 접속한 서버의 IP 확인


더보기

💡 [trainer3@ftz trainer3]$ ifconfig

eth0                          Link encap:Ethernet                           HWaddr 00:01:2B:20:13:DA

inet addr:211.195.119.130            Bcast:211.195.119.191                Mask:255.255.255.192

UP BROADCAST NOTRAILERS RUNNING MTU:1500 Metric:1

RX packets:862 errors:0 dropped:0 overruns:0 frame:0

TX packets:191 errors:33 dropped:0 overruns:0 carrier:33

collisions:3 txqueuelen:100

Interrupt:12 Base address:0xe800


write ID /dev/pts/번호 : 쪽지 보내기

❗❗Guest로 서버에 접속 후 하기! - 끝낼려면 Ctrl+d

더보기

💡 [trainer3@ftz trainer3]$ w

18:10:14          up            1:42,               3 users,              load average:   0.00,     0.00,   0.00

USER              TTY                     FROM                      LOGIN@      IDLE    JCPU   PCPU   WHAT

root                 tty1                          -                            5:01pm       3:08      0.04s   0.04s   -bash

trainer3         pts/0             192.168.1.1                 6:06pm       0.00s    0.00s   0.00s   -sh

guest              pts/1             192.168.1.1                  6:08pm      21.00s  0.01s   0.01s   -bash

[trainer3@ftz trainer3]$ write guest /dev/pts/1

Hi

Bye


wall "내용" : 모든 사용자에게 쪽지 보내기

❗❗Guest로 서버에 접속 후 하기!

더보기

💡 [trainer3@ftz trainer3]$ wall test

testBroadcast message from trainer3 (pts/0) (Wed Mar 2 18:22:31 2022):

test


Trainer4

※ 최상위 디렉터리 모음

  • bin  : 가장 필수적인 리눅스 실행 파일. (기본적인 실행 파일) - ls, rm 모두 이곳에 들어가 있음
  • boot : 리눅스 부팅 관련 파일과, 커널
  • dev : 컴퓨터에 설치된 하드웨어에 관한 정보
  • etc : 패스워드 파일, 쉐도우 파일, 리눅스 설정 파일 등...

더보기

💡 etc/passwd  : 사용자들에 대한 간단한 정보

/etc/shadow  : 사용자들의 패스워드 (아무나 보지 못함)

/etc/services  : 서버가 어떤 서비스를 활성화중인지 보여줌

/etc/issue.net  : 처음 접속될 때 나오는 화면.  ex) 해커스쿨의 F.T.Z에 오신걸 환영!

/etc/motd  : 로그인 후에 나오는 메세지

~/public_html  : 각 사용자들의 홈페이지 파일. 보통 해킹에 성공하면 이 파일을 수정하여 hacked by xxx라는 문구를 남김

etc/os-release : os에 대한 정보 확인


  • home : 일반 사용자들의 디렉터리가 들어가는 곳. guest와 trainer1-10, level 1-10 모두 이 디렉터리 안에 속해 있음
  • lib : 라이브러리 파일
  • mnt : mount 명령을 사용하여, 마운트 시킨 시디롬 등이 들어가는 디렉터리
  • proc : 프로세스들이 파일 형태로 저장되는 디렉터리
  • root : 루트의 홈 디렉터리
  • sbin : 기본 명령을 제외한 시스템 관리용 실행 파일
  • tmp : 임시로 파일을 저장하는 디렉터리 (누구나 이 디렉터리에 파일 생성 가능)
  • usr : 다양한 응용 프로그램들이 설치되어 있는 곳
  • var : 시스템 운영 중에 생성되는 각종 임시 파일과 외부 접속에 대한 로그 파일

Trainer5

※ 정보를 수집하는 방법!

 

whoami : 자신의 기본 정보


더보기

💡 [trainer5@ftz trainer5]$ whoami

trainer5


id : 자세한 자신의 정보


더보기

💡 [trainer5@ftz trainer5]$ id

uid=2005(trainer5) gid=2005(trainer5) groups=2005(trainer5)


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


더보기

💡 [trainer5@ftz trainer5]$ cat /etc/passwd

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

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin


uname -a : 커널 버전 확인


더보기

💡 [trainer5@ftz trainer5]$ uname -a

Linux ftz.hackerschool.org http://ftz.hackerschool.org 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux

※ root 권한이란 리눅스나 유닉스에서 모든 파일을 관리하는 절대적인 관리자 권한


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

❗❗Hacker_FTZ는 레드햇이기에 명령어의 차이가 있다

더보기

💡 [trainer5@ftz trainer5]$ cat /etc/*release

Red Hat Linux release 9 (Shrike)


rpm -qa : 패키지 정보

❗❗레드햇이라 명령어가 위와 같고 rpm = redhat package manager 보통의 경우에는 vi /etc/apt/sources.list

더보기

💡 [trainer5@ftz trainer5]$ rpm -qa

setup-2.5.25-1 bzip2-libs-1.0.2-8 e2fsprogs-1.32-6 glib-1.2.10-10 iputils-20020927-2


cat /proc/cpuinfo : cpu 정보


더보기

💡 [trainer5@ftz trainer5]$ cat /proc/cpuinfo

processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 14 model name : Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz stepping : 12 cpu MHz : 2304.685


Trainer6

※ 패스워드 파일 분석 방법


더보기

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

        1         2     3     4           5               6                7


  1. 로그인할 때 사용되는 아이디
  2. 패스워드 - 사용자들의 패스워드만 모아 새로운 파일을 만듦 (/etc/shadow)
  3. 컴퓨터에 입력되는 사용자 아이디 (컴퓨터 입장에서의 root라는 의미)
  4. 해당 사용자가 속해있는 그룹
  5. 사용자의 이름
  6. 로그인에 성공 했을 때 기본으로 위치하게 되는 디렉터리
  7. 처음 로그인 했을 때 실행되게 할 프로그램 (로그인 했을 때 쉘이 실행되는 것)

Trainer7

※ 리눅스 환경에서 압축하고, 해제하는 방법 (tar, gzip)

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

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

즉, tar는 속도면에서 볼 때 백업용 프로그램으로 따라올 자가 없음

 

$ tar cvf [합칠파일] [합칠파일들]
$ tar xvf [해제할파일]

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

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

그렇기 때문에 tar를 사용하여 여러 파일을 1개로 뭉쳐버리고, gzip 프로그램을 사용하여 압축해 버리면 됨!

$ gzip [파일이름]  : 압축
$ gzip -d [파일이름]  : 압축 해제

※ 리눅스 압축 확장자 형태

tar : tar 프로그램을 사용하여 압축된 파일 (여러 파일들이 하나로 뭉쳐져 있는 파일)
gz : gzip 프로그램을 사용하여 압축된 파일
tar.gz : tar 프로그램을 사용하여 파일을 합친 후, gzip을 사용하여 압축한 파일
tgz : 위의 tar.gz과 동일

Trainer8

텍스트 파일 생성법

  1. 쉘 프롬프트 상태에서 $ cat > 파일이름.txt 라고 입력 ('>' 리다이렉션)
  2. 원하는 내용 입력
  3. Ctrl + D
  4. 내용을 추가할 경우 리다이렉션을 두번 입력한다. $ cat >> 내용추가할파일.txt

더보기

💡 [trainer8@ftz trainer8]$ cat > test.txt

안녕하세요 라라라랄

라라라라

 

[trainer8@ftz trainer8]$ cat >> test.txt← 초기화X 이어서

bbbㅠㅠㅠ


소스 파일 생성법

  1. 쉘 프롬프트 상태에서 $ cat > 파일이름.c 라고 입력
  2. 컴퓨터 언어로 내용 입력
  3. $ gcc -o [파일이름1] [파일이름2]  : 파일이름2를 파일이름1로 컴파일한다.

※ 절대경로는 최상위 디렉터리부터 시작되는 경로

※ 상대경로는 자신이 위치한 디렉터리를 기준으로 따지는 경로


더보기

💡 [trainer8@ftz trainer8]$ vi programe.c

[trainer8@ftz trainer8]$ gcc -o programe.exe programe.c



Trainer9

id 설명

user : 자신을 의미
group : 자신이 속한 그룹
other : user와 group을 제외한 모든 다른 사람
root : 절대적인 권한을 지닌 사람

 

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

  • uid : User ID의 약자. 컴퓨터가 알아보기 쉽게 숫자를 부여한 것. (trainer9 = 2009)
  • gid : Group ID의 약자. 특별한 일이 없는 한 gid는 항상 uid와 같음.
  • groups : 현재 자신이 어떤 그룹에 속해 있는지를 보여줌. (default uid와 같음)

파일 분석법


더보기

💡 rwx rwx rwx 1 trainer9 trainer10 5 10월 20 21:35 test

        1      2      3            4                5                                             6


r(읽기) w(쓰기) x(실행) s(SetUID로 x를 포함)

user의 권한                                                 group의 권한                                            Other의 권한
User                                                             Group                                                     파일 이름​

 


Trainer10

local 해킹 시 핵심이 되는 SetUID 설명

❗❗Local 해킹 : 관리자 권한 (root)를 얻고자 시도

❗❗Remote 해킹 : 일반 아이디를 얻을 때

 

SetUID : 일시적으로 자신의 ID를 변경하는 것 (잠시동안 root 권한을 가질 수 있음)

  • Set이란 말은 "변경하다"란 뜻을 가지고 있고, UID는 User ID의 약자입니다. 따라서 SetUID는 "일시적으로 자신의 ID를 변경하는 것"을 의미합니다.

지금까지 발견된 기법

  • 레이스컨디션
  • IFS버그
  • 링크버그
  • 버퍼 오버플로우

이러한 버그에 의해 루트 권한을 넘겨준 파일

  • userhelper
  • imwheel-solo
  • restore
  • screen

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


더보기

💡$ find / -perm -4000


※find 명령어 옵션

  • perm 권한과 일치하는 파일을 찾는다. ex) # find / -perm 4755
  • name 이름과 일치하는 파일을 찾는다. ex) # find / -name cat
  • user 유저와 일치하는 파일을 찾는다. ex) # find / -user mmung2
  • group 그룹과 일치하는 파일을 찾는다. ex) # find / -group guta
저작자표시 비영리 변경금지 (새창열림)

'🌇│System_Study > 📕│HackerSchool_FTZ' 카테고리의 다른 글

HackerSchool_level5  (0) 2022.06.30
HackerSchool_level4  (0) 2022.04.07
HackerSchool_level3  (0) 2022.04.06
HackerSchool_level2  (0) 2022.04.06
HackerSchool_level1  (0) 2022.04.06
  1. Trainer1
  2. Trainer2
  3. Trainer3
  4. Trainer4
  5. Trainer5
  6. Trainer6
  7. Trainer7
  8. Trainer8
  9. Trainer9
  10. Trainer10
'🌇│System_Study/📕│HackerSchool_FTZ' 카테고리의 다른 글
  • HackerSchool_level4
  • HackerSchool_level3
  • HackerSchool_level2
  • HackerSchool_level1
Jastes
Jastes
Jastes
Jastes
Jastes
전체
오늘
어제
  • 분류 전체보기 (178) N
    • 📚│War_Game (13)
      • 🏫│Genius_SW (3)
      • 📖│CTF-d (1)
      • 😘│CTF (2)
      • 📑│Contest (7)
    • 🌇│System_Study (92)
      • 📕│Dreamhack_Hacking (50)
      • 📗│Dreamhack_Reversing (8)
      • 📕│HackerSchool_FTZ (13)
      • 📙│lazenca_Study (0)
      • 🪙│Pwnable.kr (8)
      • 🪙│Pwnable.tw (0)
      • 🔒│H4C_5기 (10)
      • 🔍│Etc.. (3)
    • 🔬│Reversing & Cryptography (3)
      • 📕│CodeEnge (2)
      • 🔐│Cryptography (0)
      • 🔍│Etc.. (1)
    • 🌆│Web_Study (25)
      • 📘│Dreamhack_Hacking (5)
      • 📖│Dreamhack_War_Game (4)
      • 🔬│DVWA (3)
      • 🚠│Lord_of_SQLInjection (4)
      • 🥊│pentestgym (8)
      • 🔍│Etc.. (1)
    • 💻│IT_Study (30)
      • 📰│DB_Study (2)
      • 🎓│SW_Engineering (4)
      • 📟│System_Study (6)
      • 🛫│Web_Study (8)
      • 📻│network_study (1)
      • 💾│AI (0)
      • 🧭│CS_Study (0)
      • 😨│억까_모음 (5)
      • 🔍│Etc.. (4)
    • 📋│Study (10)
      • 🤔│대외 교육 (0)
      • 😍│Step Mentoring (5)
      • 😘│🤔Security Mentoring (3)
      • 📝│Cover_letter (2)
    • 😘│😒 Expansion_Society (5)
      • 📚│Book report (1)
      • 😒│My_History (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 보안에 대하여 궁금하신 분

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By github 참고
Jastes
Trainer
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.