본문으로 바로가기

해커스쿨 FTZ trainer6~trainer10

category Wargame/FTZ 2017. 7. 21. 09:55

trainer6 --- coffee

 

패스워드 파일 분석하기 : 한 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일으로서 /etc/passwd에 기록되어 있다.

 

1. 서버에 로그인할 때 사용되는 아이디(계정)을 알려준다.

2. 원래는 패스워드가 적혀있는 부분이다. 리눅스 버젼 5.0까지는 암호화된 문자열이 들어있었지만 크래커들에 의해서 패스워드를 없애고 x라는 문자만 여준다. /etc/shadow라는 파일에 사용자들의 패스워드만 모아두었고  권할을 가진 사용자만이 쉐도우 파일을 볼 수 있다.

3. 컴퓨터가 인식하는 사용자의 User ID (사용자 번호)

4. 컴퓨터가 인식하는 사용자가 속해 있는 Group ID(그룹 번호)

5. 사용자의 이름을 말한다. Admin은 관리자라는 뜻이다.

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

7. 사용자가 처음 로그인 했을 때 실행되게 할 프로그램이다.

 

trainer7 --- to the top

 

리눅스에서 압축을 할 때 사용되는 명령어 : tar, gzip

 

 tar 사용법

 

합치기 : tar cvf [합칠파일] [합칠 파일들]

해제하기 : tar xvf [해제할파일]

 

옵션

 

c - Create : 새로운 파일을 만드는 옵션

x - eXtract : 압축을 해제시키는 옵션

 

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

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

 

tar 명령은 사실 압축을 하는 프로그램이 아니라 파일을 합치는 프로그램이다.

파일을 압축하지 않고 합치기만 하기 때문에 기존 파일들을 복수할 때 속도가 매우 빠르다. 따라서 백업용 프로그램으로 주로 사용된다.

보통 tar을 사용하여 여러 파일을 1개의 파일로 합치고 gzip을 통해 압축을 한다.

 

gzip 사용법

 

압축하기 : gzip [파일이름]

압축풀기 : gzip -d [파일이름]

 

파일의 확장자

 

tar : tar 프로그램에 의해 여러 파일들이 하나로 뭉쳐있다.

gz : gzip 프로그램에 의해 압축된 파일이다.

tar.gz : tar 프로그램에 의해 여러 파일들이 하나로 뭉쳐진 후 gzip 프로그램에 의해 압축된 파일이다.

tgz : tar.gz을 합쳐 tgz라는 확장자로 만들기도 한다.

 

trainer8 --- player

 

파일의 종류

 

파일의 종류에는 일반 텍스트 파일과 프로그램 소스파일이 있다.

일반 텍스트 파일은 글자로만 이루어진 파일 으로서 abc.txt가 대표적이 예이다. cat 명령어를 사용하여 출력 할 수 있다.

프로그램 소스 파일은 사용자가 컴퓨터 언어로 입력한 파일로서 텍스트 파일이다. 하지만 cat으로 내용을 보지 않고 컴파일 과정을 거쳐 실행한다.

 

텍스트 파일 생성법

 

1. 쉘 프롬프트 상태에서, cat > 파일이름.txt 라고 입력한다.

2. 필요로 하는 내용을 작성한다.

3. ctrl + d 로 저장한다.

4. 뒷붙여 더 써야할 때 cat >> 파일이름.txt 라고 입력한다.(만일 cat > 파일이름.txt 를 사용하면 새로운 내용으로 파일이 다시 만들어진다.)

 

리다이렉션 ('>')

 

"방향을 전환한다"라는 뜻을 가지고 있다. 리눅스에서는 일반적으로 실행 결과를 모니터로 출력한다. 하지만 리다이렉션을 사용해서 실행 결과를 모니터가 아닌 파일로 보낼 수 있다. (출력의 방향을 전환한 것이다.)

 

소스파일 생성법

 

1. 쉘 프롬프트 상태에서, cat > 파일이름.c 라고 입력한다.

2. 필요로 하는 내용을 작성한다.

3. ctrl + d 로 저장한다.

4. 뒷붙여 더 써야할 때 cat >> 파일이름.c 라고 입력한다.(만일 cat > 파일이름.c 를 사용하면 새로운 내용으로 파일이 다시 만들어진다.)

5. 컴파일을 해야하기 때문에 gcc -o [파일이름] [소스파일이름]을 입력해야한다. gcc -o 파일이름.exe 파일이름.c

6. 실행을 하기 위해서 실행파일의 절대경로.exe를 해야한다. 현재 디렉토리에 샐행 파일이 있다면 ./실행파일.exe를 하면 된다.

 

trainer9 --- programming

 

리눅스의 4가지 사용자

 

User : 사용자 자기 자신을 의미한다.

Group : 모든 유저는 하나 이상의 그룹에 속한다. 그룹을 임의로 변경하지 않으면 유저이름과 같은 이름의 그룹에 속한다.

Other : User와 Group을 제외한 모든 다른 사용자들을 의미한다.

Root : 절대적인 권한을 가진 사용자이다.

 

 

1. 유저의 권한이다.

2. 그룹의 권한이다.

3. 아더의 권한이다.

읽기권한(r), 쓰기권한(w), 실행권한(x)

4. 유저의 권한을 가진 유저를 명시한다.

5. 그룹의 권한을 가진 그룹을 명시한다.

6. 파일명을 명시해 준다.

 

trainer10 --- best!

 

Remote 해킹 : 해킹하고 하는 서버에 아이디를 가지고 있지 않을때 아이디를 얻고자 하는 시도를 뜻한다.

Local 해킹 : 서버에 일반 계정을 가지고 있을 때, 관리자 권한(root)를 얻고자 하는 시도를 뜻한다.

 

SerUID : 일시적으로 자신의 ID를 변경하는 행위를 말한다. (일시적으로 루트의 아이디로 변경된다.)

 

여기서 s가 SerUID를 의미한다. 파일을 분석하면 다음과 같다. s가 x를 포함하는 상위개념이다.

/usr/bin/passwd 파일을 root에게 읽기와 쓰기를 허락하고 root 그룹과 Other 사용자들에게는 실행 권한만 있다. 단 root에게 SetUID가 걸려있기 때문에 어느 사용자든지 저 파일을 실행할 때에 root의 권한을 갖는다.

 

find 명령어

 

find / -perm -4000 : / 에서부터, 적어도 SetUID가 걸린 모든 파일을 찾아라

4000앞에 -는 적어도를 의미한다.4는 SetUID를 의미한다. 000은 rwx모두를 의미한다.

find / -user root -perm -4000 : 루트의 권한으로 SetUID가 걸린 파일을 찾아라

 

옵션

 

-perm : 권한과 일치하는 파일을 찾는다.

-name : 이름과 일치하는 파일을 찾는다.

-user : 유저와 일치하는 파일을 찾는다.

-group : 그룹과 일치하는 파일을 찾는다.

 

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

해커스쿨 FTZ level4  (0) 2017.08.01
해커스쿨 FTZ level3  (0) 2017.07.31
해커스쿨 FTZ level2  (0) 2017.07.28
해커스쿨 FTZ level1  (4) 2017.07.23
해커스쿨 FTZ trainer1~trainer5  (0) 2017.07.17