일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정보처리기사 필기 합격
- 디지털포렌식 with CTF
- html
- Window process
- 네트워크관리사2급
- Multimedia
- 슬퍼유
- 윈도우 프로세스 종류
- 디지털포렌식
- disk
- N0Named
- pythonchallenge
- 는 하지마...
- memory
- 포렌식
- 윈도우 프로세스
- 2022시작
- slack space
- ftz
- 생활코딩
- 생활코딩 html
- CTF-D
- blkls
- 실기
- 네트워크 보안
- Multimeida
- vinetto
- network
- 24시간의 전사
- ZIP 파일구조
- Today
- Total
ssoL2 TISTORY
[FTZ] trainer 총정리 본문
<trainter1 정리>
1. [접속id@서버 현재위치]$ => 프롬프트
2. linux는 대소문자 구분한다.
3. ls 현재 위치에서 보여줌
[-a] 숨겨진파일(.)
[-l] 디렉토리(d), 파일(-) 구분
4. ls 끝부분 => 생성용량 생성날짜 파일명
<trainer2 정리>
1. pwd => 현재 경로
2. 프롬포트에 나오는 현재위치는 현재경로 맨 뒤 디렉토리
3. /는 최상위 디렉토리
4. cd => 경로 바꾸기
[..] 한단계 위로
5. mkdir 디렉토리 rmdir 디렉토리
6. cp 파일1 파일2 => 파일1을 복사해서 파일2 생성
7. rm 파일 => 삭제
8. mv 파일1 파일2 => 파일1을 파일2에 덮어씀
<trainer3 정리>
1. 텔넷으로 접속 한 것을 "터미널"로 접속했다고 한다.
2. 직접 컴퓨터에 linux 설치 후 접속한 것을 "콘솔"로 접속했다고 한다.
3. w 명령어 => 현재 서버에 접속한 사람
접속ID 콘솔(tty)/터미널(pts) 컴퓨터IP 로그인시간 지연시간(IDLE) CPU지연시간(JCPU) WHAT필드지연시간(PCPU) WHAT(어떤명령사용하는지)
4. finger -l 명령어=> 현재 서버에 접속한 사람의 더 자세한 정보
5. tty 명령어 => 자신의 터미널 확인
6. ifconfig => 현재 서버의 IP
7. write 접속ID /dev/pts/pts번호 => pts번호에게 쪽지보내기
8. wall 쪽지내용 => 모든사람에게 쪽지보내기
<trainer4 정리>
1. 최상위 디렉토리(/) 아래 수많은 디렉파일
bin => 필수 리눅스 실행파일
boot => 리눅스 부팅 관련 파일 및 커널
dev => 컴퓨터에 설치된 하드웨어 관련 정보 파일
etc => 대부분의 리눅스 설정 파일 ( 패스워드 파일, 쉐도우 파일 등 )
home => 일반 사용자들의 디렉토리가 들어있는 곳
lib => 많은 라이브러리 파일
mnt => 마운트한 시디룸, 플로피 디스켓 등
proc => 프로세스들이 파일 형태로 저장
root => 루트의 홈 디렉토리
sbin => 기본 명령 제외한 시스템 관리용 리눅스 실행 파일
tmp => 임시로 파일 저장 ( 권한 없이 누구나 사용 가능 )
usr => 다양한 응용 프로그램 설치되어 있는 곳
var => 시스템 운영 중에 생성되는 각종 파일들 ( 외부 접속에 대한 로그 기록 등 )
2. 중요한 파일
/etc/passwd => 사용자들에 대한 간단한 정보
/etc/shadow => 사용자들에 대한 패스워드 ( 아무나 보지 못하게 되어 있음 )
/etc/services => 서버가 어떤 서비스를 하고 있는지 보여줌
/etc/issue.net => 처음 접속될 때 보이는 화면
/etc/motd => 로그인 후 나오는 메세지
~/public_html => 각 사용자들에 대한 홈페이지 파일 ( 보통 해킹 성공 후 수정해서 남긴다 )
<trainer5 정리>
1. whoami
2. id -=> trainter9에서 배운다.
3. 커널 : 리눅스의 심장부 역할을 하는 파일로, 커널 버젼에 따라 리눅스의 성능도 달라짐
4. uname -a => 커널 버전 확인(2.2.18 이전 버전은 취약점 존재)
5. root 권한 : 모든 파일을 관리하는 절대적인 관리자 권한
6. package : 한 프로그램이 실행되기 위해 존재하는 부속 파일을 합친 것
7. cat /etc/*release => OS의 버전
8. rpm -qa => 패키지 버전
9. cat /proc/cpuinfo => cpu 정보 수집
<trainer6 정리>
1. cat 파일이름 => 파일의 속내용 출력
2. 패스워드 파일 : 사용자들의 모든 정보를 저장해놓은 중요한 파일
3. cat /etc/passwd => 계정 : passwd : 유저숫자 : 그룹숫자 : 사용자의 이름 : 기본 디렉토리 위치 : 로그인 시 프로그램
4. 크래커 : 암호화된 문자열을 해독하는 프로그램
<trainer7 정리>
1. "백업한다" : 하드에 있는 데이터를 똑같이 다른 곳으로 복사하여 안전하게 보관하는 것
2. tar cvf 합칠파일 합칠파일들
tar xvf 해제할파일
[c] : create / [x] : extract / [v] : view / [f] : file
3. tar(타르)는 압축 프로그램 X -> 그냥 합쳐주는 프로그램(백업용으로 최고)
4. gzip 파일이름 => 압축
gzip -d 파일이름 => 압축 해제
5. 확장자란 xxxxx.yyy에서 yyy에 해당되는 것
.tar : tar 프로그램으로 하나로 합쳐진 파일
.gz : gzip으로 압축된 파일
.tar.gz : tar 프로그램으로 합친 후 또 다시 gzip으로 압축한 파일
.tgz : .tar.gz
<trainer8 정리>
1. 텍스트 파일(txt) : cat 명령어
2. 프로그램 소스 파일 : 컴파일 과정을 거쳐 실행
3. cat > 파일이름.txt. 내용 입력 후 ctrl+D => 텍스트 파일 생성
4. > => 리다이렉션(왼쪽에서 출력되는 것을 받아서 오른쪽으로 보낸다.)
>> => 같은 파일 연속으로 입력하고 싶으면
5. cat > 파일이름.c 내용 입력 후 ctrl+D => 프로그램 소스 파일 생성
6. gcc -o 프로그램이름 소스파일이름 => 컴파일
7. 프로그램 실행 시 전체경로 작성 필수
전체경로/프로그램.exe
./프로그램.exe => ./는 현재경로를 뜻함
<trainer9 정리>
1. 리눅스는 윈도우와 달리 한 서버에 여러명 접속 가능
2. 리눅스의 권한
유져 : 자신
그룹 : 모든 유져는 하나 이상의 그룹에 속한다. 변경하지 않는 한 자신의 유저네임과 같은 이름의 그룹에 속한다.
아더 : 유져와 그룹을 제외한 모든 다른 사람
루트 : 절대적인 권한을 가지고 있는 사용자
3. id => uid gid groups
uid : User ID
gid : Group ID
각 유져마다 gid를 가지고 있고, 특별한 일이 없는 한 gid는 항상 uid와 같다.
groups : 현재 자신이 속해 있는 그룹
변경을 하지 않으면 기본으로 자신의 uid와 같은 그룹에 속한다.
4. ls -al => -rwxrwxrwx -rwxrwxrwx 1 trainer9 trainer10 5 10월 20 21:35 test1
첫 rwx : 유져의 권한
두번째 rwx : 그룹의 권한
마지막 rwx : 아더의 권한
[r] : 읽기 권한
[w] : 쓰기 권한
[x] : 실행 권한
trainer9 : 유져
trainer10 : 그룹
test : 파일이름
즉, 1. test1이라는 파일은
2. trainer9 라는 uid를 가진 사용자에게 rwx 권한이 있으며
3. trainer10 라는 gid를 가진 사용자에게 rwx 권한이 있으며
4. trainer9와 trainer10을 제외한 모든 아서도 rwx 권한이 있다.
5. exe, bat, com => 실행파일 확장자
6. /etc/shadow는 root 권한만 열람 가능
<trainer10>
1. Remote 해킹 : 해킹하고자 하는 서버에 아이디가 없을 때, 아이디를 얻고자 시도하는 것
2. Local 해킹 : 해킹하고자 하는 서버에 일반 계정이 있을 때, 관리자 권한(root)를 얻고자 시도하는 것
3. 관리자 권한 획득 = 해킹 성공
4. SetUID : "ID"를 "변경" 한다.
passwd 명령을 통해 암호를 변경 시 "루트로의 일시적 아이디 변경"
따라서 SetUID를 지닌 파일은 루트의 권한을 잠시 얻는다 !
5. 루트 해킹 기법 => 레이스컨디션, IFS버그, 링크버그, 버퍼 오버플로우, 포맷 스트링 어택 등
6. ls -al /usr/bin/passwd => -r-s--x--x 1 root root 22312 Sep 26 1999 /usr/bin/passwd*
[s] : [x] 실행 권한을 포함한 SetUID 권한
7. find / -perm -4000 => 서버 전체에서 SetUID가 걸린 파일 찾기
[/] : 최상위 디렉터리에서
[-perm] : 권한과 일치하는 파일을 찾는다.
[4] : SetUID
[000] : rwx 모두를 의미한다.
8. find 명령어에서 [-perm] 이외의 옵션
[-name] : 이름과 일치하는 파일을 찾는다.
[-user] : 유져와 일치하는 파일을 찾는다.
[-group] : 그룹과 일치하는 파일을 찾는다.
9. find / -user root -perm -4000 => 루트의 권한으로 SetUID가 걸린 파일을 찾아라.
10. ftz에서 my-pass : 권한 획득
'challenge > pwn' 카테고리의 다른 글
[FTZ] LEVEL 7 풀이 (0) | 2021.01.28 |
---|---|
[FTZ] LEVEL 6 풀이 (0) | 2021.01.28 |
[FTZ] LEVEL 5 풀이 (0) | 2021.01.28 |
[FTZ] LEVEL 4 완벽 분석 (0) | 2020.11.16 |
[FTZ] LEVEL 3 풀이 (0) | 2020.11.15 |