이번 시간에는 hackerschool에서 운영하는 F.T.Z 문제 중 level1 문제 풀이를 적어보고자 합니다.

앞으로 문제 풀이를 적는 데 있어서 제 개인적으로 고민하고 풀이를 작성한 것이라

다소 부족한 부분이 있을 수 있습니다. 언제든 지적 바랍니다~ :)



level1/level1(id/pw)를 입력 후, 로그인을 하여 ls 명령어를 입력하면 hint 라는 파일이 보인다.

cat 명령어를 통해 hint의 내용을 확인해보니 "level2 권한에 setuid가 걸린 파일을 찾는다"라고 적혀있다.



파일의 소유자가 level2이면서, setuid가 걸려 있는 파일을 찾기 위한 명령어는 다음과 같다.


 find / -user level2 -perm -4000 2> /dev/null


위 명령어를 옵션별로 설명하면 다음과 같다.


 -user  [uname] : 특정 사용자의 소유권인 파일 또는 디렉터리 검색 시 사용

 -perm [mode] : 특정 퍼미션 값으로 설정된 파일 또는 디렉터리 검색 시 사용

 -2> /dev/null : 표준에러를 /dev/null로 리다이렉션 시켜 출력되지 않음


앞서 설명한 find 명령어를 통해 검색하면 bin 디렉터리에 "ExecuteMe"라는 파일이 눈에 띈다.

ls -al 명령어를 통해 확인해보니, 소유자가 level2이면서 setuid권한이 걸려 있는 것을 확인할 수 있었다.



찾은 ExecuteMe 파일을 실행시켜보도록 하자.



ExecuteMe를 실행하니 원하는 명령어 한 가지를 실행시켜 주겠다고 한다.

my-pass를 통해 바로 패스워드를 알아내고 싶지만, 사용이 불가능하므로, bash를 입력하여 쉘을 획득한다.

level2로 권한 상승이 되었는지 확인하기 위해, id를 입력하니 uid가 level2로 바뀐 것을 확인할 수 있다.



마지막으로 level2 패스워드를 알아내기 위해 다시 ExecuteMe 파일을 실행시키고, 쉘을 획득한 다음 

"my-pass" 명령어를 입력하면 비밀번호가 출력된다.





'wargame 풀이 > [F.T.Z]' 카테고리의 다른 글

[F.T.Z] level2 문제 풀이  (0) 2018.11.09

WRITTEN BY
CIP_Pooh

,