본문 바로가기
Wargame/FTZ

해커스쿨 FTZ trainer1~10 정리

by 맑은청이 2020. 8. 5.
728x90
반응형

시스템 해킹을 빠르게 배울 수 있는 해커스쿨에서 FTZ 를 편하게 풀려면 로컬 서버를 구축해야합니다. 

서버 구축에 관한 내용은 Shionista의 보안블로그 로 구축하실 수 있습니다. 

 

https://blog.naver.com/is_king/221490460244

 

[hackerschool FTZ] VMware에 로컬 서버 구축하기

FTZ는 hackschool.org에서 만든 시스템 해킹을 연습하기 위한 훈련장입니다.기초적인 시스템 해킹 기법...

blog.naver.com

 

Trainer1 

아이디/비번은 'trainer1'으로 동일합니다.

 

프롬프트 관련 내용

 

ls : 파일을 보여줌

-a :  숨김파일 출력, 파일 앞에 . 를 이면 숨김 파일이고 .를 제일 앞에 붙으면 숨김파일이 된다.

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

 

가장 왼쪽이 'd' 이면 디렉토리 , '-' 이면 파일

 

Trainer2 (linuxer)

pwd : 현재 자신의 경로를 출력

cd .. : 상위 폴더로 이동

cd / : 어디서나 최상위 디렉토리로 이동 

cd 절대경로 : 절대경로로 이동 

mkdir : 디렉토리 생성

rmdir : 디렉토리 삭제

cp 원본 복사본 : 원본을 복사본 이름으로 복사

 

Trainer3 (computer)

w : 사람들이 접속해있는지 확인

 

1. 어떤 ID 로 로그인되어 있는지 확인

2. tty 으면 콘솔로 접속, pts 면 터미널 접속, 뒤의 숫자는 몇번째로 접속했는지 보여줌

3. 접속한 사람의 IP 

4. 어느 시간에 로그인 했는지

5. 지연 시간, 사용자가 아무 입력 안 한 시간

6. 각 CPU 사용한 지연 시간

7. WHAT 필드에 있는 명령이 지연된 시간 

8. 접속된 사용자들이 현재 어떤 명령을 사용하고 있는지

 

finger -l : 사용자에 대한 더 많은 정보를 볼 수 있음 

tty : 자신의 터미널 정보

ifconfig : 현재 접속한 서버의 ip 를 보는 방법

 

접속한 사용자들과 대화(chating)

write ID /dev/pts/ 번호 

wall test : 모든 사용자에게 쪽지

 

 

Trainer4(mungguta)

최상위 디렉토리에 있는 폴더들 의미 확인 

- bin : 가장 필수적인 리눅스 실행 파일(rm,ls)

- boot : 리눅스 부팅 관련 파일들과 커널 존재

- dev : 컴퓨터에 설치된 하드웨어에 관한 정보들이 파일 형태로 저장 

- etc : 중요한 파일 많음, 패스워드 파일, 쉐도우 파일, 대부분의 리눅스 설정파일 

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

- lib: 많은 라이브러리 파일 

- mnt : mount 명령 사용해서 마운트 시킨 시디롬,플로피 디스켓들이 들어있는 디렉토리

- proc : 프로세스들이 파일 형태로 저장

- root : 일반 사용자의 디렉토리와는 달리 root 만의 디렉토리 존재

- abin : 기본 명령들을 제외한 시스템 관리용 실행 파일들이 들어있는 디렉토리

- tmp : 임시로 파일을 저장하는 디렉토리로서, 권한이 상관없이 생성가능한 곳

- usr : 다양한 으용 프로그램들이 설치되어 있음 

- var : 시스템 운영 중에 생성되는 임시 파일 들어 있음 , 외부 접속에 대한 로그 파일들이 저장되어 있음 

 

 

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

- /etc/shadow : 사용자들의 패스워드 들어 있음

- /etc/services : 서버가 어떤 서비스 하는 중인지 보여줌

- /etc/issue.net : 처음 접속될 때 나오는 화면

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

- ~/public_html : 각 사용자들의 홈페이지 파일 들어 있음. 보통 해킹에 성공하면 여기 흔적을 남김  

 

 

Trainer5(goodluck)

whoami : 자신이 누군지 출력  

id : 자신에 대한 자세한 정보

uname -a : 커널 버전 보기

