ID : level5

password : what is your name?

 

1) id 명령어를 통해 자신의 정보 확인

 

2) cat hint 를 입력해 문제 정보 체크

" /usr/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp 라는 이름의 임시파일을 생성한다. 

이를 이용하여 level6의 권한을 얻어라."

 

3) find / -perm -4000 -user level6

를 입력해보니 역시나 문제에서 알려준 디렉토리의 파일이 level6의 권한을 가지고 있다.

 

임시파일을 생성하는것으로 보아, 해당 임시파일이 실행될때 my-pass 를 입력하면 비밀번호가 출력될 것이다.

일단 해당 디렉토리로 이동해보자

 

4) 역시나 setuid 가 걸려있으며, 권한은 level6에 있다.

 

5) 임시파일이 생성되는 곳에 가서 확인을 해 보았다.

임시파일은 실행되는 동안 생성되어 실행이 끝나면 자동으로 삭제가 된다.

그렇다면 실행되는 동안 생성된 파일의 내용을 다른 txt 파일에 옮기면 비밀번호를 알수있지 않을까?

 

6) 생각보다 간단한 문제인것 같다.

한번에 여러 명령어를 실행하기 위해

/usr/bin/ 디렉토리에서

 

level5 ; ls -al level5.tmp

 

를 실행해 해당 파일의 정보를 보았다.

해당 파일의 내용을 읽을순 있지만 실행은 하지 못한다.

 

이곳에 

cp 또는 mv 명령어를 통하여 해당 파일이 생성될때 옮겨버리면 되지 않을까 싶었다.

 

7) 접근 권한이 제한되어 있다.

따라서 해당 파일을 옮기거나 복사하지는 못한다.

 

하지만 해당 파일은 읽는것에 대한 권한이 풀려있다.

즉, 해당 내용을 읽을수 있다는 것이기 떄문에 단순하게 cat 명령어를 통해 확인할수 있을것 같았다.

 

8) 성공,

level5 가 실행되는 동안, 해당 임시파일의 내용을 출력하도록 하니

다음 레벨의 비밀번호가 출력되었다

 

" what the hell "

 

+ Recent posts