-
HackerSchool Level1 문제풀이System/FTZ 2017. 10. 5. 00:05
Level 1
우선, Putty로 ftz.hackerschool.org에 접속 후
level1/level1으로 로그인 한다.
현재 디렉토리에 어떤 것들이 있나 ls -al명령어를 쳐보니
hint문서가 있다.
힌트에는'level2 권한에 setuid가 걸린 파일을 찾는다.'
여기서 setuid란?
- 우선, set은 '변경하다' 라는 뜻을 가지고 있다.
uid는 'User id'라는 의미이다.
합쳐서 생각해보면 'User id를 변경하는 것' 이라고 생각해볼 수 있다.
그럼 왜 이런 기능이 있는 것일까?
우리가 패스워드를 변경할 때, /etc/shadow파일을 수정해야 하는데
shadow파일은 root권한을 있어야만 접근 가능하다.
이때, 일반 사용자도 편하게 패스워드를 변경할 수 있도록
passwd명령어를 사용할 때만 잠깐 User id를 root로 변경해주는 것이다.
그럼 level2 setuid권한이 걸린 파일을 찾아보자.find / -user level2 -perm -4000
/ : root 디렉터리 부터
-user level2 : uid가 level2인
-perm -4000 : 4:setuid가 걸리고 000(rwx)모두 설정된 파일을
찾아라!
결과를 보면, 다 권한거부가 걸려있는데bin디렉터리에 있는 ExcuteMe만 접근 가능하다.
/bin으로 이동하자
상세정보를 보면, 사용자는 level2이고 rws로 setuid가 걸려있는걸 확인할 수 있다../ExcuteMe로 파일을 실행하면
level2권한으로 원하는 명령어를 입력하라고 한다.우리가 원하는건 level2로 가는 passwd인데
my-pass와 chmod는 입력할 수 없게 막아두었다.
그렇다면 어떤 명령어로 level2의 패스워드를 알아낼 수 있을까?
일단, /bin/bash가 무엇인지부터 알고 가야할 필요가 있다.
나도 아직 쉘 스크립트를 공부하지 않아서, 정확한 의미는 모른다.
/bin/bash란 root단의 명령어를 해석해주는 파일 정도로 알고있으면 될 것 같다.
따라서, /bin/bash를 실행시켜주면
level2의 권한을 지속적으로 유지할 수 있게 된다.
그 후, my-pass를 입력하게 되면
level2의 패스워드인 hacker or cracker 가 출력된다!
Level 1은 쉘에 대한 지식을 얻기위한 문제인 것 같다.
'System > FTZ' 카테고리의 다른 글
[FTZ Level15 풀이] (0) 2018.02.16 [FTZ Level14 풀이] (0) 2018.02.16 [FTZ Level13 풀이] (0) 2018.02.16 [FTZ Level12 풀이] (0) 2018.02.15 [FTZ Level11 풀이 ] (0) 2018.02.15 댓글