저번 포스팅 때, level1 까지 진입했습니다.
ID : level1
PW : level1
을 입력하여, /home/level1 경로에 보시면 hint라는 파일이 있는 것을 확인 할 수 있습니다.
pwd : 현재 디렉터리 경로 확인
ls -al : ls (list 줄임말, -a 숨김 파일( '' . '' 으로 시작하는 파일) 확인, -l list 형식으로 확인)
cat : 파일을 읽는 명령어
cat : /home/level1/hint 라고 쳐주면 아래와 같이 나옵니다.
SetUid 가 걸린 파일을 찾아라? SetUid가 뭘까요?
SetUid가 설정된 파일 실행시 일시적으로 파일 소유자의 권한을 얻는 것입니다.
백문이 불여일견, 한번 찾아보도록 하죠.
find / -user level2 2>/dev/null 를 입력합니다.
find : 특정 파일 및 폴더를 찾는 명령어
/ : 루트 디렉터리 부터 검색
-user : 유저 이름 설정
2>/dev/null : 에러메시지는 출력하지 않음 (정상실행만 출력, 실제로 해당 문구 없이 쳐보시면 차이를 아실겁니다.)
/bin 디렉터리에 ExecuteMe 라는 파일이 검색되었고, 해당 파일을 자세히 살펴보면
이렇게 나와있습니다. 주의깊게 보셔야 할 건 파일권한 입니다.
r : 읽기 가능
w : 쓰기 가능
x : 실행 가능
s : SetUid 설정된 파일
로 표현 가능합니다.
따라서 파일 소유 그룹이 level1(현재 유저 네임) 으로 되어 파일이 실행가능하고, 해당 파일 실행시 level2 유저의 이름으로 파일을 실행하게 됩니다.
./ExecuteMe 를 입력합니다.
해당 글이 나오면서 명령을 실행하라고 합니다. /bin/hash 를 입력합니다.
/bin/bash를 입력 후, id를 확인해보면 유저가 level2로 바껴 있는 것을 확인 할 수 있습니다. 하지만 여기서 끝난게 아닙니다.
my-pass를 입력합니다. (my-pass는 정식 명령어가 아니라 FTZ에서 만든 것이라고 합니다.)
level2의 비밀번호 "hacker or cracker" 가 출력되고, level2로 로그인하시면 끝납니다.