$ telnet 115.68.23.201
[FTZ] 01. 해커스쿨 FTZ Training 요약
trainer2의 비밀번호는 linuxer 입니다.
trainer3의 비밀번호는 computer 입니다.
trainer4의 비밀번호는 mungguta 입니다.
trainer5의 비밀번호는 goodluck 입니다.
trainer6의 비밀번호는 coffee 입니다. ※ guest 아이디로 로그인 하여 복습하는 것을 잊지말자!!
trainer7의 비밀번호는 to the top 입니다.
trainer8의 비밀번호는 player 입니다.
trainer9의 비밀번호는 programming 입니다.
trainer10의 비밀번호는 best! 입니다.
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 trainer2 trainer2 1024 9월 24 11:52 tmp
파일/디렉터리 구분 : 앞부분이 -이면 파일, d이면 디렉터리(directory)
ls -a : 숨겨진파일 리스트 출력 (숨겨진 파일은 앞자리에 "."이 들어감)
ls -al : 숨겨진파일&디렉터리 리스트 출력
Trainer2
pwd : 현재 경로 출력
cd : 경로 이동
mkdir [디렉터리명] : 디렉터리 생성
rmdir [디렉터리명] : 디렉터리 삭제
cp [복사할 파일명] [복사된 파일명] : 파일 copy
rm [파일명] : 파일 remove
mv [변경할 파일명] [변경된 파일명] : 이름 변경 or 잘라내기-붙여넣기
Trainer3
w : 서버에 접속자 보기 / TTY 콘솔접속, PST 터미널 접속
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
2. 콘솔 or 터미널 접속 여부 ( tty는 콘솔, pts는 터미널)
3. 접속한 사람의 IP를 출력
4. 어느 시간에 로그인 했는지 출력
5. 지연시간 (얼마나 아무것도 입력을 하지 않고 쉬고 있는지)
6. 각 사용자가 CPU를 사용한 지연 시간
7. WHAT 필드에 있는 명령이 지연된 시간
8. 접속된 사용자들이 현재 어떤 명령을 사용하는지 출력
finger -l : 서버에 접속한 사용자 정보 자세히 보기
tty : 자신의 터미널 정보 확인
ifconfig : 현재 접속한 서버의 IP 확인
write ID /dev/pts/번호 : 쪽지 보내기
wall "내용" : 모든 사용자에게 쪽지 보내기
Trainer4
※ 최상위 디렉터리 모음
- bin : 가장 필수적인 리눅스 실행 파일. (기본적인 실행 파일) - ls, rm 모두 이곳에 들어가 있음
- boot : 리눅스 부팅 관련 파일과, 커널
- dev : 컴퓨터에 설치된 하드웨어에 관한 정보
- etc : 패스워드 파일, 쉐도우 파일, 리눅스 설정 파일 등...
/etc/shadow : 사용자들의 패스워드 (아무나 보지 못함)
/etc/services : 서버가 어떤 서비스를 활성화중인지 보여줌
/etc/issue.net : 처음 접속될 때 나오는 화면. ex) 해커스쿨의 F.T.Z에 오신걸 환영합니다!
/etc/motd : 로그인 후에 나오는 메세지
~/public_html : 각 사용자들의 홈페이지 파일. 보통 해킹에 성공하면 이 파일을 수정하여 hacked by xxx라는 문구를 남김
- home : 일반 사용자들의 디렉터리가 들어가는 곳. guest와 trainer1-10, level 1-10 모두 이 디렉터리 안에 속해 있음
- lib : 라이브러리 파일
- mnt : mount 명령을 사용하여, 마운트 시킨 시디롬 등이 들어가는 디렉터리
- proc : 프로세스들이 파일 형태로 저장되는 디렉터리
- root : 루트의 홈 디렉터리
- sbin : 기본 명령을 제외한 시스템 관리용 실행 파일
- tmp : 임시로 파일을 저장하는 디렉터리 (누구나 이 디렉터리에 파일 생성 가능)
- usr : 다양한 응용 프로그램들이 설치되어 있는 곳
- var : 시스템 운영 중에 생성되는 각종 임시 파일과 외부 접속에 대한 로그 파일
Trainer5
※ 정보를 수집하는 방법!
- whoami : 자신의 기본 정보
- id : 자세한 자신의 정보
- cat /etc/passwd : 서버에서 활동중인 사람들의 계정 정보
- uname -a : 커널 버전 확인
※ root 권한이란 리눅스나 유닉스에서 모든 파일을 관리하는 절대적인 관리자 권한
- cat /etc/*release : 설치된 OS 버전 확인
- rpm -qa : 패키지 정보
- cat /proc/cpuinfo : cpu 정보
Trainer6
※ 패스워드 파일 분석 방법
root : x : 0 : 0 : Admin : /root : /bin/bash
1 2 3 4 5 6 7
2. 패스워드 - 사용자들의 패스워드만 모아 새로운 파일을 만듦 (/etc/shadow)
3. 컴퓨터에 입력되는 사용자 아이디 (컴퓨터 입장에서의 root라는 의미)
4. 해당 사용자가 속해있는 그룹
5. 사용자의 이름
6. 로그인에 성공 했을 때 기본으로 위치하게 되는 디렉터리
7. 처음 로그인 했을 때 실행되게 할 프로그램 (로그인 했을 때 쉘이 실행되는 것)
Trainer7
* tar는 사실 압축 프로그램이 아님 압축을 하면 용량이 줄어야 하는데 늘기 때문이다.
일단 파일을 압축하지 않고 그냥 합쳐버리기만 하니 기존 파일을 복구할 때 속도가 엄청 빠르다.
즉, tar는 속도면에서 볼 때 백업용 프로그램으로 따라올 자가 없음
$ tar cvf [합칠파일] [합칠파일들]
$ tar xvf [해제할파일]
$ gzip [파일이름] : 압축
$ gzip -d [파일이름] : 압축 해제
Trainer8
1. 쉘 프롬프트 상태에서 $ cat > 파일이름.c 라고 입력
2. 컴퓨터 언어로 내용 입력
※ 절대경로는 최상위 디렉터리부터 시작되는 경로
※ 상대경로는 자신이 위치한 디렉터리를 기준으로 따지는 경로
Trainer9
유저 : 자신을 의미
그룹 : 자신이 속한 그룹
아더 : 유저와 그룹을 제외한 모든 다른 사람
루트 : 절대적인 권한을 가진 사람
※ 파일 분석법
-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
Local 해킹 : 관리자 권한 (root)를 얻고자 시도
Remote 해킹 : 일반 아이디를 얻을 때
SetUID : 일시적으로 자신의 ID를 변경하는 것 (잠시동안 root 권한을 가질 수 있음)
FTZ #3 해커스쿨 FTZ 레벨별 힌트
1. 자신의 아이디가 level3이라고 해보자.
2. level4로 넘어가기 위해서, level4의 권한으로 SetUID가 걸린 파일을 찾는다.
# find / -user level4 -perm 4000
3. 그럼 한개 이상의 파일이 발견될 것이다.
4. 그 파일은 임의로 작성된 "멍청한 파일"이다.
5. 그 파일을 이용하여 level4의 쉘을 얻으면 성공!
6. my-pass 라고 입력하면 level4의 패스워드가 ....
'Pwnable > Hackerschool FTZ' 카테고리의 다른 글
[FTZ] 06. Level5 - Race condition (0) | 2018.07.27 |
---|---|
[FTZ] 05. Level4 - xinetd backdoor (0) | 2018.07.25 |
[FTZ] 04. Level3 - system() 취약점 (0) | 2018.07.25 |
[FTZ] 03. Level2 - Editor Shell Command (0) | 2018.07.25 |
[FTZ] 02. Level1 - Backdoor 찾기 (0) | 2018.07.20 |