딩굴댕굴

[Hackerschool FTZ] trainer 1-10 해커스쿨 FTZ 트레이닝 요약

by jennysgap

BOX


[Hackerschool FTZ] trainer 1-10 해커스쿨 FTZ 트레이닝


trainer2의 비밀번호는 linuxer 입니다.

trainer3의 비밀번호는 computer 입니다.

trainer4의 비밀번호는 mungguta 입니다.

trainer5의 비밀번호는 goodluck 입니다.

trainer6의 비밀번호는 coffee 입니다.            ※ guest 아이디로 로그인 하여 복습하는 것을 잊지말자!!

trainer7의 비밀번호는 to the top 입니다.

trainer8의 비밀번호는 player 입니다.

trainer9의 비밀번호는 programming 입니다.

trainer10의 비밀번호는 best! 입니다.


ls  : 리스트 출력

ls -l  : 파일&디렉터리 리스트 출력

ls -a  : 숨겨진파일 리스트 출력

ls -al  : 숨겨진파일&디렉터리 리스트 출력


pwd  : 현재 경로

cd  : 경로 이동

mkdir  : 디렉터리 생성

rmdir  : 디렉터리 삭제


cp  : 파일 copy

rm  : 파일 remove

mv  : 이름 변경 or 잘라내기-붙여넣기


w  : 서버에 접속자 보기 / TTY 콘솔접속, PST 터미널 접속

finger -l  : 사용자 정보 자세히 보기

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

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



디렉터리 설명

bin  : 가장 필수적인 리눅스 실행 파일이 들어가 있음. ls, rm 모두 이곳에 들어가 있음

- boot  : 리눅스 부팅 관련 파일들과, 리눅스의 심장인 커널이 들어있음.

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

etc  : 많은 중요한 파일들이 이곳에 들어가 있음. 패스워드 파일, 쉐도우 파일, 그 외 대부분의 리눅스 설정 파일 등...

home  : 일반 사용자들의 디렉터리가 들어가는 곳. guest와 trainer1-10, level 1-10 모두 이 디렉터리 안에 속해 있음

- lib  : 많은 라이브러리 파일들이 들어가 있음

- mnt  : mount 명령을 사용하여, 마운트 시킨 시디롬 등이 들어가는 디렉터리

- proc  : 프로세스들이 파일 형태로 저장되는 디렉터리

- root  : 루트의 홈 디렉터리

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

tmp  : 임시로 파일을 저장하는 디렉터리로서, 권한에 상관없이 누구나 이 디렉터리에 파일을 생성할 수 있음

- usr  : 다양한 응용 프로그램들이 설치되어 있는 곳

- var  : 시스템 운영 중에 생성되는 각종 임시 파일들이 들어가 있으며, 외부 접속에 대한 로그 파일들이 바로 이곳에 저장된다.



파일 설명
- /etc/passwd  : 사용자들에 대한 간단한 정보
- /etc/shadow  : 사용자들의 패스워드 but 아무나 보지 못하도록 설정되어 있음
- /etc/services  : 서버가 어떤 서비스를 황성화중인지 보여줌
- /etc/issue.net  : 처음 접속될 때 나오는 화면. ex) 해커스쿨의 F.T.Z에 오신걸 환영합니다 !
- /etc/motd  : 로그인 후에 나오는 메세지
- ~/public_html  : 각 사용자들의 홈페이지 파일. 보통 해킹에 성공하면 이 파일을 수정하여 hacked by xxx라는 문구를 남김



정보를 수집하는 방법!

- whoami  : 내가 누구인가?

- id  : 좀 더 자세하게 자신의 정보

- cat /etc/passwd  : 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일

- uname -a  : 커널 버전 확인