cat /etc/*release : OS 가 어떤 서버인지 

 

rpm -qa : 패키지의 정보 확인 -> 이를 보고 해킹 가능 여부를 알 수 있다. 

cat /proc/cpuinfo : 해당 서버의 cpu 정보를 수집

 

Trainer6(coffee)

root : 서버에 로그인할 때 사용되는 아이디

x : 암호

0 : 숫자를 통해 사용자 판단 

0 : 숫자를 통해 그룹 판단 

Admin : 사용자 이름 

/root : 해당 사용자가 로그인에 성공 했을 때 기본으로 위치하게 되는 디렉토리

/bin/bash : 처음 로그인 했을 때 실행되게 할 프로그램 

 

Trainer7(to the top) 

tar 사용법 

-c Create : 새로운 파일 만들기

-x eXtract : 압축 해제

 

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

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

 

tar cvf songs.tar * 

 

tar 은 사실 압축이 아니라 한 파일로 묶는 역할

-> 용량이 오히려 증대함.

따라서 gzip 으로 압축을 해주어야함. 

gzip 은 하나밖에 압축을 못해주기 때문에 결론은 tar 로 한개로 합친 다음 이를 gzip 으로 압축해줌 

gzip -d : 압축 해제 

 

Trainer8 (player) 

cat > test.txt

> 은 리다이렉션. 입력 받은 걸 오른쪽으로 보내주겠다 . 하는 의미 컨트롤 +D 를 눌리면 멈춤 

덧붙일려면 cat >>test.txt 하면 됨 

 

cat > program.c

컴파일 

gcc -o program.exe program.c

 

파일을 실행시키려면 절대경로를 모두 입력시켜줘야 실행됨

너무 귀찮으니깐 현재경로라는 의미인 '.' 을 넣어줘서 실행시킴

 

Trainer9( programming)

유저 : 자신

그룹 : 모든 유저는 하나 이상의 그룹에 속해 있음

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

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

 

id : 자신의 정보 출력 

 

uid : user id

gid : group id

groups : 현재 자신이 어떤 그룹에 속해 있는지

유저의 권한 ,그룹의 권한, 아더의 권한 

r : 읽기 권한

w : 쓰기 권한

x : 실행 권한 

 

리눅스에서는 확장자(exe,bat,com) 인지만 보고 실행 파일인지 구분을 못함. x 가 있는지 없는지보고 판단 

 

Trainer10(best!)

 

해킹의 종류 2가지

1. 로컬 해킹 : 해킹하고자 하는 서버에 계정을 가지고 있을 때 루트 권한을 얻을 려고 하는 해킹

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

 

중요한 건 SetUID 

SetUID 가 걸린 파일을 조작해서 권리자 권한을 얻을 수 있게 된다. 

 

SetUID는 일시적으로 자신의 ID 를 변경하는 것을 말함 

 

비밀번호가 들어있는 /etc/shadow 는 루트 권한이 있어서 변경 할 수 있다. 

근데 우리는 비밀번호를 변경할 수 있다. 왜 일까 ?

답은 SetUID 

자신의 암호를 변경하는 passwd 파일이 루트 권한의 SetUID 가 걸려 있어서 이 파일을 설정하는 동안 '일시적으로 루트의 권한'을 얻게 된다.

 

SetUID 가 걸려있는 파일에 일부러 버퍼오버플로우를 내서 에러가 날 때 /bin/bash 파일을 실행

-> 루트 쉘 권한 획득  

 

 

s 가 바로 SetUID 를 이미 

 

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

 

 

find / -perm -4000 

" / 에서 부터 적어도 SetUID 가 걸린 모든 파일을 찾아라 "

-perm 은 '권한을 찾겠다' 라는 옵션

4 자가 바로 SetUID 의미 

'000' 은 rwx 의미 

 

find 명령 옵션

-perm : 권한을 찾겠다

-name : 이름과 일치하는 파일 찾음

-user : 유저와 일치하는 파일 찾음

-group : 그룹과 일치하는 파일 찾음

 

 

해커스쿨 트레이닝을 끝냈습니다. 이제 level 20개를 깨러 가보겠습니다. 

728x90
반응형

'Wargame > FTZ' 카테고리의 다른 글

FTZ level4 복기  (0) 2020.11.18
FTZ level3 풀이 복기  (0) 2020.11.17
FTZ level2 풀이 복기  (0) 2020.11.12