War Game/[ Hacker School ] FTZ
FTZ풀기전에 참고하면 좋은 자료(trainner service)
Hackerrior
2017. 2. 14. 11:46
해커스쿨에서 제공하는 trainner service 입니다. FTZ를 접하기전에 먼저 접하고 익히면 FTZ를 풀기 수월할 것 같습니다.
- trainer1 ls : 디렉토리/파일 리스트 출력 ls -l : 디렉토리와 파일 구분 ex) -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 파일 성격 Permission 용량 생성 날짜 이름 파일/디렉토리 구분 : 앞부분이 -이면 파일, d이면 디렉토리(directory) ls -a : 숨겨진 파일 출력 (숨겨진 파일은 앞자리에 "."이 들어감) ls -al : 숨겨진 파일/디렉토리 - trainer2 (linuxer) pwd : 현재 경로 출력 cd .. : 경로를 한단계 위로 cd 디렉토리 : 경로를 한단계 내림 cd / : 최상위 디렉토리로 이동 mkdir 디렉토리명 : 디렉토리 생성 rmdir 디렉토리명 : 디렉토리 삭제 cp 파일 이름(1) 파일 이름(2) : 파일(1)을 복사하여 파일(2)로 붙여넣기 rm 파일 이름 : 파일 삭제 mv 파일 이름(1) 파일 이름(2) : 파일(1)을 복사하여 파일(2)로 오려넣기 - trainer3 (computer) w : 서버에 접속한 유저 목록 출력 ex) 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 1. 어떤 아이디로 로그인 하였는지 출력 2. 콘솔or터미널 접속 여부 | tty는 콘솔, pts는 터미널 3. 접속한 사람의 IP를 출력 4. 어느 시간에 로그인 했는지 출력 5. 지연시간 (얼마나 아무것도 입력을 않고 쉬고 있는지) 6. 각 사용자가 CPU를 사용한 지연 시간 7. WHAT 필드에 있는 명령이 지연된 시간 8. 접속된 사용자들이 현재 어떤 명령을 사용하는지 출력 finger -l : 서버에 접속한 유저 목록 자세히 출력 tty : 자신의 터미널 확인 inconfig : 접속한 서버의 ip 확인 write ID /dev/pts/번호 : 쪽지 보내기 wall "내용" : 모든 사용자에게 쪽지 보내기 - trainer4 (mungguta) ※ 최상위 디렉토리 모음 bin : 가장 필수적인 리눅스 실행 파일 (기본적인 실행 파일) boot : 리눅스 부팅 관련 파일과 커널 dev : 하드웨어에 관한 정보 etc : 패스워드 파일, 쉐도우 파일, 리눅스 설정 파일 등 (리눅스의 설정 파일) /etc/passwd : 사용자들에 대한 간단한 정보 /etc/shadow : 사용자들의 패스워드 (아무나 보지 못함) /etc/services : 어떤 서비스를 하는중인지 보여줌 /etc/issue.net : 처음 접속될 때 나오는 화면 /etc/motd : 로그인 후에 나오는 메세지 ~/public_html : 각 사용자들의 홈페이지 파일 home : 일반 사용자들의 디렉토리가 들어가는 곳 (일반 사용자들의 아이디와 작업공간) lib : 라이브러리 파일 mnt : mount 명령을 사용하여 마운트 시킨 시디롬, 플로피 디스켓 등이 들어가는 디렉토리 proc : 프로세스들이 저장 root : 루트의 홈 디렉토리 sbin : 기본 명령을 제외한 시스템 관리용 실행파일 tmp : 임시로 파일을 저장하는 디렉토리 (누구나 이 디렉토리에 파일 생성 가능) usr : 다양한 응용 프로그램들이 설치되어 있는 곳 var : 시스템 운영 중 생성 되는 각종 임시 파일과 외부 접속에 대한 로그 파일 - trainer5 (goodluck) whoami : 자신의 기본 정보 id : 자신의 자세한 기본 정보 cat /etc/passwd : 서버에서 활동중인 사람들의 계정 정보 uname -a : 리눅스의 커널 버전 ※ : root 권한이란 리눅스나 유닉스에서 모든 파일을 관리하는 절대적인 관리자 권한 cat /etc/*release : 설치된 OS의 버전 rpm -qa : 패키지의 정보 cat /proc/cpuinfo : cpu 정보 |
- trainer6 (coffee) ※ 패스워드 파일 : 한 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일 cat 파일이름 : 파일의 내용을 출력 ex) root : x : 0 : 0 : Admin : /root : /bin/bash 1 2 3 4 5 6 7 1. 로그인할 때 사용되는 아이디 2. 패스워드 3. 컴퓨터에 입력되는 사용자 아이디 4. 컴퓨터에 입력되는 그룹 5. 사용자의 이름 6. 로그인에 성공 햇을 때 기본으로 위치하게 되는 디렉토리 7. 처음 로그인 했을 때 실행되게 할 프로그램 (로그인 했을 때 쉘이 실행되는 것) - trainer7 (to the top) tar, gzip : 리눅스 압축 파일 tar : 여러 파일 합치기 tar cvf 합칠파일 합칠파일들 : 합치기 tar xvf 해제할파일 : 해제하기 c - Create : 새로운 파일을 만드는 옵션 x - eXtract : 압축을 해제시키는 옵션 v - View : 압축이 되거나 풀리는 과정을 출력하는 옵션 f - File : 파일로서 백업을 하겠다는 옵션 gzip : 한번에 한개의 파일 압축 gzip 파일이름 : 선택된 파일을 압축한다 gzip -d 파일이름 : 선택된 파일을 해제한다 ※ 리눅스 압축 확장자 tar : tar 프로그램을 사용하여 압축된 파일 gz : gzip 프로그램을 사용하여 압축된 파일 tar.gz : tar 프로그램으로 합친 후 gzip으로 압축한 파일 tgz : tar.gz와 동일 - trainer8 (plyaer) ※ 파일의 종류 1. 일반 텍스트 파일 : 글자로만 이루어진 파일로써 확장자는 .txt고 cat으로 내용 출력 2. 프로그램 소스 파일 : 컴퓨터 언어로 입력한 파일로 컴파일 과정을 거쳐 실행 ※ 텍스트 파일 생성법 1. 쉘 프롬프트 상태에서, cat > 파일이름.txt 라고 입력 ( > 는 리다이렉션이라고 읽으며 방향을 전환함) 2. 원하는 내용 입력 3. Ctrl + D 4. 수정할 경우엔 cat >> 파일이름.txt 라고 입력후 수정 ※ 소스 파일 생성법 1. 쉘 프롬프트 상태에서, cat > 파일이름.c 라고 입력 2. 컴퓨터 언어로 내용 입력 3. gcc -o 프로그램이름 소스파일이름 으로 컴파일 ※ 절대경로는 최상위 디렉토리부터 시작되는 경로, 상대경로는 자신이 위치한 디렉토리르 기준으로 따지는 경로 - trainer9 (programming) 유저 : 자신을 의미 그룹 : 자신이 속한 그룹 아더 : 유저와 그룹을 제외한 모든 다른 사람 루트 : 절대적인 권한을 가진 사람 uid : User ID의 약자로 유저 이름 gid : Group ID의 약자로 그룹의 이름 groups : 현재 자신이 어떤 그룹에 속해있는지를 확인 ※ 파일 분석법 ex) -rwxrwxrwx 1 trainer9 trainer10 5 10월 20 21:35 test1 1 2 3 4 5 6 r : 읽기 권한 w : 쓰기 권한 x : 실행 권한 s : SetUID로 x를 포함 1. 유저의 권한 2. 그룹의 권한 3. 아더의 권한 4. 유저 5. 그룹 6. 파일 이름 - trainer10 (best!) Local 해킹 : 관리자 권한(root)를 얻고자 시도 Remote 해킹 : 일반 아이디를 얻을때 SetUID : 일시적으로 자신의 ID를 변경하는 것 (잠시동안 root 권한을 가질 수 있음) ※ passwd 파일에는 SetUID가 걸려있음 find / -perm -4000 : 서버 전체에서 SetUID가 걸린 파일 찾기 - : 적어도 -perm : 권한을 찾는다 4 : SetUID 000 : rwx 모두 ※ find 명령 -perm : 권한과 일치하는 파일을 찾는다 -name : 이름과 일치하는 파일을 찾는다 -user : 유저와 일치하는 파일을 찾는다 -group : 그룹과 일치하는 파일을 찾는다 |