- cat /etc/*release  : 서버에 설치된 OS가 어떤 버전인지 확인

- rpm -qa  : 패키지 정보

- cat /proc/cpuinfo  : 서버의 cpu 정보



패스워드 파일 분석 방법

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

- root  : 서버에 로그인할 때 사용되는 아이디(계정)

- x  : 패스워드가 있던 자리. 사용자들의 패스워드만 모아 새로운 파일음 만듦(/etc/shadow), 

쉐도우 파일을 관리자 권한을 가진 사람이 아니면 펼쳐 볼 수 조차 없도록 만들어짐

- 0  : 컴퓨터 입장에서의 root라는 의미 

- 0  : 해당 사용자가 속해있는 그룹

- Admin  : 사용자의 이름

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

- /bin/bash  : 사용자가 처음 로그인 했을 때 실행되게 할 프로그램



리눅스 환경에서 압축하고, 해제하는 방법 (tar, gzip)
tar 사용법
"합치기  : # tar cvf 합칠파일 합칠파일들"
"해제하기  : # tar xvf 해제할파일"

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

* tar는 사실 압축 프로그램이 아님 압축을 하면 용량이 줄어야 하는데 늘기 때문이다. 
일단 파일을 압축하지 않고 그냥 합쳐버리기만 하니 기존 파일을 복구할 때 속도가 엄청 빠름
즉, tar는 속도면에서 볼 때 백업용 프로그램으로 따라올 자가 없음

* 리눅스 gzip 프로그램은 한번에 한개의 파일만 압축할 수 있음. 
그렇기 때문에 tar를 사용하여 여러 파일을 1개로 뭉쳐버리고, gzip 프로그램을 사용하여 압축해 버리면 됨!

gzip 사용법
"합치기  : # gzip 파일이름"
"해제하기  : # gzip -d 파일이름"

확장자 형태
- tar  : tar 프로그램을 사용하여 압축된 파일로서, 사실 압축이 아닌 여러 파일들이 하나로 뭉쳐져 있는 파일이다.
- gz  : gzip 프로그램을 사용하여 압축된 파일이다.
- tar.gz  : tar 프로그램을 사용하여 파일을 합친 후, gzip을 사용하여 압축한 파일이다.
- tgz  : 위의 tar.gz을 합쳐 tgz라는 확장자로 만들 때도 있음


텍스트 파일 생성법
1. 쉘 프롬프트 상태에서 # cat > 파일이름.txt 라고 입력 ('>' 리다이렉션)
2. 원하는 내용을 주욱 써내려간다.
3. 컨트럴키와 D키를 동시에 누른다.
4. 내용을 추가할 경우 리다이렉션을 두번 입력한다. # cat >> 내용추가할파일.txt

컴파일하는 방법
# gcc -o 파일이름1 파일이름2  : 파일이름2를 파일이름1로 컴파일한다.


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


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

지금까지 발견된 기법
- 레이스컨디션
- IFS버그
- 링크버그
- 버퍼 오버플로우
- 포맷 스트링 어택

이러한 버그에 의해 루트 권한을 넘겨준 파일
- userhelper
- imwheel-solo
- restore
-screen


서버 전체에서 SetUID가 걸린 파일을 찾는 방법
# find / -perm -4000
옵션
-perm    권한과 일치하는 파일을 찾는다.    ex) # find / -perm 4755
-name    이름과 일치하는 파일을 찾는다.    ex) # find / -name cat
-user      유저와 일치하는 파일을 찾는다.    ex) # find / -user mmung2
-group    그룹과 일치하는 파일을 찾는다.    ex) # find / -group guta



FTZ #3 해커스쿨 FTZ 레벨별 힌트


1. 자신의 아이디가 level3이라고 해보자.

2. level4로 넘어가기 위해서, level4의 권한으로 SetUID가 걸린 파일을 찾는다.

# find / -user level4 -perm 4000

3. 그럼 한개 이상의 파일이 발견될 것이다.

4. 그 파일은 임의로 작성된 "멍청한 파일"이다.

5. 그 파일을 이용하여 level4의 쉘을 얻으면 성공!

6. my-pass 라고 입력하면 level4의 패스워드가 ....


반응형

블로그의 정보

jennysgap

jennysgap

활동하기