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

FTZ level2 풀이 본문

wargame 풀이/FTZ

FTZ level2 풀이

yehey 2020. 9. 12. 01:13
id: level2
pw: hacker or cracker

login

level1과 마찬가지로 ls -l을 이용해서 디렉토리 정보를 가져온다.

 

ls -l

hint 파일이 존재한다! hint 파일을 읽어보자! (cat hint)

 

cat hint

리눅스에서 텍스트 파일 편집은 vi (vi editor)이다. vi editor를 사용해서 쉘 명령을 실행시킬 방법을 찾아보자!

 

우리가 원하는건 level3의 pw이기 때문에 소유주가 level3인 파일을 find를 이용해 검색해보자!

find / -user level3 2> /dev/null을 입력해준다.
(검색의 편리함을 위해 오류가 나는 파일은 휴지통으로 버린다.)

 

find

검색 조건에 해당하는 파일 2가지가 출력되었다!

우리는 실행파일인 editor를 사용할 것이다.

.swp : 스왑파일, vi나 vim이 비정상적으로 종료되었을 때를 대비해 복구를 가능하게 하기 위해 임시로 저장되는 파일
->즉, 지금은 필요없는 파일!

editor가 존재하는 /usr/din으로 이동하자 (cd /usr/bin)

 

editor 파일

이동 후 ls -al 명령어를 이용해 editor 파일 존재여부와 권한을 확인해보았다.

-rwsr-x---에서 owner의 실행자리에 x나 -가 아닌 s가 있는 것을 확인할 수 있다.

=>setuid가 적용되어있다!

setuid: 파일 실행시 파일의 소유자 권한이 적용
즉, 사용자가 권한이 없어도 소유자 권한으로 실행이 가능하다는 뜻!
권한 표현 숫자모드: 맨 앞자리가 4nnn
권한 표현 문자모드: owner의 실행에 s 가 추가된다.

 

이제 editor를 실행시켜보자! (./editor)

 

editor 실행

vi editor가 실행되었다!

editor 파일에는 setuid가 걸려있어서 셸을 실행하면 level3의 권한으로 셸이 실행된다!

 

vi의 ex모드(명령 모드에서 ':' 입력 시에 화면 아래에 입력창이 뜨는 모드)에서 !를 사용하면

리눅스 명령어가 실행된다고 한다!

(ex) :!ls -al, :!cd , :!bash 등 

 

시험삼아 ls -al 명령어를 입력해보자!

 

editor에서 :!ls -al 입력
결과

editor 상에서 ls -al 명령어가 잘 실행된 것을 볼 수 있다!

이제 my-pass를 이용해 비밀번호를 얻어보자!

my-pass 입력 외에도 셸을 띄울 수도 있다. 
그렇지만 우리가 원하는 건 level3 의 pw 이므로 굳이 셸을 사용하지 않겠음

 

my-pass 입력
결과

level3의 비밀번호를 얻었다!

 

level3 pw: "can you fly?"

'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 level1 풀이  (0) 2020.09.12
Comments