yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

FTZ level1 풀이 본문

wargame 풀이/FTZ

FTZ level1 풀이

yehey 2020. 9. 12. 00:04
id: level1
pw: level1

 

putty를 이용해 level1에 접근

level1에 어떤 파일이 저장되어 있는지 알아보기 위해 

ls -l 명령어를 입력해보자!

 

ls -l 입력으로 파일과 디렉토리의 정보를 제공받았다.

 

hint라는 파일이 존재하는 것을 알 수 있다.

hint 파일에 무엇이 적혀있는지 읽어볼 것이다! (cat hint 입력)

 

cat 명령어를 통해 hint파일 읽음

힌트에는 level2 권한에 setuid가 걸린 파일을 찾으라고 적혀있다!

파일을 검색하기 위해 find 명령어를 사용할 것이다!

우리가 원하는건 권한이 level2, setuid가 걸린 파일이기 때문에 이를 반영해서

 

find / -perm -4000 -user level2 를 입력할 것이다!

find / -perm -4000 -user level2

/: 전체 시스템(root directory)에서 파일 검색
-perm: 권한으로 찾는다
-4000: 최소 4000 permission이 설정되어 있는 파일부터 그 이상으로 찾는다.
(4는 setuid를 의미한다. 즉, setuid가 설정되어 있는 파일을 찾는다는 말!)
-user n: 파일 소유자 명이 n인 파일을 찾는다.

 

find 입력 후 결과

엄청나게 많은 파일 정보가 나왔다!

대부분 Permission denied 지만 3번째 화면에서 유일하게 Permission denied가 아닌 하나의 파일을 찾을 수 있다!

 

(만약 Permission denied인 파일을 제외하고 검색하고 싶다면 "find / -perm -4000 -user level2 2> /dev/null"을 입력하자! "2> /dev/null"은 표준 에러가 발생하면 이를 휴지통으로 보낸다는 의미!
여기서는 Permission denied가 표준에러, Permission denied된 파일은 휴지통으로 이동해 출력되지 않는다.)

 

/bin에 존재하는 ExecuteMe 

bin 디렉토리에 존재하는 ExecuteMe가 우리가 찾던 level2권한에 setuid가 걸린 파일이다!

이를 실행시키기 위해 ExecuteMe가 위치한 /bin 으로 이동하자! (cd /bin)

 

/bin에 존재하는 파일들

cd를 이용해 /bin으로 이동한 후 ls를 이용해 디렉토리 정보를 불러왔다.

ExecuteMe가 존재하는 것을 확인할 수 있다!

ExecuteMe는 실행파일이기 때문에 해당 파일이 존재하는 곳에서 ./ExecuteMe를 입력해 실행해준다!

 

ExecuteMe 실행 결과

파일을 실행했더니 특이한 창이 나왔다! my-pass와 chmod를 제외한 모든 명령어를 실행시켜준다고 한다!

my-pass: 패스워드 얻는 명령어
chmod: 권한 변경 명령어

명령어를 직접 입력하지 못하니 shell을 실행시켜 my-pass를 입력하자!

shell: 사용자와 커널 사이에서 명령을 해석, 전달, 실행
종류: bash, sh, csh, ksh, zsh 등

여러 쉘 중에서 bash를 입력해 실행시켜보자! (다른 종류의 쉘을 이용해도 잘 실행됩니당!)

 

bash 입력 결과

bash 쉘이 잘 실행된 것을 볼 수 있다!!

이제 my-pass를 입력해 level2의 비밀번호를 얻을 수 있다!

 

my-pass 실행 결과/ level2 비밀번호

level2의 pw: "hacker or cracker"

'wargame 풀이 > FTZ' 카테고리의 다른 글

FTZ level6 풀이  (0) 2020.09.15
FTZ level5 풀이  (0) 2020.09.14
FTZ level4 풀이  (0) 2020.09.13
FTZ level3 풀이  (0) 2020.09.12
FTZ level2 풀이  (0) 2020.09.12
Comments